From 3c6956338260a9838caf1c1ea282ff5019578838 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 3 Nov 2025 21:49:42 +0200 Subject: [PATCH 01/11] K8SPG-836: Update versions for 2.8.0 release (#1342) * K8SPG-836: Update versions for 2.8.0 release * K8SPG-836: use version for release reviewdog manifest testss --- .github/workflows/reviewdog.yml | 9 ++- config/bundle/kustomization.yaml | 4 +- config/cw-bundle/kustomization.yaml | 4 +- config/manager/cluster/kustomization.yaml | 4 +- config/manager/namespace/kustomization.yaml | 4 +- deploy/bundle.yaml | 2 +- deploy/cr.yaml | 16 ++--- deploy/cw-bundle.yaml | 2 +- deploy/cw-operator.yaml | 2 +- deploy/operator.yaml | 2 +- deploy/upgrade.yaml | 8 +-- e2e-tests/release_versions | 69 +++++++++++---------- 12 files changed, 67 insertions(+), 59 deletions(-) diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index 971eb5a4a..921c73146 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -93,6 +93,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - run: | + - name: check on release branch + if: ${{ contains(github.head_ref, 'release-') || contains(github.base_ref, 'release-') }} + run: | + make generate VERSION="$(cat percona/version/version.txt)" IMAGE_TAG_BASE="percona/percona-postgresql-operator" + git diff --exit-code + - name: check on non release branches + if: ${{ ! (contains(github.head_ref, 'release-') || contains(github.base_ref, 'release-')) }} + run: | make generate VERSION=main git diff --exit-code diff --git a/config/bundle/kustomization.yaml b/config/bundle/kustomization.yaml index 90cf89956..0412fd1dd 100644 --- a/config/bundle/kustomization.yaml +++ b/config/bundle/kustomization.yaml @@ -6,5 +6,5 @@ resources: - ../manager/namespace images: - name: postgres-operator - newName: docker.io/perconalab/percona-postgresql-operator - newTag: main + newName: docker.io/percona/percona-postgresql-operator + newTag: 2.8.0 diff --git a/config/cw-bundle/kustomization.yaml b/config/cw-bundle/kustomization.yaml index 440d09873..0b3c810ea 100644 --- a/config/cw-bundle/kustomization.yaml +++ b/config/cw-bundle/kustomization.yaml @@ -7,5 +7,5 @@ resources: images: - name: postgres-operator - newName: docker.io/perconalab/percona-postgresql-operator - newTag: main + newName: docker.io/percona/percona-postgresql-operator + newTag: 2.8.0 diff --git a/config/manager/cluster/kustomization.yaml b/config/manager/cluster/kustomization.yaml index 6f8f4bf12..940a80d27 100644 --- a/config/manager/cluster/kustomization.yaml +++ b/config/manager/cluster/kustomization.yaml @@ -8,5 +8,5 @@ patchesStrategicMerge: images: - name: postgres-operator - newName: docker.io/perconalab/percona-postgresql-operator - newTag: main + newName: docker.io/percona/percona-postgresql-operator + newTag: 2.8.0 diff --git a/config/manager/namespace/kustomization.yaml b/config/manager/namespace/kustomization.yaml index a57ff786e..1e4cfc0e6 100644 --- a/config/manager/namespace/kustomization.yaml +++ b/config/manager/namespace/kustomization.yaml @@ -9,5 +9,5 @@ patchesStrategicMerge: images: - name: postgres-operator - newName: docker.io/perconalab/percona-postgresql-operator - newTag: main + newName: docker.io/percona/percona-postgresql-operator + newTag: 2.8.0 diff --git a/deploy/bundle.yaml b/deploy/bundle.yaml index e93e6e85a..020076242 100644 --- a/deploy/bundle.yaml +++ b/deploy/bundle.yaml @@ -53964,7 +53964,7 @@ spec: value: "false" - name: PGO_WORKERS value: "1" - image: docker.io/perconalab/percona-postgresql-operator:main + image: docker.io/percona/percona-postgresql-operator:2.8.0 imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/cr.yaml b/deploy/cr.yaml index e055bc6f3..ed3064d5d 100644 --- a/deploy/cr.yaml +++ b/deploy/cr.yaml @@ -11,7 +11,7 @@ metadata: spec: crVersion: 2.8.0 # initContainer: -# image: docker.io/perconalab/percona-postgresql-operator:main +# image: docker.io/percona/percona-postgresql-operator:2.8.0 # resources: # limits: # cpu: 2.0 @@ -154,7 +154,7 @@ spec: # test-label: value - image: docker.io/perconalab/percona-postgresql-operator:main-ppg17-postgres + image: docker.io/percona/percona-distribution-postgresql:17.6-1 imagePullPolicy: Always postgresVersion: 17 # port: 5432 @@ -188,7 +188,7 @@ spec: # - secretRef: # name: instance-env-secret # initContainer: -# image: docker.io/perconalab/percona-postgresql-operator:main +# image: docker.io/percona/percona-postgresql-operator:2.8.0 # resources: # limits: # cpu: 2.0 @@ -312,7 +312,7 @@ spec: proxy: pgBouncer: replicas: 3 - image: docker.io/perconalab/percona-postgresql-operator:main-pgbouncer17 + image: docker.io/percona/percona-pgbouncer:1.24.1-1 # env: # - name: MY_ENV # value: "1000" @@ -409,7 +409,7 @@ spec: pgbackrest: # metadata: # labels: - image: docker.io/perconalab/percona-postgresql-operator:main-pgbackrest17 + image: docker.io/percona/percona-pgbackrest:2.56.0-1 # env: # - name: MY_ENV # value: "1000" @@ -417,7 +417,7 @@ spec: # - secretRef: # name: repo-host-env-secret # initContainer: -# image: docker.io/perconalab/percona-postgresql-operator:main +# image: docker.io/percona/percona-postgresql-operator:2.8.0 # resources: # limits: # cpu: 2.0 @@ -613,7 +613,7 @@ spec: pmm: enabled: false - image: docker.io/perconalab/pmm-client:dev-latest + image: docker.io/percona/pmm-client:3.4.1 # imagePullPolicy: IfNotPresent secret: cluster1-pmm-secret serverHost: monitoring-service @@ -647,7 +647,7 @@ spec: # - basebackup # extensions: -# image: docker.io/perconalab/percona-postgresql-operator:main +# image: docker.io/percona/percona-postgresql-operator:2.8.0 # imagePullPolicy: Always # storage: # type: s3 diff --git a/deploy/cw-bundle.yaml b/deploy/cw-bundle.yaml index 669b9940e..3fc6cc1c4 100644 --- a/deploy/cw-bundle.yaml +++ b/deploy/cw-bundle.yaml @@ -53962,7 +53962,7 @@ spec: value: "false" - name: PGO_WORKERS value: "1" - image: docker.io/perconalab/percona-postgresql-operator:main + image: docker.io/percona/percona-postgresql-operator:2.8.0 imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/cw-operator.yaml b/deploy/cw-operator.yaml index 786141384..1abc72e4c 100644 --- a/deploy/cw-operator.yaml +++ b/deploy/cw-operator.yaml @@ -44,7 +44,7 @@ spec: value: "false" - name: PGO_WORKERS value: "1" - image: docker.io/perconalab/percona-postgresql-operator:main + image: docker.io/percona/percona-postgresql-operator:2.8.0 imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/operator.yaml b/deploy/operator.yaml index c6c492333..7da02aca8 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -47,7 +47,7 @@ spec: value: "false" - name: PGO_WORKERS value: "1" - image: docker.io/perconalab/percona-postgresql-operator:main + image: docker.io/percona/percona-postgresql-operator:2.8.0 imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/upgrade.yaml b/deploy/upgrade.yaml index 59ddf91d3..2a28427a4 100644 --- a/deploy/upgrade.yaml +++ b/deploy/upgrade.yaml @@ -4,9 +4,9 @@ metadata: name: cluster1-16-to-17 spec: postgresClusterName: cluster1 - image: docker.io/perconalab/percona-postgresql-operator:main-upgrade + image: docker.io/percona/percona-postgresql-operator:2.8.0-upgrade fromPostgresVersion: 16 toPostgresVersion: 17 - toPostgresImage: docker.io/perconalab/percona-postgresql-operator:main-ppg17-postgres - toPgBouncerImage: docker.io/perconalab/percona-postgresql-operator:main-pgbouncer17 - toPgBackRestImage: docker.io/perconalab/percona-postgresql-operator:main-pgbackrest17 + toPostgresImage: docker.io/percona/percona-distribution-postgresql:17.6-1 + toPgBouncerImage: docker.io/percona/percona-pgbouncer:1.24.1-1 + toPgBackRestImage: docker.io/percona/percona-pgbackrest:2.56.0-1 diff --git a/e2e-tests/release_versions b/e2e-tests/release_versions index 4e7b46b82..a42562244 100644 --- a/e2e-tests/release_versions +++ b/e2e-tests/release_versions @@ -1,45 +1,46 @@ # Images versions -IMAGE_OPERATOR=percona/percona-postgresql-operator:2.7.0 +IMAGE_OPERATOR=percona/percona-postgresql-operator:2.8.0 -IMAGE_POSTGRESQL17=percona/percona-postgresql-operator:2.7.0-ppg17.5.2-postgres -IMAGE_PGBOUNCER17=percona/percona-pgbouncer:1.24.1 -IMAGE_POSTGIS17=percona/percona-postgresql-operator:2.7.0-ppg17.5.2-postgres-gis3.3.8 -IMAGE_BACKREST17=percona/percona-pgbackrest:2.55.0 +IMAGE_POSTGRESQL17=percona/percona-distribution-postgresql:17.6-1 +IMAGE_PGBOUNCER17=percona/percona-pgbouncer:1.24.1-1 +IMAGE_POSTGIS17=percona/percona-postgresql-operator:2.8.0-ppg17.6-postgres-gis3.3.8 +IMAGE_BACKREST17=percona/percona-pgbackrest:2.56.0-1 -IMAGE_POSTGRESQL16=percona/percona-postgresql-operator:2.7.0-ppg16.9-postgres -IMAGE_PGBOUNCER16=percona/percona-pgbouncer:1.24.1 -IMAGE_POSTGIS16=percona/percona-postgresql-operator:2.7.0-ppg16.9-postgres-gis3.3.8 -IMAGE_BACKREST16=percona/percona-pgbackrest:2.55.0 +IMAGE_POSTGRESQL16=percona/percona-distribution-postgresql:16.10-1 +IMAGE_PGBOUNCER16=percona/percona-pgbouncer:1.24.1-1 +IMAGE_POSTGIS16=percona/percona-postgresql-operator:2.8.0-ppg16.10-postgres-gis3.3.8 +IMAGE_BACKREST16=percona/percona-pgbackrest:2.56.0-1 -IMAGE_POSTGRESQL15=percona/percona-postgresql-operator:2.7.0-ppg15.13-postgres -IMAGE_PGBOUNCER15=percona/percona-pgbouncer:1.24.1 -IMAGE_POSTGIS15=percona/percona-postgresql-operator:2.7.0-ppg15.13-postgres-gis3.3.8 -IMAGE_BACKREST15=percona/percona-pgbackrest:2.55.0 +IMAGE_POSTGRESQL15=percona/percona-distribution-postgresql:15.14-1 +IMAGE_PGBOUNCER15=percona/percona-pgbouncer:1.24.1-1 +IMAGE_POSTGIS15=percona/percona-postgresql-operator:2.8.0-ppg15.14-postgres-gis3.3.8 +IMAGE_BACKREST15=percona/percona-pgbackrest:2.56.0-1 -IMAGE_POSTGRESQL14=percona/percona-postgresql-operator:2.7.0-ppg14.18-postgres -IMAGE_PGBOUNCER14=percona/percona-pgbouncer:1.24.1 -IMAGE_POSTGIS14=percona/percona-postgresql-operator:2.7.0-ppg14.18-postgres-gis3.3.8 -IMAGE_BACKREST14=percona/percona-pgbackrest:2.55.0 +IMAGE_POSTGRESQL14=percona/percona-distribution-postgresql:14.19-1 +IMAGE_PGBOUNCER14=percona/percona-pgbouncer:1.24.1-1 +IMAGE_POSTGIS14=percona/percona-postgresql-operator:2.8.0-ppg14.19-postgres-gis3.3.8 +IMAGE_BACKREST14=percona/percona-pgbackrest:2.56.0-1 -IMAGE_POSTGRESQL13=percona/percona-postgresql-operator:2.7.0-ppg13.21-postgres -IMAGE_PGBOUNCER13=percona/percona-pgbouncer:1.24.1 -IMAGE_POSTGIS13=percona/percona-postgresql-operator:2.7.0-ppg13.21-postgres-gis3.3.8 -IMAGE_BACKREST13=percona/percona-pgbackrest:2.55.0 +IMAGE_POSTGRESQL13=percona/percona-distribution-postgresql:13.22-1 +IMAGE_PGBOUNCER13=percona/percona-pgbouncer:1.24.1-1 +IMAGE_POSTGIS13=percona/percona-postgresql-operator:2.8.0-ppg13.22-postgres-gis3.3.8 +IMAGE_BACKREST13=percona/percona-pgbackrest:2.56.0-1 -IMAGE_UPGRADE=percona/percona-postgresql-operator:2.7.0-upgrade +IMAGE_UPGRADE=percona/percona-postgresql-operator:2.8.0-upgrade -IMAGE_PMM_CLIENT=percona/pmm-client:2.44.1 +IMAGE_PMM_CLIENT=percona/pmm-client:2.44.1-1 IMAGE_PMM_SERVER=percona/pmm-server:2.44.1 -IMAGE_PMM3_CLIENT=percona/pmm-client:3.3.0 -IMAGE_PMM3_SERVER=percona/pmm-server:3.3.0 +IMAGE_PMM3_CLIENT=percona/pmm-client:3.4.1 +IMAGE_PMM3_SERVER=percona/pmm-server:3.4.1 # Supported k8s versions -GKE_MIN=1.30 -GKE_MAX=1.32 -EKS_MIN=1.30 -EKS_MAX=1.33 -AKS_MIN=1.30 -AKS_MAX=1.32 -OPENSHIFT_MIN=4.15.53 -OPENSHIFT_MAX=4.19.2 -MINIKUBE_MAX=1.33.1 \ No newline at end of file +GKE_MIN=1.31 +GKE_MAX=1.33 +EKS_MIN=1.31 +EKS_MAX=1.34 +AKS_MIN=1.32 +AKS_MAX=1.34 +OPENSHIFT_MIN=4.16.51 +OPENSHIFT_MAX=4.20.2 +# MINIKUBE_MAX = k8s version in MINIKUBE +MINIKUBE_MAX=1.34.0 \ No newline at end of file From fed0fc6db4be6f47ef7dac91623fc5a69187adf0 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Tue, 4 Nov 2025 00:01:03 +0200 Subject: [PATCH 02/11] K8SPG-836: bump cert manager version (#1343) --- e2e-tests/functions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-tests/functions b/e2e-tests/functions index 08c65e876..983e345d2 100644 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -2,7 +2,7 @@ # set root repo relatively to a test dir ROOT_REPO=${ROOT_REPO:-$(realpath ../../..)} -CERT_MANAGER_VER="1.18.2" +CERT_MANAGER_VER="1.19.1" test_name=$(basename "$(pwd)") source "${ROOT_REPO}/e2e-tests/vars.sh" From 36285879c38a651b729559d8d6e4c3695453eaf1 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Thu, 6 Nov 2025 19:50:52 +0200 Subject: [PATCH 03/11] K8SPG-836: increase sleep for telemetry transfer tests --- .../tests/telemetry-transfer/04-verify-transferred-pmm.yaml | 2 +- .../tests/telemetry-transfer/05-verify-transferred-helm-cr.yaml | 2 +- .../telemetry-transfer/06-verify-transferred-sidecars.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e-tests/tests/telemetry-transfer/04-verify-transferred-pmm.yaml b/e2e-tests/tests/telemetry-transfer/04-verify-transferred-pmm.yaml index b87ae394e..75f10545b 100644 --- a/e2e-tests/tests/telemetry-transfer/04-verify-transferred-pmm.yaml +++ b/e2e-tests/tests/telemetry-transfer/04-verify-transferred-pmm.yaml @@ -9,7 +9,7 @@ commands: source ../../functions kubectl -n ${NAMESPACE} patch perconapgcluster/${test_name} --type=merge -p '{"spec":{"pmm":{"enabled":true}}}' - sleep 5 + sleep 7 CR_ID=$(kubectl -n ${NAMESPACE} get perconapgcluster/${test_name} --template='{{.metadata.uid}}') TRANSFERRED_KEYS=$(kubectl -n ${NAMESPACE} logs -l run=version-service| grep ${CR_ID} | tail -n1 | grep -Eo '\{.*\}$' | jq '."grpc.request.content".msg | keys') kubectl create configmap -n "${NAMESPACE}" 04-verify-tramsferred-pmm --from-literal=keys="${TRANSFERRED_KEYS}" \ No newline at end of file diff --git a/e2e-tests/tests/telemetry-transfer/05-verify-transferred-helm-cr.yaml b/e2e-tests/tests/telemetry-transfer/05-verify-transferred-helm-cr.yaml index 859984246..736809a7d 100644 --- a/e2e-tests/tests/telemetry-transfer/05-verify-transferred-helm-cr.yaml +++ b/e2e-tests/tests/telemetry-transfer/05-verify-transferred-helm-cr.yaml @@ -9,7 +9,7 @@ commands: source ../../functions kubectl -n ${NAMESPACE} patch perconapgcluster/${test_name} --type=merge -p '{"metadata":{"labels":{"helm.sh/chart":"fake-chart-to-verify-telemetry-transfer"}}}' - sleep 5 + sleep 7 CR_ID=$(kubectl -n ${NAMESPACE} get perconapgcluster/${test_name} --template='{{.metadata.uid}}') TRANSFERRED_KEYS=$(kubectl -n ${NAMESPACE} logs -l run=version-service| grep ${CR_ID} | tail -n1 | grep -Eo '\{.*\}$' | jq '."grpc.request.content".msg | keys') kubectl create configmap -n "${NAMESPACE}" 05-verify-tramsferred-helm-cr --from-literal=keys="${TRANSFERRED_KEYS}" \ No newline at end of file diff --git a/e2e-tests/tests/telemetry-transfer/06-verify-transferred-sidecars.yaml b/e2e-tests/tests/telemetry-transfer/06-verify-transferred-sidecars.yaml index e75fef455..8aeec9f57 100644 --- a/e2e-tests/tests/telemetry-transfer/06-verify-transferred-sidecars.yaml +++ b/e2e-tests/tests/telemetry-transfer/06-verify-transferred-sidecars.yaml @@ -9,7 +9,7 @@ commands: source ../../functions kubectl -n ${NAMESPACE} patch perconapgcluster/${test_name} --type=json -p '[{"op":"add","path":"/spec/instances/0/sidecars","value":[{"name":"testcontainer","image":"busybox","command":["sleep","infinity"]}]}]' - sleep 5 + sleep 7 CR_ID=$(kubectl -n ${NAMESPACE} get perconapgcluster/${test_name} --template='{{.metadata.uid}}') TRANSFERRED_KEYS=$(kubectl -n ${NAMESPACE} logs -l run=version-service| grep ${CR_ID} | tail -n1 | grep -Eo '\{.*\}$' | jq '."grpc.request.content".msg | keys') kubectl create configmap -n "${NAMESPACE}" 06-verify-tramsferred-sidecars --from-literal=keys="${TRANSFERRED_KEYS}" \ No newline at end of file From 6fb3c959d9ba0279e1ff69d4a1b0cf69d93d4bb0 Mon Sep 17 00:00:00 2001 From: Natalia Marukovich Date: Thu, 6 Nov 2025 18:49:29 +0100 Subject: [PATCH 04/11] K8SPG-833_fix_test add stability (#1344) * K8SPG-833_fix_test add stability * Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- e2e-tests/functions | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/e2e-tests/functions b/e2e-tests/functions index 983e345d2..e69256717 100644 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -1036,16 +1036,22 @@ get_desired_replicas() { kubectl get statefulset "$1" -n "$NAMESPACE" -o jsonpath='{.spec.replicas}' } +get_ready_replicas() { + kubectl get sts "$1" -n "$NAMESPACE" -o jsonpath='{.status.readyReplicas}' +} + wait_sts_rollout() { local sts=$1 + local ready_replicas=$(get_ready_replicas $sts) local updated_replicas=$(get_updated_replicas $sts) local desired_replicas=$(get_desired_replicas $sts) + echo "ready_replicas $ready_replicas desired_replicas $desired_replicas" - until [[ $updated_replicas -eq $desired_replicas ]]; do - updated_replicas=$(get_updated_replicas $sts) + until [[ $ready_replicas -eq $desired_replicas && $updated_replicas -eq $desired_replicas ]]; do + ready_replicas=$(get_ready_replicas $sts) desired_replicas=$(get_desired_replicas $sts) - - echo "Waiting for sts/$sts to update... $updated_replicas/$desired_replicas pods updated." + updated_replicas=$(get_updated_replicas $sts) + echo "Waiting for sts/$sts to update... $ready_replicas/$updated_replicas/$desired_replicas pods updated." sleep 10 done } From b881c3c030a703ae80a72605a0949c94e853024d Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Thu, 6 Nov 2025 21:46:01 +0200 Subject: [PATCH 05/11] Increase timout for telemetry-transfer --- e2e-tests/tests/telemetry-transfer/02-assert.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-tests/tests/telemetry-transfer/02-assert.yaml b/e2e-tests/tests/telemetry-transfer/02-assert.yaml index 010577755..8359a4776 100644 --- a/e2e-tests/tests/telemetry-transfer/02-assert.yaml +++ b/e2e-tests/tests/telemetry-transfer/02-assert.yaml @@ -1,6 +1,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 120 +timeout: 240 --- kind: StatefulSet apiVersion: apps/v1 From d1c1bc0bdf03b33c71fcd3cc8a3c3200ed8ded4b Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Fri, 7 Nov 2025 21:52:52 +0200 Subject: [PATCH 06/11] K8SPG-836: custom-envs test - insrease timeout for cluster start --- e2e-tests/tests/custom-envs/01-assert.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-tests/tests/custom-envs/01-assert.yaml b/e2e-tests/tests/custom-envs/01-assert.yaml index 9f767a78f..cc0e97651 100644 --- a/e2e-tests/tests/custom-envs/01-assert.yaml +++ b/e2e-tests/tests/custom-envs/01-assert.yaml @@ -1,6 +1,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 120 +timeout: 240 --- kind: StatefulSet apiVersion: apps/v1 From 5a2ced46f64cc2630e5db5972ae4a00e468cae09 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Wed, 12 Nov 2025 20:46:42 +0200 Subject: [PATCH 07/11] K8SPG-894: bring back major-upgrade test but remove restores from it (#1352) * Restore ajor upgrade tests * Remove restore from major upgrade to make test more stable * K8SPG-894: bring back major upgrade tests * Fix repos and use sequential --- e2e-tests/functions | 6 +- e2e-tests/run-release.csv | 1 + .../major-upgrade/01-create-cluster.yaml | 8 +-- .../{20-13-to-14.yaml => 04-13-to-14.yaml} | 0 .../{30-assert.yaml => 04-assert.yaml} | 4 +- .../{46-assert.yaml => 05-assert.yaml} | 2 +- ...1-change-repo.yaml => 05-change-repo.yaml} | 0 .../{22-assert.yaml => 06-assert.yaml} | 4 +- ...{22-run-backup.yaml => 06-run-backup.yaml} | 2 +- .../{24-assert.yaml => 07-assert.yaml} | 0 ...primary.yaml => 07-read-from-primary.yaml} | 0 .../{30-14-to-15.yaml => 08-14-to-15.yaml} | 0 .../{20-assert.yaml => 08-assert.yaml} | 2 +- .../{21-assert.yaml => 09-assert.yaml} | 0 ...1-change-repo.yaml => 09-change-repo.yaml} | 0 .../tests/major-upgrade/10-12-to-13.yaml | 24 -------- e2e-tests/tests/major-upgrade/10-assert.yaml | 45 ++++++--------- ...{32-run-backup.yaml => 10-run-backup.yaml} | 2 +- e2e-tests/tests/major-upgrade/11-assert.yaml | 23 ++------ ...primary.yaml => 11-read-from-primary.yaml} | 0 .../{40-15-to-16.yaml => 12-15-to-16.yaml} | 0 e2e-tests/tests/major-upgrade/12-assert.yaml | 45 +++++++++------ .../tests/major-upgrade/12-run-backup.yaml | 9 --- e2e-tests/tests/major-upgrade/13-assert.yaml | 57 +++++-------------- ...1-change-repo.yaml => 13-change-repo.yaml} | 0 .../tests/major-upgrade/13-run-restore.yaml | 7 --- e2e-tests/tests/major-upgrade/14-assert.yaml | 33 +++++++++-- .../major-upgrade/14-read-from-primary.yaml | 12 ---- ...{42-run-backup.yaml => 14-run-backup.yaml} | 2 +- .../{44-assert.yaml => 15-assert.yaml} | 2 +- ...primary.yaml => 15-read-from-primary.yaml} | 2 +- .../{45-16-to-17.yaml => 16-16-to-17.yaml} | 0 .../{45-assert.yaml => 16-assert.yaml} | 0 .../{31-assert.yaml => 17-assert.yaml} | 0 .../{32-assert.yaml => 18-assert.yaml} | 4 +- ...{47-run-backup.yaml => 18-run-backup.yaml} | 2 +- .../{34-assert.yaml => 19-assert.yaml} | 2 +- ...primary.yaml => 19-read-from-primary.yaml} | 2 +- e2e-tests/tests/major-upgrade/23-assert.yaml | 52 ----------------- .../tests/major-upgrade/23-run-restore.yaml | 7 --- e2e-tests/tests/major-upgrade/33-assert.yaml | 52 ----------------- .../tests/major-upgrade/33-run-restore.yaml | 8 --- e2e-tests/tests/major-upgrade/40-assert.yaml | 42 -------------- e2e-tests/tests/major-upgrade/41-assert.yaml | 21 ------- .../tests/major-upgrade/41-change-repo.yaml | 12 ---- e2e-tests/tests/major-upgrade/42-assert.yaml | 31 ---------- e2e-tests/tests/major-upgrade/43-assert.yaml | 52 ----------------- .../tests/major-upgrade/43-run-restore.yaml | 8 --- e2e-tests/tests/major-upgrade/47-assert.yaml | 31 ---------- e2e-tests/tests/major-upgrade/48-assert.yaml | 10 ---- .../tests/major-upgrade/48-run-restore.yaml | 8 --- 51 files changed, 117 insertions(+), 519 deletions(-) rename e2e-tests/tests/major-upgrade/{20-13-to-14.yaml => 04-13-to-14.yaml} (100%) rename e2e-tests/tests/major-upgrade/{30-assert.yaml => 04-assert.yaml} (90%) rename e2e-tests/tests/major-upgrade/{46-assert.yaml => 05-assert.yaml} (96%) rename e2e-tests/tests/major-upgrade/{11-change-repo.yaml => 05-change-repo.yaml} (100%) rename e2e-tests/tests/major-upgrade/{22-assert.yaml => 06-assert.yaml} (88%) rename e2e-tests/tests/major-upgrade/{22-run-backup.yaml => 06-run-backup.yaml} (89%) rename e2e-tests/tests/major-upgrade/{24-assert.yaml => 07-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{24-read-from-primary.yaml => 07-read-from-primary.yaml} (100%) rename e2e-tests/tests/major-upgrade/{30-14-to-15.yaml => 08-14-to-15.yaml} (100%) rename e2e-tests/tests/major-upgrade/{20-assert.yaml => 08-assert.yaml} (97%) rename e2e-tests/tests/major-upgrade/{21-assert.yaml => 09-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{21-change-repo.yaml => 09-change-repo.yaml} (100%) delete mode 100644 e2e-tests/tests/major-upgrade/10-12-to-13.yaml rename e2e-tests/tests/major-upgrade/{32-run-backup.yaml => 10-run-backup.yaml} (89%) rename e2e-tests/tests/major-upgrade/{44-read-from-primary.yaml => 11-read-from-primary.yaml} (100%) rename e2e-tests/tests/major-upgrade/{40-15-to-16.yaml => 12-15-to-16.yaml} (100%) delete mode 100644 e2e-tests/tests/major-upgrade/12-run-backup.yaml rename e2e-tests/tests/major-upgrade/{31-change-repo.yaml => 13-change-repo.yaml} (100%) delete mode 100644 e2e-tests/tests/major-upgrade/13-run-restore.yaml delete mode 100644 e2e-tests/tests/major-upgrade/14-read-from-primary.yaml rename e2e-tests/tests/major-upgrade/{42-run-backup.yaml => 14-run-backup.yaml} (89%) rename e2e-tests/tests/major-upgrade/{44-assert.yaml => 15-assert.yaml} (81%) rename e2e-tests/tests/major-upgrade/{34-read-from-primary.yaml => 15-read-from-primary.yaml} (85%) rename e2e-tests/tests/major-upgrade/{45-16-to-17.yaml => 16-16-to-17.yaml} (100%) rename e2e-tests/tests/major-upgrade/{45-assert.yaml => 16-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{31-assert.yaml => 17-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{32-assert.yaml => 18-assert.yaml} (93%) rename e2e-tests/tests/major-upgrade/{47-run-backup.yaml => 18-run-backup.yaml} (89%) rename e2e-tests/tests/major-upgrade/{34-assert.yaml => 19-assert.yaml} (81%) rename e2e-tests/tests/major-upgrade/{49-read-from-primary.yaml => 19-read-from-primary.yaml} (85%) delete mode 100644 e2e-tests/tests/major-upgrade/23-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/23-run-restore.yaml delete mode 100644 e2e-tests/tests/major-upgrade/33-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/33-run-restore.yaml delete mode 100644 e2e-tests/tests/major-upgrade/40-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/41-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/41-change-repo.yaml delete mode 100644 e2e-tests/tests/major-upgrade/42-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/43-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/43-run-restore.yaml delete mode 100644 e2e-tests/tests/major-upgrade/47-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/48-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/48-run-restore.yaml diff --git a/e2e-tests/functions b/e2e-tests/functions index e69256717..ecdb008d1 100644 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -1114,7 +1114,11 @@ get_container_image() { operatorVersion=main fi - echo "${IMAGE_BASE}:${operatorVersion}-ppg${pgVersion}-${component}" + if [[ $component == 'pgbouncer' || $component == 'pgbackrest' ]]; then + echo "${IMAGE_BASE}:${operatorVersion}-${component}${pgVersion}" + else + echo "${IMAGE_BASE}:${operatorVersion}-ppg${pgVersion}-${component}" + fi } get_postgresql_logs() { diff --git a/e2e-tests/run-release.csv b/e2e-tests/run-release.csv index 358ce4498..5a53e2617 100644 --- a/e2e-tests/run-release.csv +++ b/e2e-tests/run-release.csv @@ -6,6 +6,7 @@ database-init-sql demand-backup finalizers init-deploy +major-upgrade monitoring monitoring-pmm3 one-pod diff --git a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml index 729fbcc51..ad23c41e3 100644 --- a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml +++ b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml @@ -10,11 +10,11 @@ commands: get_cr \ | yq eval ' - .spec.postgresVersion = 12 | - .spec.image = "perconalab/percona-postgresql-operator:main-ppg12-postgres" | + .spec.postgresVersion = 13 | + .spec.image = "perconalab/percona-postgresql-operator:main-ppg13-postgres" | .spec.instances[0].dataVolumeClaimSpec.resources.requests.storage = "3Gi" | - .spec.proxy.pgBouncer.image = "perconalab/percona-postgresql-operator:main-ppg12-pgbouncer" | - .spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-ppg12-pgbackrest" | + .spec.proxy.pgBouncer.image = "perconalab/percona-postgresql-operator:main-pgbouncer13" | + .spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-pgbackrest13" | .spec.patroni.dynamicConfiguration.postgresql.parameters.shared_preload_libraries = "pg_cron" | .spec.extensions.custom += [{"name": "pg_cron", "version": "1.6.1"}]' \ | kubectl -n "${NAMESPACE}" apply -f - diff --git a/e2e-tests/tests/major-upgrade/20-13-to-14.yaml b/e2e-tests/tests/major-upgrade/04-13-to-14.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/20-13-to-14.yaml rename to e2e-tests/tests/major-upgrade/04-13-to-14.yaml diff --git a/e2e-tests/tests/major-upgrade/30-assert.yaml b/e2e-tests/tests/major-upgrade/04-assert.yaml similarity index 90% rename from e2e-tests/tests/major-upgrade/30-assert.yaml rename to e2e-tests/tests/major-upgrade/04-assert.yaml index b871b4faf..23d3a30f6 100644 --- a/e2e-tests/tests/major-upgrade/30-assert.yaml +++ b/e2e-tests/tests/major-upgrade/04-assert.yaml @@ -11,7 +11,7 @@ kind: PerconaPGCluster metadata: name: major-upgrade spec: - postgresVersion: 15 + postgresVersion: 14 status: pgbouncer: ready: 3 @@ -32,7 +32,7 @@ metadata: postgres-operator.crunchydata.com/cluster: major-upgrade postgres-operator.crunchydata.com/pgbackrest: '' postgres-operator.crunchydata.com/pgbackrest-backup: replica-create - postgres-operator.crunchydata.com/pgbackrest-repo: repo3 + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup diff --git a/e2e-tests/tests/major-upgrade/46-assert.yaml b/e2e-tests/tests/major-upgrade/05-assert.yaml similarity index 96% rename from e2e-tests/tests/major-upgrade/46-assert.yaml rename to e2e-tests/tests/major-upgrade/05-assert.yaml index 1b95780c8..47ccba03b 100644 --- a/e2e-tests/tests/major-upgrade/46-assert.yaml +++ b/e2e-tests/tests/major-upgrade/05-assert.yaml @@ -16,6 +16,6 @@ status: pgbackrest: repos: - bound: true - name: repo1 + name: repo2 replicaCreateBackupComplete: true stanzaCreated: true diff --git a/e2e-tests/tests/major-upgrade/11-change-repo.yaml b/e2e-tests/tests/major-upgrade/05-change-repo.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/11-change-repo.yaml rename to e2e-tests/tests/major-upgrade/05-change-repo.yaml diff --git a/e2e-tests/tests/major-upgrade/22-assert.yaml b/e2e-tests/tests/major-upgrade/06-assert.yaml similarity index 88% rename from e2e-tests/tests/major-upgrade/22-assert.yaml rename to e2e-tests/tests/major-upgrade/06-assert.yaml index 7a2f6c1c0..605465e35 100644 --- a/e2e-tests/tests/major-upgrade/22-assert.yaml +++ b/e2e-tests/tests/major-upgrade/06-assert.yaml @@ -9,7 +9,7 @@ metadata: postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-13-to-14 labels: postgres-operator.crunchydata.com/pgbackrest-backup: manual - postgres-operator.crunchydata.com/pgbackrest-repo: repo3 + postgres-operator.crunchydata.com/pgbackrest-repo: repo2 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup @@ -24,7 +24,7 @@ metadata: name: backup-after-13-to-14 spec: pgCluster: major-upgrade - repoName: repo3 + repoName: repo2 options: - --type=full status: diff --git a/e2e-tests/tests/major-upgrade/22-run-backup.yaml b/e2e-tests/tests/major-upgrade/06-run-backup.yaml similarity index 89% rename from e2e-tests/tests/major-upgrade/22-run-backup.yaml rename to e2e-tests/tests/major-upgrade/06-run-backup.yaml index a7a1050c5..aaf7d5a7c 100644 --- a/e2e-tests/tests/major-upgrade/22-run-backup.yaml +++ b/e2e-tests/tests/major-upgrade/06-run-backup.yaml @@ -4,6 +4,6 @@ metadata: name: backup-after-13-to-14 spec: pgCluster: major-upgrade - repoName: repo3 + repoName: repo2 options: - --type=full diff --git a/e2e-tests/tests/major-upgrade/24-assert.yaml b/e2e-tests/tests/major-upgrade/07-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/24-assert.yaml rename to e2e-tests/tests/major-upgrade/07-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/24-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/07-read-from-primary.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/24-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/07-read-from-primary.yaml diff --git a/e2e-tests/tests/major-upgrade/30-14-to-15.yaml b/e2e-tests/tests/major-upgrade/08-14-to-15.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/30-14-to-15.yaml rename to e2e-tests/tests/major-upgrade/08-14-to-15.yaml diff --git a/e2e-tests/tests/major-upgrade/20-assert.yaml b/e2e-tests/tests/major-upgrade/08-assert.yaml similarity index 97% rename from e2e-tests/tests/major-upgrade/20-assert.yaml rename to e2e-tests/tests/major-upgrade/08-assert.yaml index c506a745f..c00e35e2a 100644 --- a/e2e-tests/tests/major-upgrade/20-assert.yaml +++ b/e2e-tests/tests/major-upgrade/08-assert.yaml @@ -11,7 +11,7 @@ kind: PerconaPGCluster metadata: name: major-upgrade spec: - postgresVersion: 14 + postgresVersion: 15 status: pgbouncer: ready: 3 diff --git a/e2e-tests/tests/major-upgrade/21-assert.yaml b/e2e-tests/tests/major-upgrade/09-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/21-assert.yaml rename to e2e-tests/tests/major-upgrade/09-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/21-change-repo.yaml b/e2e-tests/tests/major-upgrade/09-change-repo.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/21-change-repo.yaml rename to e2e-tests/tests/major-upgrade/09-change-repo.yaml diff --git a/e2e-tests/tests/major-upgrade/10-12-to-13.yaml b/e2e-tests/tests/major-upgrade/10-12-to-13.yaml deleted file mode 100644 index 96a7fe920..000000000 --- a/e2e-tests/tests/major-upgrade/10-12-to-13.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - script: |- - set -o errexit - set -o xtrace - - source ../../functions - - kubectl apply -n ${NAMESPACE} -f - <<-EOF - apiVersion: pgv2.percona.com/v2 - kind: PerconaPGUpgrade - metadata: - name: 12-to-13 - spec: - postgresClusterName: major-upgrade - image: ${IMAGE_UPGRADE} - fromPostgresVersion: 12 - toPostgresVersion: 13 - toPostgresImage: $(get_container_image "postgres" 13) - toPgBouncerImage: $(get_container_image "pgbouncer" 13) - toPgBackRestImage: $(get_container_image "pgbackrest" 13) - EOF - diff --git a/e2e-tests/tests/major-upgrade/10-assert.yaml b/e2e-tests/tests/major-upgrade/10-assert.yaml index ae8dcb18f..4a603ba7e 100644 --- a/e2e-tests/tests/major-upgrade/10-assert.yaml +++ b/e2e-tests/tests/major-upgrade/10-assert.yaml @@ -1,38 +1,15 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 360 -commands: -- script: |- - kubectl -n ${NAMESPACE} get pg,pod,job - sleep 5 ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGCluster -metadata: - name: major-upgrade -spec: - postgresVersion: 13 -status: - pgbouncer: - ready: 3 - size: 3 - postgres: - instances: - - name: instance1 - ready: 3 - size: 3 - ready: 3 - size: 3 - state: ready +timeout: 660 --- kind: Job apiVersion: batch/v1 metadata: + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-14-to-15 labels: - postgres-operator.crunchydata.com/cluster: major-upgrade - postgres-operator.crunchydata.com/pgbackrest: '' - postgres-operator.crunchydata.com/pgbackrest-backup: replica-create - postgres-operator.crunchydata.com/pgbackrest-repo: repo1 + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo3 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup @@ -40,3 +17,15 @@ metadata: blockOwnerDeletion: true status: succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-14-to-15 +spec: + pgCluster: major-upgrade + repoName: repo3 + options: + - --type=full +status: + state: Succeeded diff --git a/e2e-tests/tests/major-upgrade/32-run-backup.yaml b/e2e-tests/tests/major-upgrade/10-run-backup.yaml similarity index 89% rename from e2e-tests/tests/major-upgrade/32-run-backup.yaml rename to e2e-tests/tests/major-upgrade/10-run-backup.yaml index 792209c20..047e0b557 100644 --- a/e2e-tests/tests/major-upgrade/32-run-backup.yaml +++ b/e2e-tests/tests/major-upgrade/10-run-backup.yaml @@ -4,6 +4,6 @@ metadata: name: backup-after-14-to-15 spec: pgCluster: major-upgrade - repoName: repo4 + repoName: repo3 options: - --type=full diff --git a/e2e-tests/tests/major-upgrade/11-assert.yaml b/e2e-tests/tests/major-upgrade/11-assert.yaml index 47ccba03b..95d57c293 100644 --- a/e2e-tests/tests/major-upgrade/11-assert.yaml +++ b/e2e-tests/tests/major-upgrade/11-assert.yaml @@ -1,21 +1,10 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 660 -commands: -- script: |- - kubectl get postgrescluster major-upgrade \ - -n ${NAMESPACE} \ - -o yaml \ - | yq eval '.status.pgbackrest.repos' - +timeout: 30 --- -apiVersion: postgres-operator.crunchydata.com/v1beta1 -kind: PostgresCluster +kind: ConfigMap +apiVersion: v1 metadata: - name: major-upgrade -status: - pgbackrest: - repos: - - bound: true - name: repo2 - replicaCreateBackupComplete: true - stanzaCreated: true + name: 11-read-from-primary +data: + data: ' 100500' diff --git a/e2e-tests/tests/major-upgrade/44-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/11-read-from-primary.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/44-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/11-read-from-primary.yaml diff --git a/e2e-tests/tests/major-upgrade/40-15-to-16.yaml b/e2e-tests/tests/major-upgrade/12-15-to-16.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/40-15-to-16.yaml rename to e2e-tests/tests/major-upgrade/12-15-to-16.yaml diff --git a/e2e-tests/tests/major-upgrade/12-assert.yaml b/e2e-tests/tests/major-upgrade/12-assert.yaml index d1790eabf..8cd5dbcad 100644 --- a/e2e-tests/tests/major-upgrade/12-assert.yaml +++ b/e2e-tests/tests/major-upgrade/12-assert.yaml @@ -1,15 +1,38 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 660 +timeout: 360 +commands: +- script: |- + kubectl -n ${NAMESPACE} get pg,pod,job + sleep 5 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGCluster +metadata: + name: major-upgrade +spec: + postgresVersion: 16 +status: + pgbouncer: + ready: 3 + size: 3 + postgres: + instances: + - name: instance1 + ready: 3 + size: 3 + ready: 3 + size: 3 + state: ready --- kind: Job apiVersion: batch/v1 metadata: - annotations: - postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-12-to-13 labels: - postgres-operator.crunchydata.com/pgbackrest-backup: manual - postgres-operator.crunchydata.com/pgbackrest-repo: repo2 + postgres-operator.crunchydata.com/cluster: major-upgrade + postgres-operator.crunchydata.com/pgbackrest: '' + postgres-operator.crunchydata.com/pgbackrest-backup: replica-create + postgres-operator.crunchydata.com/pgbackrest-repo: repo3 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup @@ -17,15 +40,3 @@ metadata: blockOwnerDeletion: true status: succeeded: 1 ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGBackup -metadata: - name: backup-after-12-to-13 -spec: - pgCluster: major-upgrade - repoName: repo2 - options: - - --type=full -status: - state: Succeeded diff --git a/e2e-tests/tests/major-upgrade/12-run-backup.yaml b/e2e-tests/tests/major-upgrade/12-run-backup.yaml deleted file mode 100644 index 601008d4c..000000000 --- a/e2e-tests/tests/major-upgrade/12-run-backup.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGBackup -metadata: - name: backup-after-12-to-13 -spec: - pgCluster: major-upgrade - repoName: repo2 - options: - - --type=full diff --git a/e2e-tests/tests/major-upgrade/13-assert.yaml b/e2e-tests/tests/major-upgrade/13-assert.yaml index 2d05bb7d8..6af985e4b 100644 --- a/e2e-tests/tests/major-upgrade/13-assert.yaml +++ b/e2e-tests/tests/major-upgrade/13-assert.yaml @@ -1,52 +1,21 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 720 +timeout: 660 commands: - script: |- - set -o errexit - - kubectl -n ${NAMESPACE} get pod - - for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do - phase=$(kubectl -n ${NAMESPACE} get pod/${pod} -o jsonpath={".status.phase"}) - if [[ "${phase}" != "Running" ]]; then - echo "Waiting for ${pod} to start running" - continue - fi - echo "PostgreSQL logs from ${pod}:" - echo "find /pgdata/pg13/log -type f -iname 'postgresql*.log' -exec tail -n 30 {} \;" \ - | kubectl -n ${NAMESPACE} exec -it ${pod} -- bash 2>/dev/null - done - - sleep 30 -collectors: -- type: pod - selector: "postgres-operator.crunchydata.com/data=postgres" - tail: 30 + kubectl get postgrescluster major-upgrade \ + -n ${NAMESPACE} \ + -o yaml \ + | yq eval '.status.pgbackrest.repos' - --- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-12-to-13 -spec: - pgCluster: major-upgrade - repoName: repo2 -status: - state: Succeeded ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGCluster +apiVersion: postgres-operator.crunchydata.com/v1beta1 +kind: PostgresCluster metadata: name: major-upgrade status: - pgbouncer: - ready: 3 - size: 3 - postgres: - instances: - - name: instance1 - ready: 3 - size: 3 - ready: 3 - size: 3 - state: ready + pgbackrest: + repos: + - bound: true + name: repo4 + replicaCreateBackupComplete: true + stanzaCreated: true diff --git a/e2e-tests/tests/major-upgrade/31-change-repo.yaml b/e2e-tests/tests/major-upgrade/13-change-repo.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/31-change-repo.yaml rename to e2e-tests/tests/major-upgrade/13-change-repo.yaml diff --git a/e2e-tests/tests/major-upgrade/13-run-restore.yaml b/e2e-tests/tests/major-upgrade/13-run-restore.yaml deleted file mode 100644 index bba96fe98..000000000 --- a/e2e-tests/tests/major-upgrade/13-run-restore.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-12-to-13 -spec: - pgCluster: major-upgrade - repoName: repo2 diff --git a/e2e-tests/tests/major-upgrade/14-assert.yaml b/e2e-tests/tests/major-upgrade/14-assert.yaml index 7c65443fb..55610fcd1 100644 --- a/e2e-tests/tests/major-upgrade/14-assert.yaml +++ b/e2e-tests/tests/major-upgrade/14-assert.yaml @@ -1,10 +1,31 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 30 +timeout: 660 --- -kind: ConfigMap -apiVersion: v1 +kind: Job +apiVersion: batch/v1 metadata: - name: 05-read-from-primary -data: - data: ' 100500' + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-15-to-16 + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo4 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-15-to-16 +spec: + pgCluster: major-upgrade + repoName: repo4 + options: + - --type=full +status: + state: Succeeded diff --git a/e2e-tests/tests/major-upgrade/14-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/14-read-from-primary.yaml deleted file mode 100644 index ac80bb337..000000000 --- a/e2e-tests/tests/major-upgrade/14-read-from-primary.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -timeout: 30 -commands: - - script: |- - set -o errexit - set -o xtrace - - source ../../functions - data=$(run_psql_local '\c myapp \\\ SELECT * from myApp;' "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)") - - kubectl create configmap -n "${NAMESPACE}" 05-read-from-primary --from-literal=data="${data}" diff --git a/e2e-tests/tests/major-upgrade/42-run-backup.yaml b/e2e-tests/tests/major-upgrade/14-run-backup.yaml similarity index 89% rename from e2e-tests/tests/major-upgrade/42-run-backup.yaml rename to e2e-tests/tests/major-upgrade/14-run-backup.yaml index 3e4fe9c94..adc6c49ed 100644 --- a/e2e-tests/tests/major-upgrade/42-run-backup.yaml +++ b/e2e-tests/tests/major-upgrade/14-run-backup.yaml @@ -4,6 +4,6 @@ metadata: name: backup-after-15-to-16 spec: pgCluster: major-upgrade - repoName: repo1 + repoName: repo4 options: - --type=full diff --git a/e2e-tests/tests/major-upgrade/44-assert.yaml b/e2e-tests/tests/major-upgrade/15-assert.yaml similarity index 81% rename from e2e-tests/tests/major-upgrade/44-assert.yaml rename to e2e-tests/tests/major-upgrade/15-assert.yaml index 95d57c293..3590bbe99 100644 --- a/e2e-tests/tests/major-upgrade/44-assert.yaml +++ b/e2e-tests/tests/major-upgrade/15-assert.yaml @@ -5,6 +5,6 @@ timeout: 30 kind: ConfigMap apiVersion: v1 metadata: - name: 11-read-from-primary + name: 15-read-from-primary data: data: ' 100500' diff --git a/e2e-tests/tests/major-upgrade/34-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/15-read-from-primary.yaml similarity index 85% rename from e2e-tests/tests/major-upgrade/34-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/15-read-from-primary.yaml index 12ff6f8d7..23a10ac99 100644 --- a/e2e-tests/tests/major-upgrade/34-read-from-primary.yaml +++ b/e2e-tests/tests/major-upgrade/15-read-from-primary.yaml @@ -9,4 +9,4 @@ commands: source ../../functions data=$(run_psql_local '\c myapp \\\ SELECT * from myApp;' "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)") - kubectl create configmap -n "${NAMESPACE}" 09-read-from-primary --from-literal=data="${data}" \ No newline at end of file + kubectl create configmap -n "${NAMESPACE}" 15-read-from-primary --from-literal=data="${data}" \ No newline at end of file diff --git a/e2e-tests/tests/major-upgrade/45-16-to-17.yaml b/e2e-tests/tests/major-upgrade/16-16-to-17.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/45-16-to-17.yaml rename to e2e-tests/tests/major-upgrade/16-16-to-17.yaml diff --git a/e2e-tests/tests/major-upgrade/45-assert.yaml b/e2e-tests/tests/major-upgrade/16-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/45-assert.yaml rename to e2e-tests/tests/major-upgrade/16-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/31-assert.yaml b/e2e-tests/tests/major-upgrade/17-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/31-assert.yaml rename to e2e-tests/tests/major-upgrade/17-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/32-assert.yaml b/e2e-tests/tests/major-upgrade/18-assert.yaml similarity index 93% rename from e2e-tests/tests/major-upgrade/32-assert.yaml rename to e2e-tests/tests/major-upgrade/18-assert.yaml index 75daf8364..0bc5ed7dc 100644 --- a/e2e-tests/tests/major-upgrade/32-assert.yaml +++ b/e2e-tests/tests/major-upgrade/18-assert.yaml @@ -6,7 +6,7 @@ kind: Job apiVersion: batch/v1 metadata: annotations: - postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-14-to-15 + postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-16-to-17 labels: postgres-operator.crunchydata.com/pgbackrest-backup: manual postgres-operator.crunchydata.com/pgbackrest-repo: repo4 @@ -21,7 +21,7 @@ status: apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup metadata: - name: backup-after-14-to-15 + name: backup-after-16-to-17 spec: pgCluster: major-upgrade repoName: repo4 diff --git a/e2e-tests/tests/major-upgrade/47-run-backup.yaml b/e2e-tests/tests/major-upgrade/18-run-backup.yaml similarity index 89% rename from e2e-tests/tests/major-upgrade/47-run-backup.yaml rename to e2e-tests/tests/major-upgrade/18-run-backup.yaml index 392bc719e..9a378656f 100644 --- a/e2e-tests/tests/major-upgrade/47-run-backup.yaml +++ b/e2e-tests/tests/major-upgrade/18-run-backup.yaml @@ -4,6 +4,6 @@ metadata: name: backup-after-16-to-17 spec: pgCluster: major-upgrade - repoName: repo1 + repoName: repo4 options: - --type=full diff --git a/e2e-tests/tests/major-upgrade/34-assert.yaml b/e2e-tests/tests/major-upgrade/19-assert.yaml similarity index 81% rename from e2e-tests/tests/major-upgrade/34-assert.yaml rename to e2e-tests/tests/major-upgrade/19-assert.yaml index 7321c61ab..381403d40 100644 --- a/e2e-tests/tests/major-upgrade/34-assert.yaml +++ b/e2e-tests/tests/major-upgrade/19-assert.yaml @@ -5,6 +5,6 @@ timeout: 30 kind: ConfigMap apiVersion: v1 metadata: - name: 09-read-from-primary + name: 19-read-from-primary data: data: ' 100500' diff --git a/e2e-tests/tests/major-upgrade/49-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/19-read-from-primary.yaml similarity index 85% rename from e2e-tests/tests/major-upgrade/49-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/19-read-from-primary.yaml index 03c7aa852..f835a311f 100644 --- a/e2e-tests/tests/major-upgrade/49-read-from-primary.yaml +++ b/e2e-tests/tests/major-upgrade/19-read-from-primary.yaml @@ -9,4 +9,4 @@ commands: source ../../functions data=$(run_psql_local '\c myapp \\\ SELECT * from myApp;' "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)") - kubectl create configmap -n "${NAMESPACE}" 11-read-from-primary --from-literal=data="${data}" + kubectl create configmap -n "${NAMESPACE}" 19-read-from-primary --from-literal=data="${data}" diff --git a/e2e-tests/tests/major-upgrade/23-assert.yaml b/e2e-tests/tests/major-upgrade/23-assert.yaml deleted file mode 100644 index 75b542e68..000000000 --- a/e2e-tests/tests/major-upgrade/23-assert.yaml +++ /dev/null @@ -1,52 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 720 -commands: -- script: |- - set -o errexit - - kubectl -n ${NAMESPACE} get pod - - for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do - phase=$(kubectl -n ${NAMESPACE} get pod/${pod} -o jsonpath={".status.phase"}) - if [[ "${phase}" != "Running" ]]; then - echo "Waiting for ${pod} to start running" - continue - fi - echo "PostgreSQL logs from ${pod}:" - echo "find /pgdata/pg14/log -type f -iname 'postgresql*.log' -exec tail -n 30 {} \;" \ - | kubectl -n ${NAMESPACE} exec -it ${pod} -- bash 2>/dev/null - done - - sleep 30 -collectors: -- type: pod - selector: "postgres-operator.crunchydata.com/data=postgres" - tail: 30 ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-13-to-14 -spec: - pgCluster: major-upgrade - repoName: repo3 -status: - state: Succeeded ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGCluster -metadata: - name: major-upgrade -status: - pgbouncer: - ready: 3 - size: 3 - postgres: - instances: - - name: instance1 - ready: 3 - size: 3 - ready: 3 - size: 3 - state: ready diff --git a/e2e-tests/tests/major-upgrade/23-run-restore.yaml b/e2e-tests/tests/major-upgrade/23-run-restore.yaml deleted file mode 100644 index 079ebf7b7..000000000 --- a/e2e-tests/tests/major-upgrade/23-run-restore.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-13-to-14 -spec: - pgCluster: major-upgrade - repoName: repo3 diff --git a/e2e-tests/tests/major-upgrade/33-assert.yaml b/e2e-tests/tests/major-upgrade/33-assert.yaml deleted file mode 100644 index 1d3a8a9aa..000000000 --- a/e2e-tests/tests/major-upgrade/33-assert.yaml +++ /dev/null @@ -1,52 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 720 -commands: -- script: |- - set -o errexit - - kubectl -n ${NAMESPACE} get pod - - for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do - phase=$(kubectl -n ${NAMESPACE} get pod/${pod} -o jsonpath={".status.phase"}) - if [[ "${phase}" != "Running" ]]; then - echo "Waiting for ${pod} to start running" - continue - fi - echo "PostgreSQL logs from ${pod}:" - echo "find /pgdata/pg15/log -type f -iname 'postgresql*.log' -exec tail -n 30 {} \;" \ - | kubectl -n ${NAMESPACE} exec -it ${pod} -- bash 2>/dev/null - done - - sleep 30 -collectors: -- type: pod - selector: "postgres-operator.crunchydata.com/data=postgres" - tail: 30 ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-14-to-15 -spec: - pgCluster: major-upgrade - repoName: repo4 -status: - state: Succeeded ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGCluster -metadata: - name: major-upgrade -status: - pgbouncer: - ready: 3 - size: 3 - postgres: - instances: - - name: instance1 - ready: 3 - size: 3 - ready: 3 - size: 3 - state: ready diff --git a/e2e-tests/tests/major-upgrade/33-run-restore.yaml b/e2e-tests/tests/major-upgrade/33-run-restore.yaml deleted file mode 100644 index 8e7c7c6da..000000000 --- a/e2e-tests/tests/major-upgrade/33-run-restore.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-14-to-15 -spec: - pgCluster: major-upgrade - repoName: repo4 - diff --git a/e2e-tests/tests/major-upgrade/40-assert.yaml b/e2e-tests/tests/major-upgrade/40-assert.yaml deleted file mode 100644 index de3a338c8..000000000 --- a/e2e-tests/tests/major-upgrade/40-assert.yaml +++ /dev/null @@ -1,42 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 360 -commands: -- script: |- - kubectl -n ${NAMESPACE} get pg,pod,job - sleep 5 ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGCluster -metadata: - name: major-upgrade -spec: - postgresVersion: 16 -status: - pgbouncer: - ready: 3 - size: 3 - postgres: - instances: - - name: instance1 - ready: 3 - size: 3 - ready: 3 - size: 3 - state: ready ---- -kind: Job -apiVersion: batch/v1 -metadata: - labels: - postgres-operator.crunchydata.com/cluster: major-upgrade - postgres-operator.crunchydata.com/pgbackrest: '' - postgres-operator.crunchydata.com/pgbackrest-backup: replica-create - postgres-operator.crunchydata.com/pgbackrest-repo: repo4 - ownerReferences: - - apiVersion: pgv2.percona.com/v2 - kind: PerconaPGBackup - controller: true - blockOwnerDeletion: true -status: - succeeded: 1 diff --git a/e2e-tests/tests/major-upgrade/41-assert.yaml b/e2e-tests/tests/major-upgrade/41-assert.yaml deleted file mode 100644 index 1b95780c8..000000000 --- a/e2e-tests/tests/major-upgrade/41-assert.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 660 -commands: -- script: |- - kubectl get postgrescluster major-upgrade \ - -n ${NAMESPACE} \ - -o yaml \ - | yq eval '.status.pgbackrest.repos' - ---- -apiVersion: postgres-operator.crunchydata.com/v1beta1 -kind: PostgresCluster -metadata: - name: major-upgrade -status: - pgbackrest: - repos: - - bound: true - name: repo1 - replicaCreateBackupComplete: true - stanzaCreated: true diff --git a/e2e-tests/tests/major-upgrade/41-change-repo.yaml b/e2e-tests/tests/major-upgrade/41-change-repo.yaml deleted file mode 100644 index d3d277599..000000000 --- a/e2e-tests/tests/major-upgrade/41-change-repo.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - script: |- - set -o errexit - set -o xtrace - - kubectl patch \ - -n $NAMESPACE \ - perconapgcluster major-upgrade \ - --type='json' \ - -p='[{"op": "replace", "path": "/spec/backups/pgbackrest/repos/0/name", "value": "repo1"}]' diff --git a/e2e-tests/tests/major-upgrade/42-assert.yaml b/e2e-tests/tests/major-upgrade/42-assert.yaml deleted file mode 100644 index 2b003b69a..000000000 --- a/e2e-tests/tests/major-upgrade/42-assert.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 660 ---- -kind: Job -apiVersion: batch/v1 -metadata: - annotations: - postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-15-to-16 - labels: - postgres-operator.crunchydata.com/pgbackrest-backup: manual - postgres-operator.crunchydata.com/pgbackrest-repo: repo1 - ownerReferences: - - apiVersion: pgv2.percona.com/v2 - kind: PerconaPGBackup - controller: true - blockOwnerDeletion: true -status: - succeeded: 1 ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGBackup -metadata: - name: backup-after-15-to-16 -spec: - pgCluster: major-upgrade - repoName: repo1 - options: - - --type=full -status: - state: Succeeded diff --git a/e2e-tests/tests/major-upgrade/43-assert.yaml b/e2e-tests/tests/major-upgrade/43-assert.yaml deleted file mode 100644 index 3114c2311..000000000 --- a/e2e-tests/tests/major-upgrade/43-assert.yaml +++ /dev/null @@ -1,52 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 720 -commands: -- script: |- - set -o errexit - - kubectl -n ${NAMESPACE} get pod - - for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do - phase=$(kubectl -n ${NAMESPACE} get pod/${pod} -o jsonpath={".status.phase"}) - if [[ "${phase}" != "Running" ]]; then - echo "Waiting for ${pod} to start running" - continue - fi - echo "PostgreSQL logs from ${pod}:" - echo "find /pgdata/pg16/log -type f -iname 'postgresql*.log' -exec tail -n 30 {} \;" \ - | kubectl -n ${NAMESPACE} exec -it ${pod} -- bash 2>/dev/null - done - - sleep 30 -collectors: -- type: pod - selector: "postgres-operator.crunchydata.com/data=postgres" - tail: 30 ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-15-to-16 -spec: - pgCluster: major-upgrade - repoName: repo1 -status: - state: Succeeded ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGCluster -metadata: - name: major-upgrade -status: - pgbouncer: - ready: 3 - size: 3 - postgres: - instances: - - name: instance1 - ready: 3 - size: 3 - ready: 3 - size: 3 - state: ready diff --git a/e2e-tests/tests/major-upgrade/43-run-restore.yaml b/e2e-tests/tests/major-upgrade/43-run-restore.yaml deleted file mode 100644 index c86adba0d..000000000 --- a/e2e-tests/tests/major-upgrade/43-run-restore.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-15-to-16 -spec: - pgCluster: major-upgrade - repoName: repo1 - diff --git a/e2e-tests/tests/major-upgrade/47-assert.yaml b/e2e-tests/tests/major-upgrade/47-assert.yaml deleted file mode 100644 index 0b0618774..000000000 --- a/e2e-tests/tests/major-upgrade/47-assert.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 660 ---- -kind: Job -apiVersion: batch/v1 -metadata: - annotations: - postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-16-to-17 - labels: - postgres-operator.crunchydata.com/pgbackrest-backup: manual - postgres-operator.crunchydata.com/pgbackrest-repo: repo1 - ownerReferences: - - apiVersion: pgv2.percona.com/v2 - kind: PerconaPGBackup - controller: true - blockOwnerDeletion: true -status: - succeeded: 1 ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGBackup -metadata: - name: backup-after-16-to-17 -spec: - pgCluster: major-upgrade - repoName: repo1 - options: - - --type=full -status: - state: Succeeded diff --git a/e2e-tests/tests/major-upgrade/48-assert.yaml b/e2e-tests/tests/major-upgrade/48-assert.yaml deleted file mode 100644 index 95d57c293..000000000 --- a/e2e-tests/tests/major-upgrade/48-assert.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 30 ---- -kind: ConfigMap -apiVersion: v1 -metadata: - name: 11-read-from-primary -data: - data: ' 100500' diff --git a/e2e-tests/tests/major-upgrade/48-run-restore.yaml b/e2e-tests/tests/major-upgrade/48-run-restore.yaml deleted file mode 100644 index d496fe312..000000000 --- a/e2e-tests/tests/major-upgrade/48-run-restore.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-16-to-17 -spec: - pgCluster: major-upgrade - repoName: repo1 - From f2b450ae3ed613c03ef4338be046ff12863894b9 Mon Sep 17 00:00:00 2001 From: George Kechagias Date: Wed, 12 Nov 2025 17:04:41 +0200 Subject: [PATCH 08/11] K8SPG-893 configure LC_ALL and LANG for database containers (#1350) * K8SPG-893 configure LC_ALL and LANG for database containers * copy env from database to upgrade container * fix tests * guard with version 2.8 * fix * set version to latest for unit test pod allow volume grow * add only the needed env vars instead of the whole database env * fix unit test --- internal/controller/pgupgrade/jobs.go | 14 ++++++++++++++ internal/controller/pgupgrade/jobs_test.go | 5 +++++ internal/postgres/config.go | 15 +++++++++++++++ internal/postgres/reconcile_test.go | 18 +++++++++++++++++- 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/internal/controller/pgupgrade/jobs.go b/internal/controller/pgupgrade/jobs.go index 9ce675f89..3d74379d1 100644 --- a/internal/controller/pgupgrade/jobs.go +++ b/internal/controller/pgupgrade/jobs.go @@ -203,6 +203,20 @@ func (r *PGUpgradeReconciler) generateUpgradeJob( SecurityContext: database.SecurityContext, VolumeMounts: volumeMounts, // K8SPG-254 + // K8SPG-893 + Env: []corev1.EnvVar{ + // Critical for major upgrades to avoid lc_collate mismatches. + // - https://www.postgresql.org/docs/current/locale.html + { + Name: "LC_ALL", + Value: "en_US.utf-8", + }, + { + Name: "LANG", + Value: "en_US.utf-8", + }, + }, + // Use our upgrade command and the specified image and resources. Command: upgradeCommand( upgrade.Spec.FromPostgresVersion, diff --git a/internal/controller/pgupgrade/jobs_test.go b/internal/controller/pgupgrade/jobs_test.go index 79075b1c2..992503b7f 100644 --- a/internal/controller/pgupgrade/jobs_test.go +++ b/internal/controller/pgupgrade/jobs_test.go @@ -203,6 +203,11 @@ spec: - upgrade - "19" - "25" + env: + - name: LC_ALL + value: en_US.utf-8 + - name: LANG + value: en_US.utf-8 image: img4 name: database resources: diff --git a/internal/postgres/config.go b/internal/postgres/config.go index 1ac7b38a8..feda6d8aa 100644 --- a/internal/postgres/config.go +++ b/internal/postgres/config.go @@ -164,6 +164,21 @@ func Environment(cluster *v1beta1.PostgresCluster) []corev1.EnvVar { }) } + if cluster.CompareVersion("2.8.0") >= 0 { + env = append(env, []corev1.EnvVar{ + // Critical for major upgrades to avoid lc_collate mismatches. + // - https://www.postgresql.org/docs/current/locale.html + { + Name: "LC_ALL", + Value: "en_US.utf-8", + }, + { + Name: "LANG", + Value: "en_US.utf-8", + }, + }...) + } + return env } diff --git a/internal/postgres/reconcile_test.go b/internal/postgres/reconcile_test.go index 17da5bf3f..1a3f0dba9 100644 --- a/internal/postgres/reconcile_test.go +++ b/internal/postgres/reconcile_test.go @@ -138,6 +138,10 @@ containers: value: /tmp - name: LDAPTLS_CACERT value: /etc/postgres/ldap/ca.crt + - name: LC_ALL + value: en_US.utf-8 + - name: LANG + value: en_US.utf-8 imagePullPolicy: Always name: database ports: @@ -289,6 +293,10 @@ initContainers: value: /tmp - name: LDAPTLS_CACERT value: /etc/postgres/ldap/ca.crt + - name: LC_ALL + value: en_US.utf-8 + - name: LANG + value: en_US.utf-8 imagePullPolicy: Always name: postgres-startup resources: @@ -713,7 +721,7 @@ func TestInstancePodAllowVolumeGrow(t *testing.T) { cluster.Spec.ImagePullPolicy = corev1.PullAlways cluster.Spec.PostgresVersion = 11 cluster.SetLabels(map[string]string{ - naming.LabelVersion: "2.7.0", + naming.LabelVersion: version.Version(), }) dataVolume := new(corev1.PersistentVolumeClaim) @@ -781,6 +789,10 @@ containers: value: /tmp - name: LDAPTLS_CACERT value: /etc/postgres/ldap/ca.crt + - name: LC_ALL + value: en_US.utf-8 + - name: LANG + value: en_US.utf-8 imagePullPolicy: Always name: database ports: @@ -946,6 +958,10 @@ initContainers: value: /tmp - name: LDAPTLS_CACERT value: /etc/postgres/ldap/ca.crt + - name: LC_ALL + value: en_US.utf-8 + - name: LANG + value: en_US.utf-8 imagePullPolicy: Always name: postgres-startup resources: From 0d947b20aa5d2f28b51020121844b3a2b0df5555 Mon Sep 17 00:00:00 2001 From: George Kechagias Date: Wed, 12 Nov 2025 20:38:50 +0200 Subject: [PATCH 09/11] K8SPG-894 upgrade job using the init container from primary sts (#1351) * K8SPG-894 upgrade job using the init container from primary sts * update unit test * configure custom container for the upgrade spec and ensure that everything is considered * change order of init containers * small refactor --- internal/controller/pgupgrade/jobs.go | 18 ++++++++++++++++-- internal/controller/pgupgrade/jobs_test.go | 15 +++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/internal/controller/pgupgrade/jobs.go b/internal/controller/pgupgrade/jobs.go index 3d74379d1..93b2bad34 100644 --- a/internal/controller/pgupgrade/jobs.go +++ b/internal/controller/pgupgrade/jobs.go @@ -189,8 +189,22 @@ func (r *PGUpgradeReconciler) generateUpgradeJob( // Replace all containers with one that does the upgrade. job.Spec.Template.Spec.EphemeralContainers = nil - // K8SPG-254: Major upgrade support - job.Spec.Template.Spec.InitContainers = upgrade.Spec.InitContainers + // K8SPG-894: Ensure database init container is included for required scripts + var initContainers []corev1.Container + + dbInitContainerName := ContainerDatabase + "-init" + for _, container := range startup.Spec.Template.Spec.InitContainers { + if container.Name == dbInitContainerName { + initContainers = append(initContainers, container) + break + } + } + + if len(upgrade.Spec.InitContainers) > 0 { + initContainers = append(initContainers, upgrade.Spec.InitContainers...) + } + + job.Spec.Template.Spec.InitContainers = initContainers volumeMounts := database.VolumeMounts volumeMounts = append(volumeMounts, upgrade.Spec.VolumeMounts...) diff --git a/internal/controller/pgupgrade/jobs_test.go b/internal/controller/pgupgrade/jobs_test.go index 992503b7f..7f1e5a32b 100644 --- a/internal/controller/pgupgrade/jobs_test.go +++ b/internal/controller/pgupgrade/jobs_test.go @@ -110,9 +110,19 @@ func TestGenerateUpgradeJob(t *testing.T) { upgrade.Spec.Resources.Requests = corev1.ResourceList{ corev1.ResourceCPU: resource.MustParse("3.14"), } + upgrade.Spec.InitContainers = []corev1.Container{ + { + Name: "upgrade-init-container", + }, + } startup := &appsv1.StatefulSet{} startup.Spec.Template.Spec = corev1.PodSpec{ + InitContainers: []corev1.Container{ + { + Name: ContainerDatabase + "-init", + }, + }, Containers: []corev1.Container{{ Name: ContainerDatabase, @@ -218,6 +228,11 @@ spec: volumeMounts: - mountPath: /mnt/some/such name: vm1 + initContainers: + - name: database-init + resources: {} + - name: upgrade-init-container + resources: {} restartPolicy: Never volumes: - hostPath: From 751f084377b5938f48fea8a2b4a863ad8470ea45 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Fri, 14 Nov 2025 00:35:33 +0200 Subject: [PATCH 10/11] Revert images back to main after 2.8.0 release (#1353) * Revert images back to main after 2.8.0 release * Fix consistency and pg main image --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- Makefile | 9 +++++++-- config/bundle/kustomization.yaml | 4 ++-- .../versionlabel_in_perconapgbackups.yaml | 2 +- .../versionlabel_in_perconapgclusters.yaml | 2 +- .../versionlabel_in_perconapgrestores.yaml | 2 +- .../versionlabel_in_perconapgupgrade.yaml | 2 +- config/cw-bundle/kustomization.yaml | 4 ++-- config/manager/cluster/kustomization.yaml | 4 ++-- config/manager/namespace/kustomization.yaml | 4 ++-- deploy/bundle.yaml | 10 +++++----- deploy/cr.yaml | 18 +++++++++--------- deploy/crd.yaml | 8 ++++---- deploy/cw-bundle.yaml | 10 +++++----- deploy/cw-operator.yaml | 2 +- deploy/operator.yaml | 2 +- deploy/upgrade.yaml | 8 ++++---- e2e-tests/functions | 12 ++++++++++++ e2e-tests/tests/init-deploy/05-assert.yaml | 12 ++++++------ .../tests/upgrade-consistency/01-assert.yaml | 2 +- .../upgrade-consistency/01-create-cluster.yaml | 15 ++++++++++----- .../tests/upgrade-consistency/02-assert.yaml | 2 +- .../upgrade-consistency/02-patch-cluster.yaml | 15 ++++++++++----- .../tests/upgrade-consistency/03-assert.yaml | 2 +- .../upgrade-consistency/03-patch-cluster.yaml | 3 ++- .../tests/upgrade-minor/01-create-cluster.yaml | 7 +++---- e2e-tests/vars.sh | 2 +- .../testdata/sidecar-resources-cr.yaml | 2 +- percona/version/version.txt | 2 +- 28 files changed, 97 insertions(+), 70 deletions(-) diff --git a/Makefile b/Makefile index 528b983db..72854a544 100644 --- a/Makefile +++ b/Makefile @@ -443,6 +443,9 @@ rm -rf $$TMP_DIR ;\ } endef +update-version: + echo $(NEXT_VER) > percona/version/version.txt + # Prepare release PG_VER ?= $(shell grep -o "postgresVersion: .*" deploy/cr.yaml|grep -oE "[0-9]+") include e2e-tests/release_versions @@ -469,11 +472,11 @@ MINOR_VER := $(word 2,$(subst ., ,$(CURRENT_VERSION))) NEXT_VER := $(MAJOR_VER).$(shell expr $(MINOR_VER) + 1).0 PREV1_VERSION := $(MAJOR_VER).$(shell expr $(MINOR_VER) - 1).0 PREV2_VERSION := $(MAJOR_VER).$(shell expr $(MINOR_VER) - 2).0 -after-release: generate - echo $(NEXT_VER) > percona/version/version.txt +after-release: update-version generate $(SED) -i \ -e "/^spec:/,/^ crVersion:/{s/crVersion: .*/crVersion: $(NEXT_VER)/}" \ -e "/^spec:/,/^ image:/{s#image: .*#image: $(REGISTRY_NAME_FULL)perconalab/percona-postgresql-operator:main-ppg$(PG_VER)-postgres#}" \ + -e "/initContainer:/,/image:/{s#image: .*#image: $(REGISTRY_NAME_FULL)perconalab/percona-postgresql-operator:main#}" \ -e "/^ pgBouncer:/,/^ image:/{s#image: .*#image: $(REGISTRY_NAME_FULL)perconalab/percona-postgresql-operator:main-pgbouncer$(PG_VER)#}" \ -e "/^ pgbackrest:/,/^ image:/{s#image: .*#image: $(REGISTRY_NAME_FULL)perconalab/percona-postgresql-operator:main-pgbackrest$(PG_VER)#}" \ -e "/extensions:/,/image:/{s#image: .*#image: $(REGISTRY_NAME_FULL)perconalab/percona-postgresql-operator:main#}" \ @@ -484,6 +487,8 @@ after-release: generate -e "/^spec:/,/^ toPostgresImage:/{s#toPostgresImage: .*#toPostgresImage: $(REGISTRY_NAME_FULL)perconalab/percona-postgresql-operator:main-ppg$(PG_VER)-postgres#}" \ -e "/^spec:/,/^ toPgBouncerImage:/{s#toPgBouncerImage: .*#toPgBouncerImage: $(REGISTRY_NAME_FULL)perconalab/percona-postgresql-operator:main-pgbouncer$(PG_VER)#}" \ -e "/^spec:/,/^ toPgBackRestImage:/{s#toPgBackRestImage: .*#toPgBackRestImage: $(REGISTRY_NAME_FULL)perconalab/percona-postgresql-operator:main-pgbackrest$(PG_VER)#}" deploy/upgrade.yaml + +# Update upgrade-consistency $(SED) -i "s/$(PREV2_VERSION)/$(PREV1_VERSION)/g" e2e-tests/tests/upgrade-consistency/01-*.yaml $(SED) -i "s/$(PREV1_VERSION)/$(CURRENT_VERSION)/g" e2e-tests/tests/upgrade-consistency/02-*.yaml $(SED) -i "s/$(CURRENT_VERSION)/$(NEXT_VER)/g" e2e-tests/tests/upgrade-consistency/03-*.yaml e2e-tests/tests/init-deploy/05-assert.yaml \ No newline at end of file diff --git a/config/bundle/kustomization.yaml b/config/bundle/kustomization.yaml index 0412fd1dd..90cf89956 100644 --- a/config/bundle/kustomization.yaml +++ b/config/bundle/kustomization.yaml @@ -6,5 +6,5 @@ resources: - ../manager/namespace images: - name: postgres-operator - newName: docker.io/percona/percona-postgresql-operator - newTag: 2.8.0 + newName: docker.io/perconalab/percona-postgresql-operator + newTag: main diff --git a/config/crd/patches/versionlabel_in_perconapgbackups.yaml b/config/crd/patches/versionlabel_in_perconapgbackups.yaml index d4c595886..3c3286613 100644 --- a/config/crd/patches/versionlabel_in_perconapgbackups.yaml +++ b/config/crd/patches/versionlabel_in_perconapgbackups.yaml @@ -3,4 +3,4 @@ kind: CustomResourceDefinition metadata: name: perconapgbackups.pgv2.percona.com labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 diff --git a/config/crd/patches/versionlabel_in_perconapgclusters.yaml b/config/crd/patches/versionlabel_in_perconapgclusters.yaml index 9ee2cce21..8a4bf1231 100644 --- a/config/crd/patches/versionlabel_in_perconapgclusters.yaml +++ b/config/crd/patches/versionlabel_in_perconapgclusters.yaml @@ -3,4 +3,4 @@ kind: CustomResourceDefinition metadata: name: perconapgclusters.pgv2.percona.com labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 diff --git a/config/crd/patches/versionlabel_in_perconapgrestores.yaml b/config/crd/patches/versionlabel_in_perconapgrestores.yaml index 9d4796443..b9c11c695 100644 --- a/config/crd/patches/versionlabel_in_perconapgrestores.yaml +++ b/config/crd/patches/versionlabel_in_perconapgrestores.yaml @@ -3,4 +3,4 @@ kind: CustomResourceDefinition metadata: name: perconapgrestores.pgv2.percona.com labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 diff --git a/config/crd/patches/versionlabel_in_perconapgupgrade.yaml b/config/crd/patches/versionlabel_in_perconapgupgrade.yaml index 75d0fce2b..0becb36ac 100644 --- a/config/crd/patches/versionlabel_in_perconapgupgrade.yaml +++ b/config/crd/patches/versionlabel_in_perconapgupgrade.yaml @@ -3,4 +3,4 @@ kind: CustomResourceDefinition metadata: name: perconapgupgrades.pgv2.percona.com labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 diff --git a/config/cw-bundle/kustomization.yaml b/config/cw-bundle/kustomization.yaml index 0b3c810ea..440d09873 100644 --- a/config/cw-bundle/kustomization.yaml +++ b/config/cw-bundle/kustomization.yaml @@ -7,5 +7,5 @@ resources: images: - name: postgres-operator - newName: docker.io/percona/percona-postgresql-operator - newTag: 2.8.0 + newName: docker.io/perconalab/percona-postgresql-operator + newTag: main diff --git a/config/manager/cluster/kustomization.yaml b/config/manager/cluster/kustomization.yaml index 940a80d27..6f8f4bf12 100644 --- a/config/manager/cluster/kustomization.yaml +++ b/config/manager/cluster/kustomization.yaml @@ -8,5 +8,5 @@ patchesStrategicMerge: images: - name: postgres-operator - newName: docker.io/percona/percona-postgresql-operator - newTag: 2.8.0 + newName: docker.io/perconalab/percona-postgresql-operator + newTag: main diff --git a/config/manager/namespace/kustomization.yaml b/config/manager/namespace/kustomization.yaml index 1e4cfc0e6..a57ff786e 100644 --- a/config/manager/namespace/kustomization.yaml +++ b/config/manager/namespace/kustomization.yaml @@ -9,5 +9,5 @@ patchesStrategicMerge: images: - name: postgres-operator - newName: docker.io/percona/percona-postgresql-operator - newTag: 2.8.0 + newName: docker.io/perconalab/percona-postgresql-operator + newTag: main diff --git a/deploy/bundle.yaml b/deploy/bundle.yaml index 020076242..fa440143f 100644 --- a/deploy/bundle.yaml +++ b/deploy/bundle.yaml @@ -297,7 +297,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgbackups.pgv2.percona.com spec: group: pgv2.percona.com @@ -705,7 +705,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgclusters.pgv2.percona.com spec: group: pgv2.percona.com @@ -22109,7 +22109,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgrestores.pgv2.percona.com spec: group: pgv2.percona.com @@ -22209,7 +22209,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgupgrades.pgv2.percona.com spec: group: pgv2.percona.com @@ -53964,7 +53964,7 @@ spec: value: "false" - name: PGO_WORKERS value: "1" - image: docker.io/percona/percona-postgresql-operator:2.8.0 + image: docker.io/perconalab/percona-postgresql-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/cr.yaml b/deploy/cr.yaml index ed3064d5d..bdd17d33f 100644 --- a/deploy/cr.yaml +++ b/deploy/cr.yaml @@ -9,9 +9,9 @@ metadata: # - percona.com/delete-ssl # - percona.com/delete-backups spec: - crVersion: 2.8.0 + crVersion: 2.9.0 # initContainer: -# image: docker.io/percona/percona-postgresql-operator:2.8.0 +# image: docker.io/perconalab/percona-postgresql-operator:main # resources: # limits: # cpu: 2.0 @@ -154,7 +154,7 @@ spec: # test-label: value - image: docker.io/percona/percona-distribution-postgresql:17.6-1 + image: docker.io/perconalab/percona-postgresql-operator:main-ppg17-postgres imagePullPolicy: Always postgresVersion: 17 # port: 5432 @@ -188,7 +188,7 @@ spec: # - secretRef: # name: instance-env-secret # initContainer: -# image: docker.io/percona/percona-postgresql-operator:2.8.0 +# image: docker.io/perconalab/percona-postgresql-operator:main # resources: # limits: # cpu: 2.0 @@ -312,7 +312,7 @@ spec: proxy: pgBouncer: replicas: 3 - image: docker.io/percona/percona-pgbouncer:1.24.1-1 + image: docker.io/perconalab/percona-postgresql-operator:main-pgbouncer17 # env: # - name: MY_ENV # value: "1000" @@ -409,7 +409,7 @@ spec: pgbackrest: # metadata: # labels: - image: docker.io/percona/percona-pgbackrest:2.56.0-1 + image: docker.io/perconalab/percona-postgresql-operator:main-pgbackrest17 # env: # - name: MY_ENV # value: "1000" @@ -417,7 +417,7 @@ spec: # - secretRef: # name: repo-host-env-secret # initContainer: -# image: docker.io/percona/percona-postgresql-operator:2.8.0 +# image: docker.io/perconalab/percona-postgresql-operator:main # resources: # limits: # cpu: 2.0 @@ -613,7 +613,7 @@ spec: pmm: enabled: false - image: docker.io/percona/pmm-client:3.4.1 + image: docker.io/perconalab/pmm-client:dev-latest # imagePullPolicy: IfNotPresent secret: cluster1-pmm-secret serverHost: monitoring-service @@ -647,7 +647,7 @@ spec: # - basebackup # extensions: -# image: docker.io/percona/percona-postgresql-operator:2.8.0 +# image: docker.io/perconalab/percona-postgresql-operator:main # imagePullPolicy: Always # storage: # type: s3 diff --git a/deploy/crd.yaml b/deploy/crd.yaml index be4cee144..b0bf292f2 100644 --- a/deploy/crd.yaml +++ b/deploy/crd.yaml @@ -297,7 +297,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgbackups.pgv2.percona.com spec: group: pgv2.percona.com @@ -705,7 +705,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgclusters.pgv2.percona.com spec: group: pgv2.percona.com @@ -22109,7 +22109,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgrestores.pgv2.percona.com spec: group: pgv2.percona.com @@ -22209,7 +22209,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgupgrades.pgv2.percona.com spec: group: pgv2.percona.com diff --git a/deploy/cw-bundle.yaml b/deploy/cw-bundle.yaml index 3fc6cc1c4..5e19e282f 100644 --- a/deploy/cw-bundle.yaml +++ b/deploy/cw-bundle.yaml @@ -297,7 +297,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgbackups.pgv2.percona.com spec: group: pgv2.percona.com @@ -705,7 +705,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgclusters.pgv2.percona.com spec: group: pgv2.percona.com @@ -22109,7 +22109,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgrestores.pgv2.percona.com spec: group: pgv2.percona.com @@ -22209,7 +22209,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 labels: - pgv2.percona.com/version: v2.8.0 + pgv2.percona.com/version: v2.9.0 name: perconapgupgrades.pgv2.percona.com spec: group: pgv2.percona.com @@ -53962,7 +53962,7 @@ spec: value: "false" - name: PGO_WORKERS value: "1" - image: docker.io/percona/percona-postgresql-operator:2.8.0 + image: docker.io/perconalab/percona-postgresql-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/cw-operator.yaml b/deploy/cw-operator.yaml index 1abc72e4c..786141384 100644 --- a/deploy/cw-operator.yaml +++ b/deploy/cw-operator.yaml @@ -44,7 +44,7 @@ spec: value: "false" - name: PGO_WORKERS value: "1" - image: docker.io/percona/percona-postgresql-operator:2.8.0 + image: docker.io/perconalab/percona-postgresql-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/operator.yaml b/deploy/operator.yaml index 7da02aca8..c6c492333 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -47,7 +47,7 @@ spec: value: "false" - name: PGO_WORKERS value: "1" - image: docker.io/percona/percona-postgresql-operator:2.8.0 + image: docker.io/perconalab/percona-postgresql-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/upgrade.yaml b/deploy/upgrade.yaml index 2a28427a4..59ddf91d3 100644 --- a/deploy/upgrade.yaml +++ b/deploy/upgrade.yaml @@ -4,9 +4,9 @@ metadata: name: cluster1-16-to-17 spec: postgresClusterName: cluster1 - image: docker.io/percona/percona-postgresql-operator:2.8.0-upgrade + image: docker.io/perconalab/percona-postgresql-operator:main-upgrade fromPostgresVersion: 16 toPostgresVersion: 17 - toPostgresImage: docker.io/percona/percona-distribution-postgresql:17.6-1 - toPgBouncerImage: docker.io/percona/percona-pgbouncer:1.24.1-1 - toPgBackRestImage: docker.io/percona/percona-pgbackrest:2.56.0-1 + toPostgresImage: docker.io/perconalab/percona-postgresql-operator:main-ppg17-postgres + toPgBouncerImage: docker.io/perconalab/percona-postgresql-operator:main-pgbouncer17 + toPgBackRestImage: docker.io/perconalab/percona-postgresql-operator:main-pgbackrest17 diff --git a/e2e-tests/functions b/e2e-tests/functions index ecdb008d1..6b2a23167 100644 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -495,6 +495,18 @@ get_service_ip() { kubectl get service/$service -n "${NAMESPACE}" -o 'jsonpath={.status.loadBalancer.ingress[].hostname}' } +get_version_images() { + local cr_version="$1" + local component="$2" + local release_versions_file="${TEMP_DIR}/release_version_${cr_version}" + + if [[ ! -f $release_versions_file ]]; then + curl -s "https://raw.githubusercontent.com/percona/percona-postgresql-operator/refs/tags/v${cr_version}/e2e-tests/release_versions" >$release_versions_file + fi + + grep -i ${component} $release_versions_file | cut -d'=' -f2 +} + wait_for_delete() { local res="$1" diff --git a/e2e-tests/tests/init-deploy/05-assert.yaml b/e2e-tests/tests/init-deploy/05-assert.yaml index 246ab59da..86b1aa02c 100644 --- a/e2e-tests/tests/init-deploy/05-assert.yaml +++ b/e2e-tests/tests/init-deploy/05-assert.yaml @@ -12,7 +12,7 @@ metadata: app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql - pgv2.percona.com/version: 2.8.0 + pgv2.percona.com/version: 2.9.0 postgres-operator.crunchydata.com/cluster: init-deploy postgres-operator.crunchydata.com/pgbackrest: "" postgres-operator.crunchydata.com/pgbackrest-config: "" @@ -81,7 +81,7 @@ metadata: app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql - pgv2.percona.com/version: 2.8.0 + pgv2.percona.com/version: 2.9.0 postgres-operator.crunchydata.com/cluster: init-deploy postgres-operator.crunchydata.com/role: pgbouncer test-label: test @@ -144,7 +144,7 @@ metadata: app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql - pgv2.percona.com/version: 2.8.0 + pgv2.percona.com/version: 2.9.0 postgres-operator.crunchydata.com/cluster: init-deploy postgres-operator.crunchydata.com/pgbackrest: "" postgres-operator.crunchydata.com/pgbackrest-config: "" @@ -168,7 +168,7 @@ metadata: app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql - pgv2.percona.com/version: 2.8.0 + pgv2.percona.com/version: 2.9.0 postgres-operator.crunchydata.com/cluster: init-deploy postgres-operator.crunchydata.com/role: pgbouncer test-label: test @@ -191,7 +191,7 @@ metadata: app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql - pgv2.percona.com/version: 2.8.0 + pgv2.percona.com/version: 2.9.0 postgres-operator.crunchydata.com/cluster: init-deploy postgres-operator.crunchydata.com/data: pgbackrest postgres-operator.crunchydata.com/pgbackrest: "" @@ -214,7 +214,7 @@ spec: app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql - pgv2.percona.com/version: 2.8.0 + pgv2.percona.com/version: 2.9.0 postgres-operator.crunchydata.com/cluster: init-deploy postgres-operator.crunchydata.com/data: pgbackrest postgres-operator.crunchydata.com/pgbackrest: "" diff --git a/e2e-tests/tests/upgrade-consistency/01-assert.yaml b/e2e-tests/tests/upgrade-consistency/01-assert.yaml index 60b019bce..f50e94bda 100644 --- a/e2e-tests/tests/upgrade-consistency/01-assert.yaml +++ b/e2e-tests/tests/upgrade-consistency/01-assert.yaml @@ -122,7 +122,7 @@ kind: PerconaPGCluster metadata: name: upgrade-consistency spec: - crVersion: 2.6.0 + crVersion: 2.7.0 status: pgbouncer: ready: 3 diff --git a/e2e-tests/tests/upgrade-consistency/01-create-cluster.yaml b/e2e-tests/tests/upgrade-consistency/01-create-cluster.yaml index 53c32fbcb..e0c05f018 100644 --- a/e2e-tests/tests/upgrade-consistency/01-create-cluster.yaml +++ b/e2e-tests/tests/upgrade-consistency/01-create-cluster.yaml @@ -8,10 +8,15 @@ commands: source ../../functions - cr_version="2.6.0" + cr_version="2.7.0" + + backrest_image=$(get_version_images $cr_version BACKREST${PG_VER}) + pgbouncer_image=$(get_version_images $cr_version PGBOUNCER${PG_VER}) + postgres_image=$(get_version_images $cr_version POSTGRESQL${PG_VER}) + get_cr \ | yq eval ".spec.crVersion=\"$cr_version\"" - \ - | yq eval ".spec.image=\"${IMAGE_BASE}:pg-operator-$cr_version-ppg$PG_VER-postgres\"" - \ - | yq eval ".spec.backups.pgbackrest.image=\"${IMAGE_BASE}:pg-operator-$cr_version-ppg$PG_VER-pgbackrest\"" - \ - | yq eval ".spec.proxy.pgBouncer.image=\"${IMAGE_BASE}:pg-operator-$cr_version-ppg$PG_VER-pgbouncer\"" - \ - | kubectl -n "${NAMESPACE}" apply -f - + | yq eval ".spec.image=\"${REGISTRY_NAME_FULL}${postgres_image}\"" - \ + | yq eval ".spec.backups.pgbackrest.image=\"${REGISTRY_NAME_FULL}${backrest_image}\"" - \ + | yq eval ".spec.proxy.pgBouncer.image=\"${REGISTRY_NAME_FULL}${pgbouncer_image}\"" - \ + | kubectl -n "${NAMESPACE}" apply -f - \ No newline at end of file diff --git a/e2e-tests/tests/upgrade-consistency/02-assert.yaml b/e2e-tests/tests/upgrade-consistency/02-assert.yaml index 4bce8de81..3d3961691 100644 --- a/e2e-tests/tests/upgrade-consistency/02-assert.yaml +++ b/e2e-tests/tests/upgrade-consistency/02-assert.yaml @@ -120,7 +120,7 @@ kind: PerconaPGCluster metadata: name: upgrade-consistency spec: - crVersion: 2.7.0 + crVersion: 2.8.0 status: pgbouncer: ready: 3 diff --git a/e2e-tests/tests/upgrade-consistency/02-patch-cluster.yaml b/e2e-tests/tests/upgrade-consistency/02-patch-cluster.yaml index f35c4dd88..54c3b9853 100644 --- a/e2e-tests/tests/upgrade-consistency/02-patch-cluster.yaml +++ b/e2e-tests/tests/upgrade-consistency/02-patch-cluster.yaml @@ -8,12 +8,17 @@ commands: source ../../functions - cr_version="2.7.0" + cr_version="2.8.0" + + backrest_image=$(get_version_images $cr_version BACKREST${PG_VER} ) + pgbouncer_image=$(get_version_images $cr_version PGBOUNCER${PG_VER}) + postgres_image=$(get_version_images $cr_version POSTGRESQL${PG_VER}) + get_cr \ - | yq eval ".spec.crVersion=\"$cr_version\"" - \ - \ - | yq eval ".spec.image=\"${IMAGE_BASE}:pg-operator-$cr_version-ppg$PG_VER-postgres\"" - \ - | yq eval ".spec.backups.pgbackrest.image=\"${IMAGE_BASE}:pg-operator-$cr_version-pgbackrest$PG_VER\"" - \ - | yq eval ".spec.proxy.pgBouncer.image=\"${IMAGE_BASE}:pg-operator-$cr_version-pgbouncer$PG_VER\"" - \ + | yq eval ".spec.crVersion=\"$cr_version\"" - \ + | yq eval ".spec.image=\"${REGISTRY_NAME_FULL}${postgres_image}\"" - \ + | yq eval ".spec.backups.pgbackrest.image=\"${REGISTRY_NAME_FULL}${backrest_image}\"" - \ + | yq eval ".spec.proxy.pgBouncer.image=\"${REGISTRY_NAME_FULL}${pgbouncer_image}\"" - \ | kubectl -n "${NAMESPACE}" apply -f - sleep 10 diff --git a/e2e-tests/tests/upgrade-consistency/03-assert.yaml b/e2e-tests/tests/upgrade-consistency/03-assert.yaml index bcc9f4511..1382b3ea2 100644 --- a/e2e-tests/tests/upgrade-consistency/03-assert.yaml +++ b/e2e-tests/tests/upgrade-consistency/03-assert.yaml @@ -120,7 +120,7 @@ kind: PerconaPGCluster metadata: name: upgrade-consistency spec: - crVersion: 2.8.0 + crVersion: 2.9.0 status: pgbouncer: ready: 3 diff --git a/e2e-tests/tests/upgrade-consistency/03-patch-cluster.yaml b/e2e-tests/tests/upgrade-consistency/03-patch-cluster.yaml index 959d3aab1..51c335c9f 100644 --- a/e2e-tests/tests/upgrade-consistency/03-patch-cluster.yaml +++ b/e2e-tests/tests/upgrade-consistency/03-patch-cluster.yaml @@ -8,7 +8,8 @@ commands: source ../../functions - cr_version="2.8.0" + cr_version="2.9.0" + get_cr \ | yq eval ".spec.crVersion=\"$cr_version\"" - \ | yq eval ".spec.image=\"${IMAGE_BASE}:main-ppg$PG_VER-postgres\"" - \ diff --git a/e2e-tests/tests/upgrade-minor/01-create-cluster.yaml b/e2e-tests/tests/upgrade-minor/01-create-cluster.yaml index 9b96bfe43..e7eb47063 100644 --- a/e2e-tests/tests/upgrade-minor/01-create-cluster.yaml +++ b/e2e-tests/tests/upgrade-minor/01-create-cluster.yaml @@ -28,10 +28,9 @@ commands: $sed -E -i "s|^( *image: *)(.*)|\1${REGISTRY_NAME_FULL}\2|" ${TEMP_DIR}/cr_lower.yaml fi - lower_ver_images=$(curl -s https://raw.githubusercontent.com/percona/percona-postgresql-operator/refs/tags/v${lower_ver}/e2e-tests/release_versions) - backrest_image=$(echo "$lower_ver_images" | grep BACKREST${pg_ver} | cut -d'=' -f2 ) - pgbouncer_image=$(echo "$lower_ver_images" | grep PGBOUNCER${pg_ver} | cut -d'=' -f2 ) - postgres_image=$(echo "$lower_ver_images" | grep POSTGRESQL${pg_ver} | cut -d'=' -f2 ) + backrest_image=$(get_version_images $lower_ver BACKREST${pg_ver}) + pgbouncer_image=$(get_version_images $lower_ver PGBOUNCER${pg_ver}) + postgres_image=$(get_version_images $lower_ver POSTGRESQL${pg_ver}) yq -i eval ' .metadata.name = "'${test_name}'" | diff --git a/e2e-tests/vars.sh b/e2e-tests/vars.sh index 42691936e..6aaf2ce21 100755 --- a/e2e-tests/vars.sh +++ b/e2e-tests/vars.sh @@ -30,7 +30,7 @@ else export PG_VER="${PG_VER:-17}" fi export IMAGE_PGBOUNCER=${IMAGE_PGBOUNCER:-"${IMAGE_BASE}:main-pgbouncer$PG_VER"} -export IMAGE_POSTGRESQL=${IMAGE_POSTGRESQL:-"perconalab/percona-distribution-postgresql:$PG_VER"} +export IMAGE_POSTGRESQL=${IMAGE_POSTGRESQL:-"${IMAGE_BASE}:main-ppg$PG_VER-postgres"} export IMAGE_BACKREST=${IMAGE_BACKREST:-"${IMAGE_BASE}:main-pgbackrest$PG_VER"} export IMAGE_UPGRADE=${IMAGE_UPGRADE:-"${IMAGE_BASE}:main-upgrade"} export BUCKET=${BUCKET:-"pg-operator-testing"} diff --git a/percona/controller/testdata/sidecar-resources-cr.yaml b/percona/controller/testdata/sidecar-resources-cr.yaml index 1c137a6ea..aa347ddfd 100644 --- a/percona/controller/testdata/sidecar-resources-cr.yaml +++ b/percona/controller/testdata/sidecar-resources-cr.yaml @@ -4,7 +4,7 @@ kind: PerconaPGCluster metadata: name: cluster1 spec: - crVersion: 2.8.0 + crVersion: 2.9.0 image: perconalab/percona-postgresql-operator:main-ppg17-postgres imagePullPolicy: Always diff --git a/percona/version/version.txt b/percona/version/version.txt index 834f26295..c8e38b614 100644 --- a/percona/version/version.txt +++ b/percona/version/version.txt @@ -1 +1 @@ -2.8.0 +2.9.0 From f36b46f155e947cbeae1520e136e9983490beb8e Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Fri, 14 Nov 2025 09:04:04 +0200 Subject: [PATCH 11/11] Run reviewdog manifests when base_ref is 'release-' --- .github/workflows/reviewdog.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index 921c73146..a0a4a1e05 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -94,12 +94,12 @@ jobs: steps: - uses: actions/checkout@v5 - name: check on release branch - if: ${{ contains(github.head_ref, 'release-') || contains(github.base_ref, 'release-') }} + if: ${{ contains(github.base_ref, 'release-') }} run: | make generate VERSION="$(cat percona/version/version.txt)" IMAGE_TAG_BASE="percona/percona-postgresql-operator" git diff --exit-code - name: check on non release branches - if: ${{ ! (contains(github.head_ref, 'release-') || contains(github.base_ref, 'release-')) }} + if: ${{ ! contains(github.base_ref, 'release-') }} run: | make generate VERSION=main git diff --exit-code