From 9645b0def9fe81dd6806148fae6b4d5f4a332d17 Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Mon, 16 Feb 2026 08:29:44 -0300 Subject: [PATCH 1/4] K8SPSMDB-1498 Update versions for PSMDB 1.22.0 release --- .github/workflows/images_hash_check.py | 73 +++++---- api-tests/apply_route_test.go | 20 ++- api-tests/operator_route_test.go | 2 + .../operator.1.22.0.psmdb-operator.dep.json | 1 + sources/operator.1.22.0.psmdb-operator.json | 153 ++++++++++++++++++ 5 files changed, 218 insertions(+), 31 deletions(-) create mode 100644 sources/operator.1.22.0.psmdb-operator.dep.json create mode 100644 sources/operator.1.22.0.psmdb-operator.json diff --git a/.github/workflows/images_hash_check.py b/.github/workflows/images_hash_check.py index 29b3e2d2..f38ed870 100644 --- a/.github/workflows/images_hash_check.py +++ b/.github/workflows/images_hash_check.py @@ -3,7 +3,9 @@ import sys import argparse -parser = argparse.ArgumentParser(description="Validate image hashes against Docker Hub manifest digests") +parser = argparse.ArgumentParser( + description="Validate image hashes against Docker Hub manifest digests" +) parser.add_argument("-f", "--file", required=True, help="Path to the JSON file") args = parser.parse_args() @@ -12,17 +14,20 @@ with open(json_file) as f: data = json.load(f) + def get_digest(image, arch="amd64"): repo, tag = image.split(":") - + token_url = f"https://auth.docker.io/token?service=registry.docker.io&scope=repository:{repo}:pull" token = requests.get(token_url).json()["token"] headers = { "Authorization": f"Bearer {token}", - "Accept": "application/vnd.docker.distribution.manifest.list.v2+json" + "Accept": "application/vnd.docker.distribution.manifest.list.v2+json", } - r = requests.get(f"https://registry-1.docker.io/v2/{repo}/manifests/{tag}", headers=headers) + r = requests.get( + f"https://registry-1.docker.io/v2/{repo}/manifests/{tag}", headers=headers + ) r.raise_for_status() manifest_list = r.json() @@ -34,38 +39,46 @@ def get_digest(image, arch="amd64"): else: return r.headers["Docker-Content-Digest"] + errors = [] + +def check_hash(image, arch, expected_hash): + try: + digest = get_digest(image, arch) + expected_digest = f"sha256:{expected_hash}" + if digest == expected_digest: + print(f"✅ {image} ({arch}) OK") + return + + print(f"❌ {image} ({arch}) mismatch: expected {expected_digest}, got {digest}") + errors.append((image, arch, expected_hash, digest)) + except Exception as e: + print(f"⚠️ Failed to check {image} ({arch}): {e}") + errors.append((image, arch, expected_hash, "ERROR")) + + for version in data["versions"]: for product, versions in version["matrix"].items(): for ver, details in versions.items(): image = details["image_path"] - expected_amd = details.get("image_hash") - if expected_amd is not None: - try: - digest = get_digest(image, "amd64") - if digest == f"sha256:{expected_amd}": - print(f"✅ {image} (amd64) OK") - else: - print(f"❌ {image} (amd64) mismatch: expected sha256:{expected_amd}, got {digest}") - errors.append((image, "amd64", expected_amd, digest)) - except Exception as e: - print(f"⚠️ Failed to check {image} (amd64): {e}") - errors.append((image, "amd64", expected_amd, "ERROR")) - - expected_arm = details.get("image_hash_arm64") - if expected_arm is not None: - try: - digest = get_digest(image, "arm64") - if digest == f"sha256:{expected_arm}": - print(f"✅ {image} (arm64) OK") - else: - print(f"❌ {image} (arm64) mismatch: expected sha256:{expected_arm}, got {digest}") - errors.append((image, "arm64", expected_arm, digest)) - except Exception as e: - print(f"⚠️ Failed to check {image} (arm64): {e}") - errors.append((image, "arm64", expected_arm, "ERROR")) + hash_checks = [ + ("amd64", details.get("image_hash")), + ("arm64", details.get("image_hash_arm64")), + ] + + checked_any_hash = False + for arch, expected_hash in hash_checks: + if expected_hash is None: + continue + + checked_any_hash = True + check_hash(image, arch, expected_hash) + + if not checked_any_hash: + print(f"❌ {image} has no image_hash/image_hash_arm64") + errors.append((image, "hash", "defined", "MISSING")) if errors: print("\n❌ Some images did not match:") @@ -73,4 +86,4 @@ def get_digest(image, arch="amd64"): print(f"- {img} ({arch}): expected sha256:{exp}, got {got}") sys.exit(1) else: - print("\n🎉 All image hashes match Docker Hub!") \ No newline at end of file + print("\nAll image hashes match Docker Hub!") diff --git a/api-tests/apply_route_test.go b/api-tests/apply_route_test.go index 7e0cb7c3..61c48a98 100644 --- a/api-tests/apply_route_test.go +++ b/api-tests/apply_route_test.go @@ -36,7 +36,7 @@ func TestApplyShouldReturnJustOneVersion(t *testing.T) { psmdbParams := &version_service.VersionServiceApplyParams{ Apply: "latest", - OperatorVersion: "1.21.2", + OperatorVersion: "1.22.0", Product: "psmdb-operator", } psmdbParams.WithTimeout(2 * time.Second) @@ -450,6 +450,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { version string }{ // test latest + {"latest", "1.22.0", nil, "8.0.17-6"}, {"latest", "1.21.2", nil, "8.0.17-6"}, {"latest", "1.21.1", nil, "8.0.12-4"}, {"latest", "1.21.0", nil, "8.0.12-4"}, @@ -473,6 +474,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"latest", "1.7.0", nil, "4.4.3-5"}, {"latest", "1.6.0", nil, "4.4.2-4"}, {"latest", "1.5.0", nil, "4.2.8-8"}, + {"latest", "1.22.0", &v80, "8.0.17-6"}, {"latest", "1.21.2", &v80, "8.0.17-6"}, {"latest", "1.21.1", &v80, "8.0.12-4"}, {"latest", "1.21.0", &v80, "8.0.12-4"}, @@ -480,6 +482,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"latest", "1.20.0", &v80, "8.0.8-3"}, {"latest", "1.19.1", &v80, "8.0.4-1"}, {"latest", "1.19.0", &v80, "8.0.4-1"}, + {"latest", "1.22.0", &v70, "7.0.28-15"}, {"latest", "1.21.2", &v70, "7.0.28-15"}, {"latest", "1.21.1", &v70, "7.0.24-13"}, {"latest", "1.21.0", &v70, "7.0.24-13"}, @@ -492,6 +495,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"latest", "1.16.2", &v70, "7.0.8-5"}, {"latest", "1.16.1", &v70, "7.0.8-5"}, {"latest", "1.16.0", &v70, "7.0.8-5"}, + {"latest", "1.22.0", &v60, "6.0.27-21"}, {"latest", "1.21.2", &v60, "6.0.27-21"}, {"latest", "1.21.1", &v60, "6.0.25-20"}, {"latest", "1.21.0", &v60, "6.0.25-20"}, @@ -545,6 +549,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"latest", "1.5.0", &v36, "3.6.19-7.0"}, // test recommended + {"recommended", "1.22.0", nil, "8.0.17-6"}, {"recommended", "1.21.2", nil, "8.0.17-6"}, {"recommended", "1.21.1", nil, "8.0.12-4"}, {"recommended", "1.21.0", nil, "8.0.12-4"}, @@ -568,9 +573,11 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"recommended", "1.7.0", nil, "4.4.3-5"}, {"recommended", "1.6.0", nil, "4.4.2-4"}, {"recommended", "1.5.0", nil, "4.2.8-8"}, + {"recommended", "1.22.0", &v80, "8.0.17-6"}, {"recommended", "1.21.2", &v80, "8.0.17-6"}, {"recommended", "1.21.1", &v80, "8.0.12-4"}, {"recommended", "1.21.0", &v80, "8.0.12-4"}, + {"recommended", "1.22.0", &v70, "7.0.28-15"}, {"recommended", "1.21.2", &v70, "7.0.28-15"}, {"recommended", "1.21.1", &v70, "7.0.24-13"}, {"recommended", "1.21.0", &v70, "7.0.24-13"}, @@ -582,6 +589,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"recommended", "1.16.2", &v70, "7.0.8-5"}, {"recommended", "1.16.1", &v70, "7.0.8-5"}, {"recommended", "1.16.0", &v70, "7.0.8-5"}, + {"recommended", "1.22.0", &v60, "6.0.27-21"}, {"recommended", "1.21.2", &v60, "6.0.27-21"}, {"recommended", "1.21.1", &v60, "6.0.25-20"}, {"recommended", "1.21.0", &v60, "6.0.25-20"}, @@ -636,6 +644,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"recommended", "1.5.0", &v36, "3.6.19-7.0"}, // test exact + {"8.0.17-6", "1.22.0", nil, "8.0.17-6"}, {"8.0.17-6", "1.21.2", nil, "8.0.17-6"}, {"8.0.12-4", "1.21.1", nil, "8.0.12-4"}, {"8.0.12-4", "1.21.0", nil, "8.0.12-4"}, @@ -643,6 +652,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"8.0.8-3", "1.20.0", nil, "8.0.8-3"}, {"8.0.4-1", "1.19.1", nil, "8.0.4-1"}, {"8.0.4-1", "1.19.0", nil, "8.0.4-1"}, + {"7.0.28-15", "1.22.0", nil, "7.0.28-15"}, {"7.0.28-15", "1.21.2", nil, "7.0.28-15"}, {"7.0.24-13", "1.21.1", nil, "7.0.24-13"}, {"7.0.24-13", "1.21.0", nil, "7.0.24-13"}, @@ -655,6 +665,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"7.0.8-5", "1.16.2", nil, "7.0.8-5"}, {"7.0.8-5", "1.16.1", nil, "7.0.8-5"}, {"7.0.8-5", "1.16.0", nil, "7.0.8-5"}, + {"6.0.27-21", "1.22.0", nil, "6.0.27-21"}, {"6.0.27-21", "1.21.2", nil, "6.0.27-21"}, {"6.0.25-20", "1.21.1", nil, "6.0.25-20"}, {"6.0.25-20", "1.21.0", nil, "6.0.25-20"}, @@ -712,6 +723,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"3.6.18-5.0", "1.5.0", nil, "3.6.18-5.0"}, //test with suffix + {"8.0-latest", "1.22.0", nil, "8.0.17-6"}, {"8.0-latest", "1.21.2", nil, "8.0.17-6"}, {"8.0-latest", "1.21.1", nil, "8.0.12-4"}, {"8.0-latest", "1.21.0", nil, "8.0.12-4"}, @@ -719,6 +731,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"8.0-latest", "1.20.0", nil, "8.0.8-3"}, {"8.0-latest", "1.19.1", nil, "8.0.4-1"}, {"8.0-latest", "1.19.0", nil, "8.0.4-1"}, + {"7.0-latest", "1.22.0", nil, "7.0.28-15"}, {"7.0-latest", "1.21.2", nil, "7.0.28-15"}, {"7.0-latest", "1.21.1", nil, "7.0.24-13"}, {"7.0-latest", "1.21.0", nil, "7.0.24-13"}, @@ -731,6 +744,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"7.0-latest", "1.16.2", nil, "7.0.8-5"}, {"7.0-latest", "1.16.1", nil, "7.0.8-5"}, {"7.0-latest", "1.16.0", nil, "7.0.8-5"}, + {"6.0-latest", "1.22.0", nil, "6.0.27-21"}, {"6.0-latest", "1.21.2", nil, "6.0.27-21"}, {"6.0-latest", "1.21.1", nil, "6.0.25-20"}, {"6.0-latest", "1.21.0", nil, "6.0.25-20"}, @@ -787,9 +801,11 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"3.6-latest", "1.6.0", nil, "3.6.21-10.0"}, {"3.6-latest", "1.5.0", nil, "3.6.19-7.0"}, + {"8.0-recommended", "1.22.0", nil, "8.0.17-6"}, {"8.0-recommended", "1.21.2", nil, "8.0.17-6"}, {"8.0-recommended", "1.21.1", nil, "8.0.12-4"}, {"8.0-recommended", "1.21.0", nil, "8.0.12-4"}, + {"7.0-recommended", "1.22.0", nil, "7.0.28-15"}, {"7.0-recommended", "1.21.2", nil, "7.0.28-15"}, {"7.0-recommended", "1.21.1", nil, "7.0.24-13"}, {"7.0-recommended", "1.21.0", nil, "7.0.24-13"}, @@ -802,6 +818,8 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"7.0-recommended", "1.16.2", nil, "7.0.8-5"}, {"7.0-recommended", "1.16.1", nil, "7.0.8-5"}, {"7.0-recommended", "1.16.0", nil, "7.0.8-5"}, + {"6.0-recommended", "1.22.0", nil, "6.0.27-21"}, + {"6.0-recommended", "1.21.2", nil, "6.0.27-21"}, {"6.0-recommended", "1.21.1", nil, "6.0.25-20"}, {"6.0-recommended", "1.21.0", nil, "6.0.25-20"}, {"6.0-recommended", "1.20.1", nil, "6.0.21-18"}, diff --git a/api-tests/operator_route_test.go b/api-tests/operator_route_test.go index f6a4868c..57ef5805 100644 --- a/api-tests/operator_route_test.go +++ b/api-tests/operator_route_test.go @@ -58,6 +58,7 @@ func TestOperatorRouteShouldReturnRightOperatorVersion(t *testing.T) { {"psmdb-operator", "1.21.0"}, {"psmdb-operator", "1.21.1"}, {"psmdb-operator", "1.21.2"}, + {"psmdb-operator", "1.22.0"}, {"pg-operator", "1.1.0"}, {"pg-operator", "1.2.0"}, {"pg-operator", "1.3.0"}, @@ -187,6 +188,7 @@ func TestOperatorRoutePsmdbShouldReturnNotEmptyResponses(t *testing.T) { {"psmdb-operator", "1.21.0"}, {"psmdb-operator", "1.21.1"}, {"psmdb-operator", "1.21.2"}, + {"psmdb-operator", "1.22.0"}, } for _, c := range cases { diff --git a/sources/operator.1.22.0.psmdb-operator.dep.json b/sources/operator.1.22.0.psmdb-operator.dep.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/sources/operator.1.22.0.psmdb-operator.dep.json @@ -0,0 +1 @@ +{} diff --git a/sources/operator.1.22.0.psmdb-operator.json b/sources/operator.1.22.0.psmdb-operator.json new file mode 100644 index 00000000..eef1f19e --- /dev/null +++ b/sources/operator.1.22.0.psmdb-operator.json @@ -0,0 +1,153 @@ +{ + "versions": [ + { + "operator": "1.22.0", + "product": "psmdb-operator", + "matrix": { + "mongod": { + "8.0.17-6": { + "image_path": "percona/percona-server-mongodb:8.0.17-6", + "status": "recommended", + "critical": false, + "image_hash": "ae6380469f6b73d3517ec4eae7b2f12ff6310dc2deae8e52fe514276c45e9440", + "image_hash_arm64": "f1170f8bf68d051816cd4d956ca1f6ee9885c6cf0e1e5db5dc00a137af3603ee" + }, + "8.0.12-4": { + "image_path": "percona/percona-server-mongodb:8.0.12-4", + "status": "available", + "critical": false, + "image_hash": "ab8793879409788b5a19f7e332a3700520e8eeaf4b068ec8cc7d1b680f097307", + "image_hash_arm64": "d367e225b57783bc2ff8451571c7568dc3b240176cf149a01cc3a7b13fb52a78" + }, + "8.0.8-3": { + "image_path": "percona/percona-server-mongodb:8.0.8-3", + "status": "available", + "critical": false, + "image_hash": "e4580ca292f07fd7800e139121aea4b2c1dfa6aa34f3657d25a861883fd3de41", + "image_hash_arm64": "96cfee2102499aba05e63ca7862102c2b1da1cf9f4eea0cbea3793a07c183925" + }, + "8.0.4-1": { + "image_path": "percona/percona-server-mongodb:8.0.4-1-multi", + "status": "available", + "critical": false, + "image_hash": "873b201ce3d66d97b1225c26db392c5043a73cc19ee8db6f2dc1b8efd4783bcf", + "image_hash_arm64": "222ccf746ad4ffdfccf41b41edaa0d318d28f663e13c9629f8dad5a5078434e5" + }, + "7.0.28-15": { + "image_path": "percona/percona-server-mongodb:7.0.28-15", + "status": "recommended", + "critical": false, + "image_hash": "d131a4375c3e669f97da6cdf5eef847099c731fd956341345f37e6e6fb68d699", + "image_hash_arm64": "6bc8ee24a7e60ec8ef32002165584320b9cc0eb6067a5f304cee6f1ea708f9b3" + }, + "7.0.24-13": { + "image_path": "percona/percona-server-mongodb:7.0.24-13", + "status": "available", + "critical": false, + "image_hash": "71d5389e91014cf6c486c4d28ee2b3f19f16eb421d9d65b36d70b9f712a43eaa", + "image_hash_arm64": "22012034c3e30029b34dda235aa14642377522ba307d742f64d7f69ed6feccf9" + }, + "7.0.18-11": { + "image_path": "percona/percona-server-mongodb:7.0.18-11", + "status": "available", + "critical": false, + "image_hash": "0115a72f5e60d86cb4f4b7eae32118c0910e8c96831e013de12798a1771c4c91", + "image_hash_arm64": "86c17067f3e233f522612389ed2500231cbb22ce93524c476b9aa8d464d06f0b" + }, + "7.0.15-9": { + "image_path": "percona/percona-server-mongodb:7.0.15-9-multi", + "status": "available", + "critical": false, + "image_hash": "7bffdf2e71c121e2ab37b4fa7e2f513237abdd65266da384bf8197cee1316917", + "image_hash_arm64": "fdc4875df82572267445811445ebf517f63e509be54d1a2599fe58e1c525e1d8" + }, + "7.0.14-8": { + "image_path": "percona/percona-server-mongodb:7.0.14-8-multi", + "status": "available", + "critical": false, + "image_hash": "ed932d4e7231dcb793bf609f781226a8393aa8958b103339f4a503a8f70ed17e", + "image_hash_arm64": "052f84ee926ad9b5146f08a7e887820342d65b757a284c2f0ea8e937bb51cd7b" + }, + "6.0.27-21": { + "image_path": "percona/percona-server-mongodb:6.0.27-21", + "status": "recommended", + "critical": false, + "image_hash": "2bd82853fd207ecadc8e5cd3ee598db7b9943f6976d9ae2140f5bdc997b0e8bb", + "image_hash_arm64": "a23e4fa1b956299fb7403eef70082b13b3ecf75e51bba12f674f552508a42d61" + }, + "6.0.25-20": { + "image_path": "percona/percona-server-mongodb:6.0.25-20", + "status": "available", + "critical": false, + "image_hash": "0254c10fb8c249c108cd0a6e5885dfe76785e8fdd6ceb23ce98854234672e5d6", + "image_hash_arm64": "0fd4d1ca4da6377450964f225bd1d508730be9c1fca1c36c3bfcc107678d9a50" + }, + "6.0.21-18": { + "image_path": "percona/percona-server-mongodb:6.0.21-18", + "status": "available", + "critical": false, + "image_hash": "579d2fdc617ea42ab2be8c2682955b489dbf49ab19771b7a5d9c77da4dd323e7", + "image_hash_arm64": "b9d2b7e8c4a97b2d20e2aaccfbd183f65f8ccd9f2ea13939515e18e02bc64871" + }, + "6.0.19-16": { + "image_path": "percona/percona-server-mongodb:6.0.19-16-multi", + "status": "available", + "critical": false, + "image_hash": "c8ff08c4b8a96679e2daf4845873fdd4d2c48646b84db19f0c5fe02e8f3808b4", + "image_hash_arm64": "6908b28ced260b762cd38a642c06dd802cbef0a43ab5f22afe7b583b234ebcec" + }, + "6.0.18-15": { + "image_path": "percona/percona-server-mongodb:6.0.18-15-multi", + "status": "available", + "critical": false, + "image_hash": "d197ce16ab0eed6df25e632b92dea5ce448e549e02028f39b78f5730c2ffef36", + "image_hash_arm64": "7fd1d8f74f71dea6ad423e8e202a0617bdd1e8783f2b5cb071b5281685ce0adf" + } + }, + "pmm": { + "3.6.0": { + "image_path": "percona/pmm-client:3.6.0", + "status": "recommended", + "critical": false, + "image_hash": "174fa4675d3ea4d95fd7b45d11f2bcc98b98b703662e6b2614dfe886a7187b23", + "image_hash_arm64": "435a9af2083adb68ddab6a97e6d02bd6d31c54562e919ebc09618e886d58d1ae" + }, + "2.44.1-1": { + "image_path": "percona/pmm-client:2.44.1-1", + "status": "recommended", + "critical": false, + "image_hash": "52a8fb5e8f912eef1ff8a117ea323c401e278908ce29928dafc23fac1db4f1e3", + "image_hash_arm64": "390bfd12f981e8b3890550c4927a3ece071377065e001894458047602c744e3b" + } + }, + "backup": { + "2.12.0": { + "image_path": "percona/percona-backup-mongodb:2.12.0", + "status": "recommended", + "critical": false, + "image_hash": "d95282fb38f949bfe03aba978e97e1928a039d5108185f9170ead6d7a58675ef", + "image_hash_arm64": "6bdde7240e3eaef2d77e306350d47e81528a987a2012d9d874967ac4a2005c0b" + } + }, + "operator": { + "1.22.0": { + "image_path": "percona/percona-server-mongodb-operator:1.22.0", + "status": "recommended", + "critical": false, + "image_hash": "717e37d0219d9b9c3fa8ac9c2b4b28fb270ec35ac0007e7b4b3323e7358c3e69", + "image_hash_arm64": "0d045ff899d239877e27561eb619a8eb5fa3e6cc79d705ec94ac829541c1f6ae" + } + }, + "log_collector": { + "4.0.1-2": { + "image_path": "percona/fluentbit:4.0.1-2", + "status": "recommended", + "critical": false, + "image_hash": "d732be16b7f3d0eea8d9c0a50f72136db83c2aed74262300d97abd2cfaefbc26", + "image_hash_arm64": "805c102d3646b8499b74ea9864d4c29137f94e4603470c23da1c032276193a36" + } + } + } + } + ] +} \ No newline at end of file From 7ee0edf282b4adcab3bc105b3b47a4a85a8c41d3 Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Wed, 18 Feb 2026 14:57:39 -0300 Subject: [PATCH 2/4] Update Mongo 7 image --- api-tests/apply_route_test.go | 10 +++++----- sources/operator.1.22.0.psmdb-operator.json | 16 ++++++++-------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/api-tests/apply_route_test.go b/api-tests/apply_route_test.go index 61c48a98..fa867fd7 100644 --- a/api-tests/apply_route_test.go +++ b/api-tests/apply_route_test.go @@ -482,7 +482,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"latest", "1.20.0", &v80, "8.0.8-3"}, {"latest", "1.19.1", &v80, "8.0.4-1"}, {"latest", "1.19.0", &v80, "8.0.4-1"}, - {"latest", "1.22.0", &v70, "7.0.28-15"}, + {"latest", "1.22.0", &v70, "7.0.30-16"}, {"latest", "1.21.2", &v70, "7.0.28-15"}, {"latest", "1.21.1", &v70, "7.0.24-13"}, {"latest", "1.21.0", &v70, "7.0.24-13"}, @@ -577,7 +577,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"recommended", "1.21.2", &v80, "8.0.17-6"}, {"recommended", "1.21.1", &v80, "8.0.12-4"}, {"recommended", "1.21.0", &v80, "8.0.12-4"}, - {"recommended", "1.22.0", &v70, "7.0.28-15"}, + {"recommended", "1.22.0", &v70, "7.0.30-16"}, {"recommended", "1.21.2", &v70, "7.0.28-15"}, {"recommended", "1.21.1", &v70, "7.0.24-13"}, {"recommended", "1.21.0", &v70, "7.0.24-13"}, @@ -652,7 +652,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"8.0.8-3", "1.20.0", nil, "8.0.8-3"}, {"8.0.4-1", "1.19.1", nil, "8.0.4-1"}, {"8.0.4-1", "1.19.0", nil, "8.0.4-1"}, - {"7.0.28-15", "1.22.0", nil, "7.0.28-15"}, + {"7.0.30-16", "1.22.0", nil, "7.0.30-16"}, {"7.0.28-15", "1.21.2", nil, "7.0.28-15"}, {"7.0.24-13", "1.21.1", nil, "7.0.24-13"}, {"7.0.24-13", "1.21.0", nil, "7.0.24-13"}, @@ -731,7 +731,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"8.0-latest", "1.20.0", nil, "8.0.8-3"}, {"8.0-latest", "1.19.1", nil, "8.0.4-1"}, {"8.0-latest", "1.19.0", nil, "8.0.4-1"}, - {"7.0-latest", "1.22.0", nil, "7.0.28-15"}, + {"7.0-latest", "1.22.0", nil, "7.0.30-16"}, {"7.0-latest", "1.21.2", nil, "7.0.28-15"}, {"7.0-latest", "1.21.1", nil, "7.0.24-13"}, {"7.0-latest", "1.21.0", nil, "7.0.24-13"}, @@ -805,7 +805,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"8.0-recommended", "1.21.2", nil, "8.0.17-6"}, {"8.0-recommended", "1.21.1", nil, "8.0.12-4"}, {"8.0-recommended", "1.21.0", nil, "8.0.12-4"}, - {"7.0-recommended", "1.22.0", nil, "7.0.28-15"}, + {"7.0-recommended", "1.22.0", nil, "7.0.30-16"}, {"7.0-recommended", "1.21.2", nil, "7.0.28-15"}, {"7.0-recommended", "1.21.1", nil, "7.0.24-13"}, {"7.0-recommended", "1.21.0", nil, "7.0.24-13"}, diff --git a/sources/operator.1.22.0.psmdb-operator.json b/sources/operator.1.22.0.psmdb-operator.json index eef1f19e..47ad6da5 100644 --- a/sources/operator.1.22.0.psmdb-operator.json +++ b/sources/operator.1.22.0.psmdb-operator.json @@ -33,9 +33,16 @@ "image_hash": "873b201ce3d66d97b1225c26db392c5043a73cc19ee8db6f2dc1b8efd4783bcf", "image_hash_arm64": "222ccf746ad4ffdfccf41b41edaa0d318d28f663e13c9629f8dad5a5078434e5" }, + "7.0.30-16": { + "image_path": "percona/percona-server-mongodb:7.0.30-16", + "status": "recommended", + "critical": false, + "image_hash": "32bc384e2af367e4261bdf1d2b09211bb210425f292494e5837e5a05f6805768", + "image_hash_arm64": "d333516c8b912d25b12759ab9c6d27d1ae4567e940f7922bd05c8dc06ae3228b" + }, "7.0.28-15": { "image_path": "percona/percona-server-mongodb:7.0.28-15", - "status": "recommended", + "status": "available", "critical": false, "image_hash": "d131a4375c3e669f97da6cdf5eef847099c731fd956341345f37e6e6fb68d699", "image_hash_arm64": "6bc8ee24a7e60ec8ef32002165584320b9cc0eb6067a5f304cee6f1ea708f9b3" @@ -61,13 +68,6 @@ "image_hash": "7bffdf2e71c121e2ab37b4fa7e2f513237abdd65266da384bf8197cee1316917", "image_hash_arm64": "fdc4875df82572267445811445ebf517f63e509be54d1a2599fe58e1c525e1d8" }, - "7.0.14-8": { - "image_path": "percona/percona-server-mongodb:7.0.14-8-multi", - "status": "available", - "critical": false, - "image_hash": "ed932d4e7231dcb793bf609f781226a8393aa8958b103339f4a503a8f70ed17e", - "image_hash_arm64": "052f84ee926ad9b5146f08a7e887820342d65b757a284c2f0ea8e937bb51cd7b" - }, "6.0.27-21": { "image_path": "percona/percona-server-mongodb:6.0.27-21", "status": "recommended", From 0a7e3fc2a5cb4fc8d37cbdb5f467b9ca88189b26 Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Thu, 19 Feb 2026 09:07:27 -0300 Subject: [PATCH 3/4] Update operator and pbm hashes --- sources/operator.1.22.0.psmdb-operator.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sources/operator.1.22.0.psmdb-operator.json b/sources/operator.1.22.0.psmdb-operator.json index 47ad6da5..287e1298 100644 --- a/sources/operator.1.22.0.psmdb-operator.json +++ b/sources/operator.1.22.0.psmdb-operator.json @@ -125,8 +125,8 @@ "image_path": "percona/percona-backup-mongodb:2.12.0", "status": "recommended", "critical": false, - "image_hash": "d95282fb38f949bfe03aba978e97e1928a039d5108185f9170ead6d7a58675ef", - "image_hash_arm64": "6bdde7240e3eaef2d77e306350d47e81528a987a2012d9d874967ac4a2005c0b" + "image_hash": "6d56b787c2dc532c9c19cc607a2bc1855a722cdaa52024ea38d4de4aae777f8a", + "image_hash_arm64": "e2177fa6fef0e47ee8392ca7044a6781150ccf7297383239f813558323aa0a8e" } }, "operator": { @@ -134,8 +134,8 @@ "image_path": "percona/percona-server-mongodb-operator:1.22.0", "status": "recommended", "critical": false, - "image_hash": "717e37d0219d9b9c3fa8ac9c2b4b28fb270ec35ac0007e7b4b3323e7358c3e69", - "image_hash_arm64": "0d045ff899d239877e27561eb619a8eb5fa3e6cc79d705ec94ac829541c1f6ae" + "image_hash": "d4384b3853dc5026cc33de1dfd68ac11aaf5d54f4e84b115e05d7d473f4c6188", + "image_hash_arm64": "be97aad4c0642bc4e2e5c7c31b4d123d9f6135070682b8fbd6024c7620315e72" } }, "log_collector": { From 09da0929d89fae0585ab5e88d52fb99379d078ce Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Thu, 19 Feb 2026 15:03:24 -0300 Subject: [PATCH 4/4] Update Mongo 8 hashes --- api-tests/apply_route_test.go | 14 +++++++------- sources/operator.1.22.0.psmdb-operator.json | 9 ++++++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/api-tests/apply_route_test.go b/api-tests/apply_route_test.go index fa867fd7..fa61a220 100644 --- a/api-tests/apply_route_test.go +++ b/api-tests/apply_route_test.go @@ -450,7 +450,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { version string }{ // test latest - {"latest", "1.22.0", nil, "8.0.17-6"}, + {"latest", "1.22.0", nil, "8.0.19-7"}, {"latest", "1.21.2", nil, "8.0.17-6"}, {"latest", "1.21.1", nil, "8.0.12-4"}, {"latest", "1.21.0", nil, "8.0.12-4"}, @@ -474,7 +474,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"latest", "1.7.0", nil, "4.4.3-5"}, {"latest", "1.6.0", nil, "4.4.2-4"}, {"latest", "1.5.0", nil, "4.2.8-8"}, - {"latest", "1.22.0", &v80, "8.0.17-6"}, + {"latest", "1.22.0", &v80, "8.0.19-7"}, {"latest", "1.21.2", &v80, "8.0.17-6"}, {"latest", "1.21.1", &v80, "8.0.12-4"}, {"latest", "1.21.0", &v80, "8.0.12-4"}, @@ -549,7 +549,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"latest", "1.5.0", &v36, "3.6.19-7.0"}, // test recommended - {"recommended", "1.22.0", nil, "8.0.17-6"}, + {"recommended", "1.22.0", nil, "8.0.19-7"}, {"recommended", "1.21.2", nil, "8.0.17-6"}, {"recommended", "1.21.1", nil, "8.0.12-4"}, {"recommended", "1.21.0", nil, "8.0.12-4"}, @@ -573,7 +573,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"recommended", "1.7.0", nil, "4.4.3-5"}, {"recommended", "1.6.0", nil, "4.4.2-4"}, {"recommended", "1.5.0", nil, "4.2.8-8"}, - {"recommended", "1.22.0", &v80, "8.0.17-6"}, + {"recommended", "1.22.0", &v80, "8.0.19-7"}, {"recommended", "1.21.2", &v80, "8.0.17-6"}, {"recommended", "1.21.1", &v80, "8.0.12-4"}, {"recommended", "1.21.0", &v80, "8.0.12-4"}, @@ -644,7 +644,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"recommended", "1.5.0", &v36, "3.6.19-7.0"}, // test exact - {"8.0.17-6", "1.22.0", nil, "8.0.17-6"}, + {"8.0.19-7", "1.22.0", nil, "8.0.19-7"}, {"8.0.17-6", "1.21.2", nil, "8.0.17-6"}, {"8.0.12-4", "1.21.1", nil, "8.0.12-4"}, {"8.0.12-4", "1.21.0", nil, "8.0.12-4"}, @@ -723,7 +723,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"3.6.18-5.0", "1.5.0", nil, "3.6.18-5.0"}, //test with suffix - {"8.0-latest", "1.22.0", nil, "8.0.17-6"}, + {"8.0-latest", "1.22.0", nil, "8.0.19-7"}, {"8.0-latest", "1.21.2", nil, "8.0.17-6"}, {"8.0-latest", "1.21.1", nil, "8.0.12-4"}, {"8.0-latest", "1.21.0", nil, "8.0.12-4"}, @@ -801,7 +801,7 @@ func TestApplyPsmdbReturnedVersions(t *testing.T) { {"3.6-latest", "1.6.0", nil, "3.6.21-10.0"}, {"3.6-latest", "1.5.0", nil, "3.6.19-7.0"}, - {"8.0-recommended", "1.22.0", nil, "8.0.17-6"}, + {"8.0-recommended", "1.22.0", nil, "8.0.19-7"}, {"8.0-recommended", "1.21.2", nil, "8.0.17-6"}, {"8.0-recommended", "1.21.1", nil, "8.0.12-4"}, {"8.0-recommended", "1.21.0", nil, "8.0.12-4"}, diff --git a/sources/operator.1.22.0.psmdb-operator.json b/sources/operator.1.22.0.psmdb-operator.json index 287e1298..e4a291ae 100644 --- a/sources/operator.1.22.0.psmdb-operator.json +++ b/sources/operator.1.22.0.psmdb-operator.json @@ -5,9 +5,16 @@ "product": "psmdb-operator", "matrix": { "mongod": { + "8.0.19-7": { + "image_path": "percona/percona-server-mongodb:8.0.19-7", + "status": "recommended", + "critical": false, + "image_hash": "779378a9f52cd9e617d0c356053b4b9c97209b0b759aa819300427836f6f2c66", + "image_hash_arm64": "531793543992d2e502d3187b778f8468462dd9cdb16a58fa157fe86626594ede" + }, "8.0.17-6": { "image_path": "percona/percona-server-mongodb:8.0.17-6", - "status": "recommended", + "status": "available", "critical": false, "image_hash": "ae6380469f6b73d3517ec4eae7b2f12ff6310dc2deae8e52fe514276c45e9440", "image_hash_arm64": "f1170f8bf68d051816cd4d956ca1f6ee9885c6cf0e1e5db5dc00a137af3603ee"