From 6616b5282322bc6d6770ebf3e444071a087501e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Wed, 18 Dec 2024 12:16:03 +0300 Subject: [PATCH 01/11] K8SPG-647: Fix major-upgrade test --- e2e-tests/tests/major-upgrade/10-assert.yaml | 17 ++++++ e2e-tests/tests/major-upgrade/11-assert.yaml | 21 -------- .../tests/major-upgrade/11-change-repo.yaml | 12 ----- e2e-tests/tests/major-upgrade/11-wait.yaml | 16 ++++++ e2e-tests/tests/major-upgrade/12-assert.yaml | 4 +- .../tests/major-upgrade/12-run-backup.yaml | 2 +- .../{13-assert.yaml => 18-assert.yaml} | 2 +- ...3-run-restore.yaml => 18-run-restore.yaml} | 2 +- .../{14-assert.yaml => 19-assert.yaml} | 2 +- ...primary.yaml => 19-read-from-primary.yaml} | 2 +- e2e-tests/tests/major-upgrade/20-assert.yaml | 2 +- e2e-tests/tests/major-upgrade/21-assert.yaml | 21 -------- .../tests/major-upgrade/21-change-repo.yaml | 12 ----- e2e-tests/tests/major-upgrade/21-wait.yaml | 16 ++++++ e2e-tests/tests/major-upgrade/22-assert.yaml | 4 +- .../tests/major-upgrade/22-run-backup.yaml | 2 +- .../{23-assert.yaml => 28-assert.yaml} | 2 +- ...3-run-restore.yaml => 28-run-restore.yaml} | 2 +- .../{34-assert.yaml => 29-assert.yaml} | 2 +- ...primary.yaml => 29-read-from-primary.yaml} | 2 +- e2e-tests/tests/major-upgrade/31-assert.yaml | 21 -------- .../tests/major-upgrade/31-change-repo.yaml | 12 ----- e2e-tests/tests/major-upgrade/31-wait.yaml | 16 ++++++ e2e-tests/tests/major-upgrade/32-assert.yaml | 4 +- .../tests/major-upgrade/32-run-backup.yaml | 2 +- .../{33-assert.yaml => 38-assert.yaml} | 2 +- ...3-run-restore.yaml => 38-run-restore.yaml} | 2 +- .../{24-assert.yaml => 39-assert.yaml} | 2 +- ...primary.yaml => 39-read-from-primary.yaml} | 2 +- e2e-tests/tests/major-upgrade/41-assert.yaml | 21 -------- .../tests/major-upgrade/41-change-repo.yaml | 12 ----- e2e-tests/tests/major-upgrade/41-wait.yaml | 16 ++++++ e2e-tests/tests/major-upgrade/46-assert.yaml | 21 -------- e2e-tests/tests/major-upgrade/48-assert.yaml | 54 ++++++++++++++++--- .../tests/major-upgrade/48-run-restore.yaml | 2 +- .../{44-assert.yaml => 49-assert.yaml} | 2 +- .../major-upgrade/49-read-from-primary.yaml | 2 +- .../{45-16-to-17.yaml => 50-16-to-17.yaml} | 0 .../{45-assert.yaml => 50-assert.yaml} | 0 e2e-tests/tests/major-upgrade/51-wait.yaml | 16 ++++++ .../{47-assert.yaml => 52-assert.yaml} | 0 ...{47-run-backup.yaml => 52-run-backup.yaml} | 0 .../{43-assert.yaml => 58-assert.yaml} | 2 +- ...3-run-restore.yaml => 58-run-restore.yaml} | 2 +- e2e-tests/tests/major-upgrade/59-assert.yaml | 10 ++++ ...primary.yaml => 59-read-from-primary.yaml} | 2 +- 46 files changed, 183 insertions(+), 187 deletions(-) delete mode 100644 e2e-tests/tests/major-upgrade/11-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/11-change-repo.yaml create mode 100644 e2e-tests/tests/major-upgrade/11-wait.yaml rename e2e-tests/tests/major-upgrade/{13-assert.yaml => 18-assert.yaml} (98%) rename e2e-tests/tests/major-upgrade/{13-run-restore.yaml => 18-run-restore.yaml} (87%) rename e2e-tests/tests/major-upgrade/{14-assert.yaml => 19-assert.yaml} (81%) rename e2e-tests/tests/major-upgrade/{14-read-from-primary.yaml => 19-read-from-primary.yaml} (85%) delete mode 100644 e2e-tests/tests/major-upgrade/21-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/21-change-repo.yaml create mode 100644 e2e-tests/tests/major-upgrade/21-wait.yaml rename e2e-tests/tests/major-upgrade/{23-assert.yaml => 28-assert.yaml} (98%) rename e2e-tests/tests/major-upgrade/{23-run-restore.yaml => 28-run-restore.yaml} (87%) rename e2e-tests/tests/major-upgrade/{34-assert.yaml => 29-assert.yaml} (81%) rename e2e-tests/tests/major-upgrade/{34-read-from-primary.yaml => 29-read-from-primary.yaml} (76%) delete mode 100644 e2e-tests/tests/major-upgrade/31-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/31-change-repo.yaml create mode 100644 e2e-tests/tests/major-upgrade/31-wait.yaml rename e2e-tests/tests/major-upgrade/{33-assert.yaml => 38-assert.yaml} (98%) rename e2e-tests/tests/major-upgrade/{33-run-restore.yaml => 38-run-restore.yaml} (87%) rename e2e-tests/tests/major-upgrade/{24-assert.yaml => 39-assert.yaml} (81%) rename e2e-tests/tests/major-upgrade/{44-read-from-primary.yaml => 39-read-from-primary.yaml} (76%) delete mode 100644 e2e-tests/tests/major-upgrade/41-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/41-change-repo.yaml create mode 100644 e2e-tests/tests/major-upgrade/41-wait.yaml delete mode 100644 e2e-tests/tests/major-upgrade/46-assert.yaml rename e2e-tests/tests/major-upgrade/{44-assert.yaml => 49-assert.yaml} (81%) rename e2e-tests/tests/major-upgrade/{45-16-to-17.yaml => 50-16-to-17.yaml} (100%) rename e2e-tests/tests/major-upgrade/{45-assert.yaml => 50-assert.yaml} (100%) create mode 100644 e2e-tests/tests/major-upgrade/51-wait.yaml rename e2e-tests/tests/major-upgrade/{47-assert.yaml => 52-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{47-run-backup.yaml => 52-run-backup.yaml} (100%) rename e2e-tests/tests/major-upgrade/{43-assert.yaml => 58-assert.yaml} (97%) rename e2e-tests/tests/major-upgrade/{43-run-restore.yaml => 58-run-restore.yaml} (79%) create mode 100644 e2e-tests/tests/major-upgrade/59-assert.yaml rename e2e-tests/tests/major-upgrade/{24-read-from-primary.yaml => 59-read-from-primary.yaml} (76%) diff --git a/e2e-tests/tests/major-upgrade/10-assert.yaml b/e2e-tests/tests/major-upgrade/10-assert.yaml index ae8dcb18f8..3aa5127953 100644 --- a/e2e-tests/tests/major-upgrade/10-assert.yaml +++ b/e2e-tests/tests/major-upgrade/10-assert.yaml @@ -5,6 +5,23 @@ commands: - script: |- kubectl -n ${NAMESPACE} get pg,pod,job sleep 5 + + primary=$(kubectl -n ${NAMESPACE} get pod -l postgres-operator.crunchydata.com/role=master --no-headers -o jsonpath={.items[].metadata.name} || true) + if [ -z ${primary} ]; then + echo "Waiting for pods" + exit 0 + fi + + phase=$(kubectl -n ${NAMESPACE} get pod/${primary} -o jsonpath={".status.phase"}) + if [[ "${phase}" != "Running" ]]; then + echo "Waiting for ${primary} to start running" + exit 0 + fi + + kubectl -n ${NAMESPACE} exec -it ${primary} -- patronictl list + kubectl -n ${NAMESPACE} exec -it ${primary} -- patronictl history + + sleep 10 --- apiVersion: pgv2.percona.com/v2 kind: PerconaPGCluster diff --git a/e2e-tests/tests/major-upgrade/11-assert.yaml b/e2e-tests/tests/major-upgrade/11-assert.yaml deleted file mode 100644 index 47ccba03b5..0000000000 --- a/e2e-tests/tests/major-upgrade/11-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: repo2 - replicaCreateBackupComplete: true - stanzaCreated: true diff --git a/e2e-tests/tests/major-upgrade/11-change-repo.yaml b/e2e-tests/tests/major-upgrade/11-change-repo.yaml deleted file mode 100644 index 22094b19f4..0000000000 --- a/e2e-tests/tests/major-upgrade/11-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": "repo2"}]' diff --git a/e2e-tests/tests/major-upgrade/11-wait.yaml b/e2e-tests/tests/major-upgrade/11-wait.yaml new file mode 100644 index 0000000000..ddcfd43c98 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/11-wait.yaml @@ -0,0 +1,16 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + set -o errexit + set -o xtrace + + sleep 30 + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + echo "Checking the status of ${pod}:" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + done diff --git a/e2e-tests/tests/major-upgrade/12-assert.yaml b/e2e-tests/tests/major-upgrade/12-assert.yaml index d1790eabf5..525d522912 100644 --- a/e2e-tests/tests/major-upgrade/12-assert.yaml +++ b/e2e-tests/tests/major-upgrade/12-assert.yaml @@ -9,7 +9,7 @@ metadata: 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/pgbackrest-repo: repo1 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup @@ -24,7 +24,7 @@ metadata: name: backup-after-12-to-13 spec: pgCluster: major-upgrade - repoName: repo2 + repoName: repo1 options: - --type=full status: diff --git a/e2e-tests/tests/major-upgrade/12-run-backup.yaml b/e2e-tests/tests/major-upgrade/12-run-backup.yaml index 601008d4ca..0cfac94a95 100644 --- a/e2e-tests/tests/major-upgrade/12-run-backup.yaml +++ b/e2e-tests/tests/major-upgrade/12-run-backup.yaml @@ -4,6 +4,6 @@ metadata: name: backup-after-12-to-13 spec: pgCluster: major-upgrade - repoName: repo2 + repoName: repo1 options: - --type=full diff --git a/e2e-tests/tests/major-upgrade/13-assert.yaml b/e2e-tests/tests/major-upgrade/18-assert.yaml similarity index 98% rename from e2e-tests/tests/major-upgrade/13-assert.yaml rename to e2e-tests/tests/major-upgrade/18-assert.yaml index 2d05bb7d88..9e9bbf89ce 100644 --- a/e2e-tests/tests/major-upgrade/13-assert.yaml +++ b/e2e-tests/tests/major-upgrade/18-assert.yaml @@ -30,7 +30,7 @@ metadata: name: restore-after-12-to-13 spec: pgCluster: major-upgrade - repoName: repo2 + repoName: repo1 status: state: Succeeded --- diff --git a/e2e-tests/tests/major-upgrade/13-run-restore.yaml b/e2e-tests/tests/major-upgrade/18-run-restore.yaml similarity index 87% rename from e2e-tests/tests/major-upgrade/13-run-restore.yaml rename to e2e-tests/tests/major-upgrade/18-run-restore.yaml index bba96fe985..6350f5d6f1 100644 --- a/e2e-tests/tests/major-upgrade/13-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/18-run-restore.yaml @@ -4,4 +4,4 @@ metadata: name: restore-after-12-to-13 spec: pgCluster: major-upgrade - repoName: repo2 + repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/14-assert.yaml b/e2e-tests/tests/major-upgrade/19-assert.yaml similarity index 81% rename from e2e-tests/tests/major-upgrade/14-assert.yaml rename to e2e-tests/tests/major-upgrade/19-assert.yaml index 7c65443fbe..381403d405 100644 --- a/e2e-tests/tests/major-upgrade/14-assert.yaml +++ b/e2e-tests/tests/major-upgrade/19-assert.yaml @@ -5,6 +5,6 @@ timeout: 30 kind: ConfigMap apiVersion: v1 metadata: - name: 05-read-from-primary + name: 19-read-from-primary data: data: ' 100500' diff --git a/e2e-tests/tests/major-upgrade/14-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/14-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/19-read-from-primary.yaml index ac80bb337c..f835a311f5 100644 --- a/e2e-tests/tests/major-upgrade/14-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}" 05-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/20-assert.yaml b/e2e-tests/tests/major-upgrade/20-assert.yaml index c506a745f5..23d3a30f61 100644 --- a/e2e-tests/tests/major-upgrade/20-assert.yaml +++ b/e2e-tests/tests/major-upgrade/20-assert.yaml @@ -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: repo2 + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup diff --git a/e2e-tests/tests/major-upgrade/21-assert.yaml b/e2e-tests/tests/major-upgrade/21-assert.yaml deleted file mode 100644 index 301240b0f5..0000000000 --- a/e2e-tests/tests/major-upgrade/21-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: repo3 - replicaCreateBackupComplete: true - stanzaCreated: true diff --git a/e2e-tests/tests/major-upgrade/21-change-repo.yaml b/e2e-tests/tests/major-upgrade/21-change-repo.yaml deleted file mode 100644 index 57f9edc8a4..0000000000 --- a/e2e-tests/tests/major-upgrade/21-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": "repo3"}]' diff --git a/e2e-tests/tests/major-upgrade/21-wait.yaml b/e2e-tests/tests/major-upgrade/21-wait.yaml new file mode 100644 index 0000000000..ddcfd43c98 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/21-wait.yaml @@ -0,0 +1,16 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + set -o errexit + set -o xtrace + + sleep 30 + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + echo "Checking the status of ${pod}:" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + done diff --git a/e2e-tests/tests/major-upgrade/22-assert.yaml b/e2e-tests/tests/major-upgrade/22-assert.yaml index 7a2f6c1c0f..788d3de044 100644 --- a/e2e-tests/tests/major-upgrade/22-assert.yaml +++ b/e2e-tests/tests/major-upgrade/22-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: repo1 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: repo1 options: - --type=full status: diff --git a/e2e-tests/tests/major-upgrade/22-run-backup.yaml b/e2e-tests/tests/major-upgrade/22-run-backup.yaml index a7a1050c53..7f60f47386 100644 --- a/e2e-tests/tests/major-upgrade/22-run-backup.yaml +++ b/e2e-tests/tests/major-upgrade/22-run-backup.yaml @@ -4,6 +4,6 @@ metadata: name: backup-after-13-to-14 spec: pgCluster: major-upgrade - repoName: repo3 + repoName: repo1 options: - --type=full diff --git a/e2e-tests/tests/major-upgrade/23-assert.yaml b/e2e-tests/tests/major-upgrade/28-assert.yaml similarity index 98% rename from e2e-tests/tests/major-upgrade/23-assert.yaml rename to e2e-tests/tests/major-upgrade/28-assert.yaml index 75b542e689..0368526518 100644 --- a/e2e-tests/tests/major-upgrade/23-assert.yaml +++ b/e2e-tests/tests/major-upgrade/28-assert.yaml @@ -30,7 +30,7 @@ metadata: name: restore-after-13-to-14 spec: pgCluster: major-upgrade - repoName: repo3 + repoName: repo1 status: state: Succeeded --- diff --git a/e2e-tests/tests/major-upgrade/23-run-restore.yaml b/e2e-tests/tests/major-upgrade/28-run-restore.yaml similarity index 87% rename from e2e-tests/tests/major-upgrade/23-run-restore.yaml rename to e2e-tests/tests/major-upgrade/28-run-restore.yaml index 079ebf7b77..7ce7fed535 100644 --- a/e2e-tests/tests/major-upgrade/23-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/28-run-restore.yaml @@ -4,4 +4,4 @@ metadata: name: restore-after-13-to-14 spec: pgCluster: major-upgrade - repoName: repo3 + repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/34-assert.yaml b/e2e-tests/tests/major-upgrade/29-assert.yaml similarity index 81% rename from e2e-tests/tests/major-upgrade/34-assert.yaml rename to e2e-tests/tests/major-upgrade/29-assert.yaml index 7321c61abe..c73c610e44 100644 --- a/e2e-tests/tests/major-upgrade/34-assert.yaml +++ b/e2e-tests/tests/major-upgrade/29-assert.yaml @@ -5,6 +5,6 @@ timeout: 30 kind: ConfigMap apiVersion: v1 metadata: - name: 09-read-from-primary + name: 29-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/29-read-from-primary.yaml similarity index 76% rename from e2e-tests/tests/major-upgrade/34-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/29-read-from-primary.yaml index 12ff6f8d79..ebf6753f9b 100644 --- a/e2e-tests/tests/major-upgrade/34-read-from-primary.yaml +++ b/e2e-tests/tests/major-upgrade/29-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}" 29-read-from-primary --from-literal=data="${data}" diff --git a/e2e-tests/tests/major-upgrade/31-assert.yaml b/e2e-tests/tests/major-upgrade/31-assert.yaml deleted file mode 100644 index 6af985e4b7..0000000000 --- a/e2e-tests/tests/major-upgrade/31-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: repo4 - replicaCreateBackupComplete: true - stanzaCreated: true diff --git a/e2e-tests/tests/major-upgrade/31-change-repo.yaml b/e2e-tests/tests/major-upgrade/31-change-repo.yaml deleted file mode 100644 index 33711377c4..0000000000 --- a/e2e-tests/tests/major-upgrade/31-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": "repo4"}]' diff --git a/e2e-tests/tests/major-upgrade/31-wait.yaml b/e2e-tests/tests/major-upgrade/31-wait.yaml new file mode 100644 index 0000000000..ddcfd43c98 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/31-wait.yaml @@ -0,0 +1,16 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + set -o errexit + set -o xtrace + + sleep 30 + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + echo "Checking the status of ${pod}:" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + done diff --git a/e2e-tests/tests/major-upgrade/32-assert.yaml b/e2e-tests/tests/major-upgrade/32-assert.yaml index 75daf8364c..14ca1327c2 100644 --- a/e2e-tests/tests/major-upgrade/32-assert.yaml +++ b/e2e-tests/tests/major-upgrade/32-assert.yaml @@ -9,7 +9,7 @@ metadata: postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-14-to-15 labels: postgres-operator.crunchydata.com/pgbackrest-backup: manual - postgres-operator.crunchydata.com/pgbackrest-repo: repo4 + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup @@ -24,7 +24,7 @@ metadata: name: backup-after-14-to-15 spec: pgCluster: major-upgrade - repoName: repo4 + repoName: repo1 options: - --type=full status: diff --git a/e2e-tests/tests/major-upgrade/32-run-backup.yaml b/e2e-tests/tests/major-upgrade/32-run-backup.yaml index 792209c20c..e787fedfca 100644 --- a/e2e-tests/tests/major-upgrade/32-run-backup.yaml +++ b/e2e-tests/tests/major-upgrade/32-run-backup.yaml @@ -4,6 +4,6 @@ metadata: name: backup-after-14-to-15 spec: pgCluster: major-upgrade - repoName: repo4 + repoName: repo1 options: - --type=full diff --git a/e2e-tests/tests/major-upgrade/33-assert.yaml b/e2e-tests/tests/major-upgrade/38-assert.yaml similarity index 98% rename from e2e-tests/tests/major-upgrade/33-assert.yaml rename to e2e-tests/tests/major-upgrade/38-assert.yaml index 1d3a8a9aae..be93a3e621 100644 --- a/e2e-tests/tests/major-upgrade/33-assert.yaml +++ b/e2e-tests/tests/major-upgrade/38-assert.yaml @@ -30,7 +30,7 @@ metadata: name: restore-after-14-to-15 spec: pgCluster: major-upgrade - repoName: repo4 + repoName: repo1 status: state: Succeeded --- diff --git a/e2e-tests/tests/major-upgrade/33-run-restore.yaml b/e2e-tests/tests/major-upgrade/38-run-restore.yaml similarity index 87% rename from e2e-tests/tests/major-upgrade/33-run-restore.yaml rename to e2e-tests/tests/major-upgrade/38-run-restore.yaml index 8e7c7c6dab..24845cbb29 100644 --- a/e2e-tests/tests/major-upgrade/33-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/38-run-restore.yaml @@ -4,5 +4,5 @@ metadata: name: restore-after-14-to-15 spec: pgCluster: major-upgrade - repoName: repo4 + repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/24-assert.yaml b/e2e-tests/tests/major-upgrade/39-assert.yaml similarity index 81% rename from e2e-tests/tests/major-upgrade/24-assert.yaml rename to e2e-tests/tests/major-upgrade/39-assert.yaml index c86dbb55fc..8ba87d3268 100644 --- a/e2e-tests/tests/major-upgrade/24-assert.yaml +++ b/e2e-tests/tests/major-upgrade/39-assert.yaml @@ -5,6 +5,6 @@ timeout: 30 kind: ConfigMap apiVersion: v1 metadata: - name: 07-read-from-primary + name: 39-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/39-read-from-primary.yaml similarity index 76% rename from e2e-tests/tests/major-upgrade/44-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/39-read-from-primary.yaml index 7ecb6090a2..80a47927b8 100644 --- a/e2e-tests/tests/major-upgrade/44-read-from-primary.yaml +++ b/e2e-tests/tests/major-upgrade/39-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}" \ No newline at end of file + kubectl create configmap -n "${NAMESPACE}" 39-read-from-primary --from-literal=data="${data}" 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 1b95780c8f..0000000000 --- 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 d3d277599f..0000000000 --- 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/41-wait.yaml b/e2e-tests/tests/major-upgrade/41-wait.yaml new file mode 100644 index 0000000000..ddcfd43c98 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/41-wait.yaml @@ -0,0 +1,16 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + set -o errexit + set -o xtrace + + sleep 30 + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + echo "Checking the status of ${pod}:" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + done diff --git a/e2e-tests/tests/major-upgrade/46-assert.yaml b/e2e-tests/tests/major-upgrade/46-assert.yaml deleted file mode 100644 index 1b95780c8f..0000000000 --- a/e2e-tests/tests/major-upgrade/46-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/48-assert.yaml b/e2e-tests/tests/major-upgrade/48-assert.yaml index 95d57c293f..3114c23118 100644 --- a/e2e-tests/tests/major-upgrade/48-assert.yaml +++ b/e2e-tests/tests/major-upgrade/48-assert.yaml @@ -1,10 +1,52 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 30 +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 --- -kind: ConfigMap -apiVersion: v1 +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore metadata: - name: 11-read-from-primary -data: - data: ' 100500' + 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/48-run-restore.yaml b/e2e-tests/tests/major-upgrade/48-run-restore.yaml index d496fe3126..c86adba0d1 100644 --- a/e2e-tests/tests/major-upgrade/48-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/48-run-restore.yaml @@ -1,7 +1,7 @@ apiVersion: pgv2.percona.com/v2 kind: PerconaPGRestore metadata: - name: restore-after-16-to-17 + name: restore-after-15-to-16 spec: pgCluster: major-upgrade repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/44-assert.yaml b/e2e-tests/tests/major-upgrade/49-assert.yaml similarity index 81% rename from e2e-tests/tests/major-upgrade/44-assert.yaml rename to e2e-tests/tests/major-upgrade/49-assert.yaml index 95d57c293f..3ff925eeeb 100644 --- a/e2e-tests/tests/major-upgrade/44-assert.yaml +++ b/e2e-tests/tests/major-upgrade/49-assert.yaml @@ -5,6 +5,6 @@ timeout: 30 kind: ConfigMap apiVersion: v1 metadata: - name: 11-read-from-primary + name: 49-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/49-read-from-primary.yaml index 03c7aa852b..0549c2c862 100644 --- a/e2e-tests/tests/major-upgrade/49-read-from-primary.yaml +++ b/e2e-tests/tests/major-upgrade/49-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}" 49-read-from-primary --from-literal=data="${data}" diff --git a/e2e-tests/tests/major-upgrade/45-16-to-17.yaml b/e2e-tests/tests/major-upgrade/50-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/50-16-to-17.yaml diff --git a/e2e-tests/tests/major-upgrade/45-assert.yaml b/e2e-tests/tests/major-upgrade/50-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/45-assert.yaml rename to e2e-tests/tests/major-upgrade/50-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/51-wait.yaml b/e2e-tests/tests/major-upgrade/51-wait.yaml new file mode 100644 index 0000000000..ddcfd43c98 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/51-wait.yaml @@ -0,0 +1,16 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + set -o errexit + set -o xtrace + + sleep 30 + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + echo "Checking the status of ${pod}:" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" + kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + done diff --git a/e2e-tests/tests/major-upgrade/47-assert.yaml b/e2e-tests/tests/major-upgrade/52-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/47-assert.yaml rename to e2e-tests/tests/major-upgrade/52-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/47-run-backup.yaml b/e2e-tests/tests/major-upgrade/52-run-backup.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/47-run-backup.yaml rename to e2e-tests/tests/major-upgrade/52-run-backup.yaml diff --git a/e2e-tests/tests/major-upgrade/43-assert.yaml b/e2e-tests/tests/major-upgrade/58-assert.yaml similarity index 97% rename from e2e-tests/tests/major-upgrade/43-assert.yaml rename to e2e-tests/tests/major-upgrade/58-assert.yaml index 3114c23118..97161e5125 100644 --- a/e2e-tests/tests/major-upgrade/43-assert.yaml +++ b/e2e-tests/tests/major-upgrade/58-assert.yaml @@ -27,7 +27,7 @@ collectors: apiVersion: pgv2.percona.com/v2 kind: PerconaPGRestore metadata: - name: restore-after-15-to-16 + name: restore-after-16-to-17 spec: pgCluster: major-upgrade repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/43-run-restore.yaml b/e2e-tests/tests/major-upgrade/58-run-restore.yaml similarity index 79% rename from e2e-tests/tests/major-upgrade/43-run-restore.yaml rename to e2e-tests/tests/major-upgrade/58-run-restore.yaml index c86adba0d1..d496fe3126 100644 --- a/e2e-tests/tests/major-upgrade/43-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/58-run-restore.yaml @@ -1,7 +1,7 @@ apiVersion: pgv2.percona.com/v2 kind: PerconaPGRestore metadata: - name: restore-after-15-to-16 + name: restore-after-16-to-17 spec: pgCluster: major-upgrade repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/59-assert.yaml b/e2e-tests/tests/major-upgrade/59-assert.yaml new file mode 100644 index 0000000000..3ff925eeeb --- /dev/null +++ b/e2e-tests/tests/major-upgrade/59-assert.yaml @@ -0,0 +1,10 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 30 +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: 49-read-from-primary +data: + data: ' 100500' diff --git a/e2e-tests/tests/major-upgrade/24-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/59-read-from-primary.yaml similarity index 76% rename from e2e-tests/tests/major-upgrade/24-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/59-read-from-primary.yaml index bfa5e93458..0549c2c862 100644 --- a/e2e-tests/tests/major-upgrade/24-read-from-primary.yaml +++ b/e2e-tests/tests/major-upgrade/59-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}" 07-read-from-primary --from-literal=data="${data}" \ No newline at end of file + kubectl create configmap -n "${NAMESPACE}" 49-read-from-primary --from-literal=data="${data}" From 739c19b643bb06c4f955f97055b8b6b891d3eaa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Wed, 18 Dec 2024 12:17:02 +0300 Subject: [PATCH 02/11] run only major-upgrade --- e2e-tests/run-pr.csv | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/e2e-tests/run-pr.csv b/e2e-tests/run-pr.csv index 8c0ba3867f..6b2bf90256 100644 --- a/e2e-tests/run-pr.csv +++ b/e2e-tests/run-pr.csv @@ -1,20 +1 @@ -custom-extensions -custom-tls -demand-backup -finalizers -init-deploy -monitoring -monitoring-pmm3 -one-pod -operator-self-healing -pitr -scaling -scheduled-backup -self-healing -sidecars -start-from-backup -tablespaces -telemetry-transfer -upgrade-consistency -upgrade-minor -users +major-upgrade From 5ce4d3c6436f95237d666a49ec7ed064b346a06c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Fri, 20 Dec 2024 10:01:20 +0300 Subject: [PATCH 03/11] fixes --- e2e-tests/tests/major-upgrade/01-assert.yaml | 2 +- .../tests/major-upgrade/02-write-data.yaml | 4 +-- e2e-tests/tests/major-upgrade/10-assert.yaml | 2 +- ...-wait.yaml => 11-wait-and-write-data.yaml} | 10 ++++++- .../tests/major-upgrade/18-run-restore.yaml | 29 ++++++++++++++----- e2e-tests/tests/major-upgrade/19-assert.yaml | 4 ++- ...-wait.yaml => 21-wait-and-write-data.yaml} | 12 ++++++++ e2e-tests/tests/major-upgrade/23-wait.yaml | 6 ++++ .../tests/major-upgrade/28-run-restore.yaml | 28 +++++++++++++----- e2e-tests/tests/major-upgrade/29-assert.yaml | 5 +++- e2e-tests/tests/major-upgrade/30-assert.yaml | 2 +- ...-wait.yaml => 31-wait-and-write-data.yaml} | 12 ++++++++ e2e-tests/tests/major-upgrade/33-wait.yaml | 6 ++++ .../tests/major-upgrade/38-run-restore.yaml | 27 ++++++++++++----- e2e-tests/tests/major-upgrade/39-assert.yaml | 6 +++- ...-wait.yaml => 41-wait-and-write-data.yaml} | 12 ++++++++ e2e-tests/tests/major-upgrade/43-wait.yaml | 6 ++++ .../tests/major-upgrade/48-run-restore.yaml | 27 ++++++++++++----- e2e-tests/tests/major-upgrade/49-assert.yaml | 7 ++++- .../tests/scheduled-backup/07-add-sleep.yaml | 8 ++++- 20 files changed, 176 insertions(+), 39 deletions(-) rename e2e-tests/tests/major-upgrade/{11-wait.yaml => 11-wait-and-write-data.yaml} (63%) rename e2e-tests/tests/major-upgrade/{41-wait.yaml => 21-wait-and-write-data.yaml} (55%) create mode 100644 e2e-tests/tests/major-upgrade/23-wait.yaml rename e2e-tests/tests/major-upgrade/{21-wait.yaml => 31-wait-and-write-data.yaml} (57%) create mode 100644 e2e-tests/tests/major-upgrade/33-wait.yaml rename e2e-tests/tests/major-upgrade/{31-wait.yaml => 41-wait-and-write-data.yaml} (57%) create mode 100644 e2e-tests/tests/major-upgrade/43-wait.yaml diff --git a/e2e-tests/tests/major-upgrade/01-assert.yaml b/e2e-tests/tests/major-upgrade/01-assert.yaml index 8fee6151e6..95aee49860 100644 --- a/e2e-tests/tests/major-upgrade/01-assert.yaml +++ b/e2e-tests/tests/major-upgrade/01-assert.yaml @@ -1,6 +1,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 120 +timeout: 240 --- kind: StatefulSet apiVersion: apps/v1 diff --git a/e2e-tests/tests/major-upgrade/02-write-data.yaml b/e2e-tests/tests/major-upgrade/02-write-data.yaml index da5b97f2a7..33f2b6b270 100644 --- a/e2e-tests/tests/major-upgrade/02-write-data.yaml +++ b/e2e-tests/tests/major-upgrade/02-write-data.yaml @@ -10,11 +10,11 @@ commands: run_psql_local \ 'CREATE DATABASE myapp; \c myapp \\\ CREATE TABLE IF NOT EXISTS myApp (id int PRIMARY KEY);' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - + run_psql_local \ '\c myapp \\\ INSERT INTO myApp (id) VALUES (100500)' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" run_psql_local \ '\c postgres \\\ CREATE EXTENSION pg_cron' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" \ No newline at end of file + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" diff --git a/e2e-tests/tests/major-upgrade/10-assert.yaml b/e2e-tests/tests/major-upgrade/10-assert.yaml index 3aa5127953..88d1233564 100644 --- a/e2e-tests/tests/major-upgrade/10-assert.yaml +++ b/e2e-tests/tests/major-upgrade/10-assert.yaml @@ -1,6 +1,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 360 +timeout: 600 commands: - script: |- kubectl -n ${NAMESPACE} get pg,pod,job diff --git a/e2e-tests/tests/major-upgrade/11-wait.yaml b/e2e-tests/tests/major-upgrade/11-wait-and-write-data.yaml similarity index 63% rename from e2e-tests/tests/major-upgrade/11-wait.yaml rename to e2e-tests/tests/major-upgrade/11-wait-and-write-data.yaml index ddcfd43c98..1217065462 100644 --- a/e2e-tests/tests/major-upgrade/11-wait.yaml +++ b/e2e-tests/tests/major-upgrade/11-wait-and-write-data.yaml @@ -6,11 +6,19 @@ commands: set -o errexit set -o xtrace - sleep 30 + source ../../functions + + sleep 90 # wait some time for stanza to upgrade for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do echo "Checking the status of ${pod}:" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + kubectl -n ${NAMESPACE} exec -it ${pod} -- ls -l /pgdata/pg13_wal/ done + + run_psql_local \ + '\c myapp \\\ INSERT INTO myApp (id) VALUES (100501)' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" + diff --git a/e2e-tests/tests/major-upgrade/18-run-restore.yaml b/e2e-tests/tests/major-upgrade/18-run-restore.yaml index 6350f5d6f1..4843d9a078 100644 --- a/e2e-tests/tests/major-upgrade/18-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/18-run-restore.yaml @@ -1,7 +1,22 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-12-to-13 -spec: - pgCluster: major-upgrade - repoName: repo1 +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + set -o errexit + set -o xtrace + + backup_name=$(kubectl -n ${NAMESPACE} get pg-backup backup-after-12-to-13 -o jsonpath={.status.backupName}) + + cat <<-EOF | kubectl -n ${NAMESPACE} apply -f - + apiVersion: pgv2.percona.com/v2 + kind: PerconaPGRestore + metadata: + name: restore-after-12-to-13 + spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --set=${backup_name} + EOF diff --git a/e2e-tests/tests/major-upgrade/19-assert.yaml b/e2e-tests/tests/major-upgrade/19-assert.yaml index 381403d405..fa54da2f33 100644 --- a/e2e-tests/tests/major-upgrade/19-assert.yaml +++ b/e2e-tests/tests/major-upgrade/19-assert.yaml @@ -7,4 +7,6 @@ apiVersion: v1 metadata: name: 19-read-from-primary data: - data: ' 100500' + data: |2- + 100500 + 100501 diff --git a/e2e-tests/tests/major-upgrade/41-wait.yaml b/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml similarity index 55% rename from e2e-tests/tests/major-upgrade/41-wait.yaml rename to e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml index ddcfd43c98..4a16a61946 100644 --- a/e2e-tests/tests/major-upgrade/41-wait.yaml +++ b/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml @@ -6,11 +6,23 @@ commands: set -o errexit set -o xtrace +<<<<<<< HEAD:e2e-tests/tests/major-upgrade/31-wait.yaml sleep 30 +======= + source ../../functions + + sleep 90 # wait some time for stanza to upgrade +>>>>>>> 99139337e (fixes):e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do echo "Checking the status of ${pod}:" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + kubectl -n ${NAMESPACE} exec -it ${pod} -- ls -l /pgdata/pg14_wal done + + run_psql_local \ + '\c myapp \\\ INSERT INTO myApp (id) VALUES (100502)' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" + diff --git a/e2e-tests/tests/major-upgrade/23-wait.yaml b/e2e-tests/tests/major-upgrade/23-wait.yaml new file mode 100644 index 0000000000..9e29055009 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/23-wait.yaml @@ -0,0 +1,6 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + sleep 60 diff --git a/e2e-tests/tests/major-upgrade/28-run-restore.yaml b/e2e-tests/tests/major-upgrade/28-run-restore.yaml index 7ce7fed535..3dddcb57fe 100644 --- a/e2e-tests/tests/major-upgrade/28-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/28-run-restore.yaml @@ -1,7 +1,21 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-13-to-14 -spec: - pgCluster: major-upgrade - repoName: repo1 +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + set -o errexit + set -o xtrace + + backup_name=$(kubectl -n ${NAMESPACE} get pg-backup backup-after-13-to-14 -o jsonpath={.status.backupName}) + + cat <<-EOF | kubectl -n ${NAMESPACE} apply -f - + apiVersion: pgv2.percona.com/v2 + kind: PerconaPGRestore + metadata: + name: restore-after-13-to-14 + spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --set=${backup_name} + EOF diff --git a/e2e-tests/tests/major-upgrade/29-assert.yaml b/e2e-tests/tests/major-upgrade/29-assert.yaml index c73c610e44..0d6d533cf4 100644 --- a/e2e-tests/tests/major-upgrade/29-assert.yaml +++ b/e2e-tests/tests/major-upgrade/29-assert.yaml @@ -7,4 +7,7 @@ apiVersion: v1 metadata: name: 29-read-from-primary data: - data: ' 100500' + data: |2- + 100500 + 100501 + 100502 diff --git a/e2e-tests/tests/major-upgrade/30-assert.yaml b/e2e-tests/tests/major-upgrade/30-assert.yaml index b871b4faf8..11aac34933 100644 --- a/e2e-tests/tests/major-upgrade/30-assert.yaml +++ b/e2e-tests/tests/major-upgrade/30-assert.yaml @@ -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/21-wait.yaml b/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml similarity index 57% rename from e2e-tests/tests/major-upgrade/21-wait.yaml rename to e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml index ddcfd43c98..9615d41bb7 100644 --- a/e2e-tests/tests/major-upgrade/21-wait.yaml +++ b/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml @@ -6,11 +6,23 @@ commands: set -o errexit set -o xtrace +<<<<<<< HEAD:e2e-tests/tests/major-upgrade/11-wait.yaml sleep 30 +======= + source ../../functions + + sleep 90 +>>>>>>> 99139337e (fixes):e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do echo "Checking the status of ${pod}:" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + kubectl -n ${NAMESPACE} exec -it ${pod} -- ls -l /pgdata/pg15_wal done + + run_psql_local \ + '\c myapp \\\ INSERT INTO myApp (id) VALUES (100503)' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" + diff --git a/e2e-tests/tests/major-upgrade/33-wait.yaml b/e2e-tests/tests/major-upgrade/33-wait.yaml new file mode 100644 index 0000000000..9e29055009 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/33-wait.yaml @@ -0,0 +1,6 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + sleep 60 diff --git a/e2e-tests/tests/major-upgrade/38-run-restore.yaml b/e2e-tests/tests/major-upgrade/38-run-restore.yaml index 24845cbb29..36a4317773 100644 --- a/e2e-tests/tests/major-upgrade/38-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/38-run-restore.yaml @@ -1,8 +1,21 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-14-to-15 -spec: - pgCluster: major-upgrade - repoName: repo1 +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + set -o errexit + set -o xtrace + backup_name=$(kubectl -n ${NAMESPACE} get pg-backup backup-after-14-to-15 -o jsonpath={.status.backupName}) + + cat <<-EOF | kubectl -n ${NAMESPACE} apply -f - + apiVersion: pgv2.percona.com/v2 + kind: PerconaPGRestore + metadata: + name: restore-after-14-to-15 + spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --set=${backup_name} + EOF diff --git a/e2e-tests/tests/major-upgrade/39-assert.yaml b/e2e-tests/tests/major-upgrade/39-assert.yaml index 8ba87d3268..b99c68112f 100644 --- a/e2e-tests/tests/major-upgrade/39-assert.yaml +++ b/e2e-tests/tests/major-upgrade/39-assert.yaml @@ -7,4 +7,8 @@ apiVersion: v1 metadata: name: 39-read-from-primary data: - data: ' 100500' + data: |2- + 100500 + 100501 + 100502 + 100503 diff --git a/e2e-tests/tests/major-upgrade/31-wait.yaml b/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml similarity index 57% rename from e2e-tests/tests/major-upgrade/31-wait.yaml rename to e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml index ddcfd43c98..217aaab043 100644 --- a/e2e-tests/tests/major-upgrade/31-wait.yaml +++ b/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml @@ -6,11 +6,23 @@ commands: set -o errexit set -o xtrace +<<<<<<< HEAD:e2e-tests/tests/major-upgrade/21-wait.yaml sleep 30 +======= + source ../../functions + + sleep 90 +>>>>>>> 99139337e (fixes):e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do echo "Checking the status of ${pod}:" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + kubectl -n ${NAMESPACE} exec -it ${pod} -- ls -l /pgdata/pg16_wal done + + run_psql_local \ + '\c myapp \\\ INSERT INTO myApp (id) VALUES (100504)' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" + diff --git a/e2e-tests/tests/major-upgrade/43-wait.yaml b/e2e-tests/tests/major-upgrade/43-wait.yaml new file mode 100644 index 0000000000..9e29055009 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/43-wait.yaml @@ -0,0 +1,6 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + sleep 60 diff --git a/e2e-tests/tests/major-upgrade/48-run-restore.yaml b/e2e-tests/tests/major-upgrade/48-run-restore.yaml index c86adba0d1..0e8195bf2b 100644 --- a/e2e-tests/tests/major-upgrade/48-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/48-run-restore.yaml @@ -1,8 +1,21 @@ -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-15-to-16 -spec: - pgCluster: major-upgrade - repoName: repo1 +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 600 + script: |- + set -o errexit + set -o xtrace + backup_name=$(kubectl -n ${NAMESPACE} get pg-backup backup-after-15-to-16 -o jsonpath={.status.backupName}) + + cat <<-EOF | kubectl -n ${NAMESPACE} apply -f - + apiVersion: pgv2.percona.com/v2 + kind: PerconaPGRestore + metadata: + name: restore-after-15-to-16 + spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --set=${backup_name} + EOF diff --git a/e2e-tests/tests/major-upgrade/49-assert.yaml b/e2e-tests/tests/major-upgrade/49-assert.yaml index 3ff925eeeb..cb611a153c 100644 --- a/e2e-tests/tests/major-upgrade/49-assert.yaml +++ b/e2e-tests/tests/major-upgrade/49-assert.yaml @@ -7,4 +7,9 @@ apiVersion: v1 metadata: name: 49-read-from-primary data: - data: ' 100500' + data: |2- + 100500 + 100501 + 100502 + 100503 + 100504 diff --git a/e2e-tests/tests/scheduled-backup/07-add-sleep.yaml b/e2e-tests/tests/scheduled-backup/07-add-sleep.yaml index 5fe0203828..c242d965b6 100644 --- a/e2e-tests/tests/scheduled-backup/07-add-sleep.yaml +++ b/e2e-tests/tests/scheduled-backup/07-add-sleep.yaml @@ -1,8 +1,14 @@ apiVersion: kuttl.dev/v1beta1 kind: TestStep commands: +<<<<<<< HEAD:e2e-tests/tests/scheduled-backup/07-add-sleep.yaml - script: |- set -o errexit set -o xtrace - sleep 2 \ No newline at end of file + sleep 2 +======= + - timeout: 600 + script: |- + sleep 60 +>>>>>>> 99139337e (fixes):e2e-tests/tests/major-upgrade/13-wait.yaml From bde5dd01af87ecd1fc30a8ee0917e3cd5c8c1533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Wed, 22 Jan 2025 15:57:17 +0300 Subject: [PATCH 04/11] WIP --- .../major-upgrade/01-create-cluster.yaml | 8 +-- .../tests/major-upgrade/10-12-to-13.yaml | 24 -------- e2e-tests/tests/major-upgrade/10-assert.yaml | 59 ------------------- .../major-upgrade/11-wait-and-write-data.yaml | 24 -------- e2e-tests/tests/major-upgrade/12-assert.yaml | 31 ---------- .../tests/major-upgrade/12-run-backup.yaml | 9 --- e2e-tests/tests/major-upgrade/18-assert.yaml | 52 ---------------- .../tests/major-upgrade/18-run-restore.yaml | 22 ------- e2e-tests/tests/major-upgrade/19-assert.yaml | 12 ---- .../major-upgrade/19-read-from-primary.yaml | 12 ---- 10 files changed, 4 insertions(+), 249 deletions(-) delete mode 100644 e2e-tests/tests/major-upgrade/10-12-to-13.yaml delete mode 100644 e2e-tests/tests/major-upgrade/10-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/11-wait-and-write-data.yaml delete mode 100644 e2e-tests/tests/major-upgrade/12-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/12-run-backup.yaml delete mode 100644 e2e-tests/tests/major-upgrade/18-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/18-run-restore.yaml delete mode 100644 e2e-tests/tests/major-upgrade/19-assert.yaml delete mode 100644 e2e-tests/tests/major-upgrade/19-read-from-primary.yaml diff --git a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml index 729fbcc51f..0e0fd20fc5 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-ppg13-pgbouncer" | + .spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-ppg13-pgbackrest" | .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/10-12-to-13.yaml b/e2e-tests/tests/major-upgrade/10-12-to-13.yaml deleted file mode 100644 index 96a7fe9207..0000000000 --- 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 deleted file mode 100644 index 88d1233564..0000000000 --- a/e2e-tests/tests/major-upgrade/10-assert.yaml +++ /dev/null @@ -1,59 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 600 -commands: -- script: |- - kubectl -n ${NAMESPACE} get pg,pod,job - sleep 5 - - primary=$(kubectl -n ${NAMESPACE} get pod -l postgres-operator.crunchydata.com/role=master --no-headers -o jsonpath={.items[].metadata.name} || true) - if [ -z ${primary} ]; then - echo "Waiting for pods" - exit 0 - fi - - phase=$(kubectl -n ${NAMESPACE} get pod/${primary} -o jsonpath={".status.phase"}) - if [[ "${phase}" != "Running" ]]; then - echo "Waiting for ${primary} to start running" - exit 0 - fi - - kubectl -n ${NAMESPACE} exec -it ${primary} -- patronictl list - kubectl -n ${NAMESPACE} exec -it ${primary} -- patronictl history - - sleep 10 ---- -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 ---- -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: repo1 - ownerReferences: - - apiVersion: pgv2.percona.com/v2 - kind: PerconaPGBackup - controller: true - blockOwnerDeletion: true -status: - succeeded: 1 diff --git a/e2e-tests/tests/major-upgrade/11-wait-and-write-data.yaml b/e2e-tests/tests/major-upgrade/11-wait-and-write-data.yaml deleted file mode 100644 index 1217065462..0000000000 --- a/e2e-tests/tests/major-upgrade/11-wait-and-write-data.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 600 - script: |- - set -o errexit - set -o xtrace - - source ../../functions - - sleep 90 # wait some time for stanza to upgrade - - for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do - echo "Checking the status of ${pod}:" - kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" - kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" - kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check - kubectl -n ${NAMESPACE} exec -it ${pod} -- ls -l /pgdata/pg13_wal/ - done - - run_psql_local \ - '\c myapp \\\ INSERT INTO myApp (id) VALUES (100501)' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - diff --git a/e2e-tests/tests/major-upgrade/12-assert.yaml b/e2e-tests/tests/major-upgrade/12-assert.yaml deleted file mode 100644 index 525d522912..0000000000 --- a/e2e-tests/tests/major-upgrade/12-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-12-to-13 - 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-12-to-13 -spec: - pgCluster: major-upgrade - repoName: repo1 - 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 0cfac94a95..0000000000 --- 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: repo1 - options: - - --type=full diff --git a/e2e-tests/tests/major-upgrade/18-assert.yaml b/e2e-tests/tests/major-upgrade/18-assert.yaml deleted file mode 100644 index 9e9bbf89ce..0000000000 --- a/e2e-tests/tests/major-upgrade/18-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/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 ---- -apiVersion: pgv2.percona.com/v2 -kind: PerconaPGRestore -metadata: - name: restore-after-12-to-13 -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/18-run-restore.yaml b/e2e-tests/tests/major-upgrade/18-run-restore.yaml deleted file mode 100644 index 4843d9a078..0000000000 --- a/e2e-tests/tests/major-upgrade/18-run-restore.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 600 - script: |- - set -o errexit - set -o xtrace - - backup_name=$(kubectl -n ${NAMESPACE} get pg-backup backup-after-12-to-13 -o jsonpath={.status.backupName}) - - cat <<-EOF | kubectl -n ${NAMESPACE} apply -f - - apiVersion: pgv2.percona.com/v2 - kind: PerconaPGRestore - metadata: - name: restore-after-12-to-13 - spec: - pgCluster: major-upgrade - repoName: repo1 - options: - - --set=${backup_name} - EOF diff --git a/e2e-tests/tests/major-upgrade/19-assert.yaml b/e2e-tests/tests/major-upgrade/19-assert.yaml deleted file mode 100644 index fa54da2f33..0000000000 --- a/e2e-tests/tests/major-upgrade/19-assert.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestAssert -timeout: 30 ---- -kind: ConfigMap -apiVersion: v1 -metadata: - name: 19-read-from-primary -data: - data: |2- - 100500 - 100501 diff --git a/e2e-tests/tests/major-upgrade/19-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/19-read-from-primary.yaml deleted file mode 100644 index f835a311f5..0000000000 --- a/e2e-tests/tests/major-upgrade/19-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}" 19-read-from-primary --from-literal=data="${data}" From ca2ee3b7b7645d1ac65089f2e1eeb323c90dea71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Thu, 27 Mar 2025 16:36:40 +0300 Subject: [PATCH 05/11] WIP --- e2e-tests/tests/major-upgrade/01-assert.yaml | 2 +- e2e-tests/tests/major-upgrade/01-create-cluster.yaml | 4 +--- e2e-tests/tests/major-upgrade/02-write-data.yaml | 4 ---- e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml | 4 ---- e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml | 4 ---- e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml | 4 ---- e2e-tests/tests/scheduled-backup/07-add-sleep.yaml | 6 ------ 7 files changed, 2 insertions(+), 26 deletions(-) diff --git a/e2e-tests/tests/major-upgrade/01-assert.yaml b/e2e-tests/tests/major-upgrade/01-assert.yaml index 95aee49860..b580d781dc 100644 --- a/e2e-tests/tests/major-upgrade/01-assert.yaml +++ b/e2e-tests/tests/major-upgrade/01-assert.yaml @@ -1,6 +1,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 240 +timeout: 300 --- kind: StatefulSet apiVersion: apps/v1 diff --git a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml index 0e0fd20fc5..9157de0d70 100644 --- a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml +++ b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml @@ -14,7 +14,5 @@ commands: .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-ppg13-pgbouncer" | - .spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-ppg13-pgbackrest" | - .spec.patroni.dynamicConfiguration.postgresql.parameters.shared_preload_libraries = "pg_cron" | - .spec.extensions.custom += [{"name": "pg_cron", "version": "1.6.1"}]' \ + .spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-ppg13-pgbackrest"' \ | kubectl -n "${NAMESPACE}" apply -f - diff --git a/e2e-tests/tests/major-upgrade/02-write-data.yaml b/e2e-tests/tests/major-upgrade/02-write-data.yaml index 33f2b6b270..9dab40255e 100644 --- a/e2e-tests/tests/major-upgrade/02-write-data.yaml +++ b/e2e-tests/tests/major-upgrade/02-write-data.yaml @@ -14,7 +14,3 @@ commands: run_psql_local \ '\c myapp \\\ INSERT INTO myApp (id) VALUES (100500)' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - - run_psql_local \ - '\c postgres \\\ CREATE EXTENSION pg_cron' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" diff --git a/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml b/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml index 4a16a61946..ea0567fa50 100644 --- a/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml +++ b/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml @@ -6,13 +6,9 @@ commands: set -o errexit set -o xtrace -<<<<<<< HEAD:e2e-tests/tests/major-upgrade/31-wait.yaml - sleep 30 -======= source ../../functions sleep 90 # wait some time for stanza to upgrade ->>>>>>> 99139337e (fixes):e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do echo "Checking the status of ${pod}:" diff --git a/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml b/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml index 9615d41bb7..e3cbe58bce 100644 --- a/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml +++ b/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml @@ -6,13 +6,9 @@ commands: set -o errexit set -o xtrace -<<<<<<< HEAD:e2e-tests/tests/major-upgrade/11-wait.yaml - sleep 30 -======= source ../../functions sleep 90 ->>>>>>> 99139337e (fixes):e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do echo "Checking the status of ${pod}:" diff --git a/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml b/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml index 217aaab043..bcfed0f3d3 100644 --- a/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml +++ b/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml @@ -6,13 +6,9 @@ commands: set -o errexit set -o xtrace -<<<<<<< HEAD:e2e-tests/tests/major-upgrade/21-wait.yaml - sleep 30 -======= source ../../functions sleep 90 ->>>>>>> 99139337e (fixes):e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do echo "Checking the status of ${pod}:" diff --git a/e2e-tests/tests/scheduled-backup/07-add-sleep.yaml b/e2e-tests/tests/scheduled-backup/07-add-sleep.yaml index c242d965b6..e2983b9513 100644 --- a/e2e-tests/tests/scheduled-backup/07-add-sleep.yaml +++ b/e2e-tests/tests/scheduled-backup/07-add-sleep.yaml @@ -1,14 +1,8 @@ apiVersion: kuttl.dev/v1beta1 kind: TestStep commands: -<<<<<<< HEAD:e2e-tests/tests/scheduled-backup/07-add-sleep.yaml - script: |- set -o errexit set -o xtrace sleep 2 -======= - - timeout: 600 - script: |- - sleep 60 ->>>>>>> 99139337e (fixes):e2e-tests/tests/major-upgrade/13-wait.yaml From c15dfb12bb1fff502af2ed1868480f0365fcad63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Mon, 7 Apr 2025 21:53:39 +0300 Subject: [PATCH 06/11] fix --- .../major-upgrade/01-create-cluster.yaml | 1 + .../major-upgrade/21-wait-and-write-data.yaml | 2 +- .../tests/major-upgrade/28-run-restore.yaml | 28 +++++-------------- e2e-tests/tests/major-upgrade/29-assert.yaml | 1 - .../major-upgrade/31-wait-and-write-data.yaml | 2 +- .../tests/major-upgrade/38-run-restore.yaml | 28 +++++-------------- e2e-tests/tests/major-upgrade/39-assert.yaml | 1 - .../major-upgrade/41-wait-and-write-data.yaml | 2 +- .../tests/major-upgrade/48-run-restore.yaml | 28 +++++-------------- e2e-tests/tests/major-upgrade/49-assert.yaml | 1 - ...-wait.yaml => 51-wait-and-write-data.yaml} | 10 ++++++- .../tests/major-upgrade/58-run-restore.yaml | 1 - e2e-tests/tests/major-upgrade/59-assert.yaml | 7 ++++- 13 files changed, 40 insertions(+), 72 deletions(-) rename e2e-tests/tests/major-upgrade/{51-wait.yaml => 51-wait-and-write-data.yaml} (65%) diff --git a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml index 9157de0d70..ef9f6ffa0f 100644 --- a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml +++ b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml @@ -13,6 +13,7 @@ commands: .spec.postgresVersion = 13 | .spec.image = "perconalab/percona-postgresql-operator:main-ppg13-postgres" | .spec.instances[0].dataVolumeClaimSpec.resources.requests.storage = "3Gi" | + .spec.patroni.createReplicaMethods = ["basebackup","pgbackrest"] | .spec.proxy.pgBouncer.image = "perconalab/percona-postgresql-operator:main-ppg13-pgbouncer" | .spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-ppg13-pgbackrest"' \ | kubectl -n "${NAMESPACE}" apply -f - diff --git a/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml b/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml index ea0567fa50..5310fcb884 100644 --- a/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml +++ b/e2e-tests/tests/major-upgrade/21-wait-and-write-data.yaml @@ -19,6 +19,6 @@ commands: done run_psql_local \ - '\c myapp \\\ INSERT INTO myApp (id) VALUES (100502)' \ + '\c myapp \\\ INSERT INTO myApp (id) VALUES (100501)' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" diff --git a/e2e-tests/tests/major-upgrade/28-run-restore.yaml b/e2e-tests/tests/major-upgrade/28-run-restore.yaml index 3dddcb57fe..7ce7fed535 100644 --- a/e2e-tests/tests/major-upgrade/28-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/28-run-restore.yaml @@ -1,21 +1,7 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 600 - script: |- - set -o errexit - set -o xtrace - - backup_name=$(kubectl -n ${NAMESPACE} get pg-backup backup-after-13-to-14 -o jsonpath={.status.backupName}) - - cat <<-EOF | kubectl -n ${NAMESPACE} apply -f - - apiVersion: pgv2.percona.com/v2 - kind: PerconaPGRestore - metadata: - name: restore-after-13-to-14 - spec: - pgCluster: major-upgrade - repoName: repo1 - options: - - --set=${backup_name} - EOF +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-13-to-14 +spec: + pgCluster: major-upgrade + repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/29-assert.yaml b/e2e-tests/tests/major-upgrade/29-assert.yaml index 0d6d533cf4..bf53e293ae 100644 --- a/e2e-tests/tests/major-upgrade/29-assert.yaml +++ b/e2e-tests/tests/major-upgrade/29-assert.yaml @@ -10,4 +10,3 @@ data: data: |2- 100500 100501 - 100502 diff --git a/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml b/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml index e3cbe58bce..0f5381c29d 100644 --- a/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml +++ b/e2e-tests/tests/major-upgrade/31-wait-and-write-data.yaml @@ -19,6 +19,6 @@ commands: done run_psql_local \ - '\c myapp \\\ INSERT INTO myApp (id) VALUES (100503)' \ + '\c myapp \\\ INSERT INTO myApp (id) VALUES (100502)' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" diff --git a/e2e-tests/tests/major-upgrade/38-run-restore.yaml b/e2e-tests/tests/major-upgrade/38-run-restore.yaml index 36a4317773..b809cea860 100644 --- a/e2e-tests/tests/major-upgrade/38-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/38-run-restore.yaml @@ -1,21 +1,7 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 600 - script: |- - set -o errexit - set -o xtrace - - backup_name=$(kubectl -n ${NAMESPACE} get pg-backup backup-after-14-to-15 -o jsonpath={.status.backupName}) - - cat <<-EOF | kubectl -n ${NAMESPACE} apply -f - - apiVersion: pgv2.percona.com/v2 - kind: PerconaPGRestore - metadata: - name: restore-after-14-to-15 - spec: - pgCluster: major-upgrade - repoName: repo1 - options: - - --set=${backup_name} - EOF +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-14-to-15 +spec: + pgCluster: major-upgrade + repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/39-assert.yaml b/e2e-tests/tests/major-upgrade/39-assert.yaml index b99c68112f..8bf192f7d0 100644 --- a/e2e-tests/tests/major-upgrade/39-assert.yaml +++ b/e2e-tests/tests/major-upgrade/39-assert.yaml @@ -11,4 +11,3 @@ data: 100500 100501 100502 - 100503 diff --git a/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml b/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml index bcfed0f3d3..45cbb360c8 100644 --- a/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml +++ b/e2e-tests/tests/major-upgrade/41-wait-and-write-data.yaml @@ -19,6 +19,6 @@ commands: done run_psql_local \ - '\c myapp \\\ INSERT INTO myApp (id) VALUES (100504)' \ + '\c myapp \\\ INSERT INTO myApp (id) VALUES (100503)' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" diff --git a/e2e-tests/tests/major-upgrade/48-run-restore.yaml b/e2e-tests/tests/major-upgrade/48-run-restore.yaml index 0e8195bf2b..ccaf6697b4 100644 --- a/e2e-tests/tests/major-upgrade/48-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/48-run-restore.yaml @@ -1,21 +1,7 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 600 - script: |- - set -o errexit - set -o xtrace - - backup_name=$(kubectl -n ${NAMESPACE} get pg-backup backup-after-15-to-16 -o jsonpath={.status.backupName}) - - cat <<-EOF | kubectl -n ${NAMESPACE} apply -f - - apiVersion: pgv2.percona.com/v2 - kind: PerconaPGRestore - metadata: - name: restore-after-15-to-16 - spec: - pgCluster: major-upgrade - repoName: repo1 - options: - - --set=${backup_name} - EOF +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/49-assert.yaml b/e2e-tests/tests/major-upgrade/49-assert.yaml index cb611a153c..f13f428d81 100644 --- a/e2e-tests/tests/major-upgrade/49-assert.yaml +++ b/e2e-tests/tests/major-upgrade/49-assert.yaml @@ -12,4 +12,3 @@ data: 100501 100502 100503 - 100504 diff --git a/e2e-tests/tests/major-upgrade/51-wait.yaml b/e2e-tests/tests/major-upgrade/51-wait-and-write-data.yaml similarity index 65% rename from e2e-tests/tests/major-upgrade/51-wait.yaml rename to e2e-tests/tests/major-upgrade/51-wait-and-write-data.yaml index ddcfd43c98..bcfed0f3d3 100644 --- a/e2e-tests/tests/major-upgrade/51-wait.yaml +++ b/e2e-tests/tests/major-upgrade/51-wait-and-write-data.yaml @@ -6,11 +6,19 @@ commands: set -o errexit set -o xtrace - sleep 30 + source ../../functions + + sleep 90 for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do echo "Checking the status of ${pod}:" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT version()" kubectl -n ${NAMESPACE} exec -it ${pod} -- psql -c "SELECT timeline_id FROM pg_control_checkpoint()" kubectl -n ${NAMESPACE} exec -it ${pod} -- pgbackrest --stanza=db --log-level-console=detail check + kubectl -n ${NAMESPACE} exec -it ${pod} -- ls -l /pgdata/pg16_wal done + + run_psql_local \ + '\c myapp \\\ INSERT INTO myApp (id) VALUES (100504)' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" + diff --git a/e2e-tests/tests/major-upgrade/58-run-restore.yaml b/e2e-tests/tests/major-upgrade/58-run-restore.yaml index d496fe3126..5df2121b39 100644 --- a/e2e-tests/tests/major-upgrade/58-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/58-run-restore.yaml @@ -5,4 +5,3 @@ metadata: spec: pgCluster: major-upgrade repoName: repo1 - diff --git a/e2e-tests/tests/major-upgrade/59-assert.yaml b/e2e-tests/tests/major-upgrade/59-assert.yaml index 3ff925eeeb..cb611a153c 100644 --- a/e2e-tests/tests/major-upgrade/59-assert.yaml +++ b/e2e-tests/tests/major-upgrade/59-assert.yaml @@ -7,4 +7,9 @@ apiVersion: v1 metadata: name: 49-read-from-primary data: - data: ' 100500' + data: |2- + 100500 + 100501 + 100502 + 100503 + 100504 From 530bfa95a3a5630648a685b8cae5a96997cb1747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Tue, 8 Apr 2025 14:36:10 +0300 Subject: [PATCH 07/11] switch wal --- .../tests/major-upgrade/01-create-cluster.yaml | 1 - e2e-tests/tests/major-upgrade/23-switch-wal.yaml | 15 +++++++++++++++ e2e-tests/tests/major-upgrade/23-wait.yaml | 6 ------ e2e-tests/tests/major-upgrade/33-switch-wal.yaml | 15 +++++++++++++++ e2e-tests/tests/major-upgrade/33-wait.yaml | 6 ------ e2e-tests/tests/major-upgrade/40-assert.yaml | 2 +- e2e-tests/tests/major-upgrade/43-switch-wal.yaml | 15 +++++++++++++++ e2e-tests/tests/major-upgrade/43-wait.yaml | 6 ------ e2e-tests/tests/major-upgrade/50-assert.yaml | 2 +- e2e-tests/tests/major-upgrade/53-switch-wal.yaml | 15 +++++++++++++++ 10 files changed, 62 insertions(+), 21 deletions(-) create mode 100644 e2e-tests/tests/major-upgrade/23-switch-wal.yaml delete mode 100644 e2e-tests/tests/major-upgrade/23-wait.yaml create mode 100644 e2e-tests/tests/major-upgrade/33-switch-wal.yaml delete mode 100644 e2e-tests/tests/major-upgrade/33-wait.yaml create mode 100644 e2e-tests/tests/major-upgrade/43-switch-wal.yaml delete mode 100644 e2e-tests/tests/major-upgrade/43-wait.yaml create mode 100644 e2e-tests/tests/major-upgrade/53-switch-wal.yaml diff --git a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml index ef9f6ffa0f..9157de0d70 100644 --- a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml +++ b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml @@ -13,7 +13,6 @@ commands: .spec.postgresVersion = 13 | .spec.image = "perconalab/percona-postgresql-operator:main-ppg13-postgres" | .spec.instances[0].dataVolumeClaimSpec.resources.requests.storage = "3Gi" | - .spec.patroni.createReplicaMethods = ["basebackup","pgbackrest"] | .spec.proxy.pgBouncer.image = "perconalab/percona-postgresql-operator:main-ppg13-pgbouncer" | .spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-ppg13-pgbackrest"' \ | kubectl -n "${NAMESPACE}" apply -f - diff --git a/e2e-tests/tests/major-upgrade/23-switch-wal.yaml b/e2e-tests/tests/major-upgrade/23-switch-wal.yaml new file mode 100644 index 0000000000..89fa23d91f --- /dev/null +++ b/e2e-tests/tests/major-upgrade/23-switch-wal.yaml @@ -0,0 +1,15 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 90 + script: |- + set -o errexit + set -o xtrace + + source ../../functions + + run_psql_local \ + 'select pg_switch_wal()' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" + + sleep 60 diff --git a/e2e-tests/tests/major-upgrade/23-wait.yaml b/e2e-tests/tests/major-upgrade/23-wait.yaml deleted file mode 100644 index 9e29055009..0000000000 --- a/e2e-tests/tests/major-upgrade/23-wait.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 600 - script: |- - sleep 60 diff --git a/e2e-tests/tests/major-upgrade/33-switch-wal.yaml b/e2e-tests/tests/major-upgrade/33-switch-wal.yaml new file mode 100644 index 0000000000..89fa23d91f --- /dev/null +++ b/e2e-tests/tests/major-upgrade/33-switch-wal.yaml @@ -0,0 +1,15 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 90 + script: |- + set -o errexit + set -o xtrace + + source ../../functions + + run_psql_local \ + 'select pg_switch_wal()' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" + + sleep 60 diff --git a/e2e-tests/tests/major-upgrade/33-wait.yaml b/e2e-tests/tests/major-upgrade/33-wait.yaml deleted file mode 100644 index 9e29055009..0000000000 --- a/e2e-tests/tests/major-upgrade/33-wait.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 600 - script: |- - sleep 60 diff --git a/e2e-tests/tests/major-upgrade/40-assert.yaml b/e2e-tests/tests/major-upgrade/40-assert.yaml index de3a338c83..317c83bb40 100644 --- a/e2e-tests/tests/major-upgrade/40-assert.yaml +++ b/e2e-tests/tests/major-upgrade/40-assert.yaml @@ -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: repo4 + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup diff --git a/e2e-tests/tests/major-upgrade/43-switch-wal.yaml b/e2e-tests/tests/major-upgrade/43-switch-wal.yaml new file mode 100644 index 0000000000..89fa23d91f --- /dev/null +++ b/e2e-tests/tests/major-upgrade/43-switch-wal.yaml @@ -0,0 +1,15 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 90 + script: |- + set -o errexit + set -o xtrace + + source ../../functions + + run_psql_local \ + 'select pg_switch_wal()' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" + + sleep 60 diff --git a/e2e-tests/tests/major-upgrade/43-wait.yaml b/e2e-tests/tests/major-upgrade/43-wait.yaml deleted file mode 100644 index 9e29055009..0000000000 --- a/e2e-tests/tests/major-upgrade/43-wait.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 600 - script: |- - sleep 60 diff --git a/e2e-tests/tests/major-upgrade/50-assert.yaml b/e2e-tests/tests/major-upgrade/50-assert.yaml index e52b25e2cb..14332948f5 100644 --- a/e2e-tests/tests/major-upgrade/50-assert.yaml +++ b/e2e-tests/tests/major-upgrade/50-assert.yaml @@ -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: repo4 + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup diff --git a/e2e-tests/tests/major-upgrade/53-switch-wal.yaml b/e2e-tests/tests/major-upgrade/53-switch-wal.yaml new file mode 100644 index 0000000000..89fa23d91f --- /dev/null +++ b/e2e-tests/tests/major-upgrade/53-switch-wal.yaml @@ -0,0 +1,15 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 90 + script: |- + set -o errexit + set -o xtrace + + source ../../functions + + run_psql_local \ + 'select pg_switch_wal()' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" + + sleep 60 From e811f7cb6336fcfb5212348edcf05b88ac477982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Wed, 9 Apr 2025 09:54:27 +0300 Subject: [PATCH 08/11] checkpoint --- e2e-tests/tests/major-upgrade/01-create-cluster.yaml | 1 + e2e-tests/tests/major-upgrade/23-switch-wal.yaml | 3 +++ e2e-tests/tests/major-upgrade/33-switch-wal.yaml | 3 +++ e2e-tests/tests/major-upgrade/43-switch-wal.yaml | 3 +++ e2e-tests/tests/major-upgrade/53-switch-wal.yaml | 3 +++ 5 files changed, 13 insertions(+) diff --git a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml index 9157de0d70..ef9f6ffa0f 100644 --- a/e2e-tests/tests/major-upgrade/01-create-cluster.yaml +++ b/e2e-tests/tests/major-upgrade/01-create-cluster.yaml @@ -13,6 +13,7 @@ commands: .spec.postgresVersion = 13 | .spec.image = "perconalab/percona-postgresql-operator:main-ppg13-postgres" | .spec.instances[0].dataVolumeClaimSpec.resources.requests.storage = "3Gi" | + .spec.patroni.createReplicaMethods = ["basebackup","pgbackrest"] | .spec.proxy.pgBouncer.image = "perconalab/percona-postgresql-operator:main-ppg13-pgbouncer" | .spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-ppg13-pgbackrest"' \ | kubectl -n "${NAMESPACE}" apply -f - diff --git a/e2e-tests/tests/major-upgrade/23-switch-wal.yaml b/e2e-tests/tests/major-upgrade/23-switch-wal.yaml index 89fa23d91f..23c0729adb 100644 --- a/e2e-tests/tests/major-upgrade/23-switch-wal.yaml +++ b/e2e-tests/tests/major-upgrade/23-switch-wal.yaml @@ -8,6 +8,9 @@ commands: source ../../functions + run_psql_local \ + 'checkpoint' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" run_psql_local \ 'select pg_switch_wal()' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" diff --git a/e2e-tests/tests/major-upgrade/33-switch-wal.yaml b/e2e-tests/tests/major-upgrade/33-switch-wal.yaml index 89fa23d91f..23c0729adb 100644 --- a/e2e-tests/tests/major-upgrade/33-switch-wal.yaml +++ b/e2e-tests/tests/major-upgrade/33-switch-wal.yaml @@ -8,6 +8,9 @@ commands: source ../../functions + run_psql_local \ + 'checkpoint' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" run_psql_local \ 'select pg_switch_wal()' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" diff --git a/e2e-tests/tests/major-upgrade/43-switch-wal.yaml b/e2e-tests/tests/major-upgrade/43-switch-wal.yaml index 89fa23d91f..23c0729adb 100644 --- a/e2e-tests/tests/major-upgrade/43-switch-wal.yaml +++ b/e2e-tests/tests/major-upgrade/43-switch-wal.yaml @@ -8,6 +8,9 @@ commands: source ../../functions + run_psql_local \ + 'checkpoint' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" run_psql_local \ 'select pg_switch_wal()' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" diff --git a/e2e-tests/tests/major-upgrade/53-switch-wal.yaml b/e2e-tests/tests/major-upgrade/53-switch-wal.yaml index 89fa23d91f..23c0729adb 100644 --- a/e2e-tests/tests/major-upgrade/53-switch-wal.yaml +++ b/e2e-tests/tests/major-upgrade/53-switch-wal.yaml @@ -8,6 +8,9 @@ commands: source ../../functions + run_psql_local \ + 'checkpoint' \ + "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" run_psql_local \ 'select pg_switch_wal()' \ "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" From eb5da3b3ba972b5d4d6c6c363b40e3883c76d793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Thu, 10 Apr 2025 19:57:47 +0300 Subject: [PATCH 09/11] WIP --- e2e-tests/tests/major-upgrade/20-assert.yaml | 13 +++++++++++++ e2e-tests/tests/major-upgrade/28-assert.yaml | 10 +++++++++- e2e-tests/tests/major-upgrade/28-run-restore.yaml | 2 ++ e2e-tests/tests/major-upgrade/30-assert.yaml | 7 +++++++ e2e-tests/tests/major-upgrade/38-assert.yaml | 5 ++++- e2e-tests/tests/major-upgrade/38-run-restore.yaml | 2 ++ e2e-tests/tests/major-upgrade/40-assert.yaml | 7 +++++++ e2e-tests/tests/major-upgrade/48-assert.yaml | 5 ++++- e2e-tests/tests/major-upgrade/48-run-restore.yaml | 2 ++ e2e-tests/tests/major-upgrade/50-assert.yaml | 7 +++++++ e2e-tests/tests/major-upgrade/58-assert.yaml | 5 ++++- e2e-tests/tests/major-upgrade/58-run-restore.yaml | 2 ++ .../tests/major-upgrade/59-read-from-primary.yaml | 2 +- 13 files changed, 64 insertions(+), 5 deletions(-) diff --git a/e2e-tests/tests/major-upgrade/20-assert.yaml b/e2e-tests/tests/major-upgrade/20-assert.yaml index 23d3a30f61..2cbe8bad8d 100644 --- a/e2e-tests/tests/major-upgrade/20-assert.yaml +++ b/e2e-tests/tests/major-upgrade/20-assert.yaml @@ -4,7 +4,20 @@ timeout: 360 commands: - script: |- kubectl -n ${NAMESPACE} get pg,pod,job + # + # for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/pgupgrade=13-to-14 | awk '{print $1}'); do + # echo "${pod} logs:" + # kubectl -n ${NAMESPACE} logs ${pod} + # done + # sleep 5 +collectors: +- type: pod + selector: "postgres-operator.crunchydata.com/data=postgres" + tail: 30 +- type: pod + selector: "postgres-operator.crunchydata.com/pgupgrade=13-to-14" + tail: 200 --- apiVersion: pgv2.percona.com/v2 kind: PerconaPGCluster diff --git a/e2e-tests/tests/major-upgrade/28-assert.yaml b/e2e-tests/tests/major-upgrade/28-assert.yaml index 0368526518..ad1b782f7d 100644 --- a/e2e-tests/tests/major-upgrade/28-assert.yaml +++ b/e2e-tests/tests/major-upgrade/28-assert.yaml @@ -7,6 +7,11 @@ commands: kubectl -n ${NAMESPACE} get pod + # for pod in $(kubectl -n ${NAMESPACE} get pod -l job-name=major-upgrade-pgbackrest-restore | awk '{print $1}'); do + # echo "${pod} logs:" + # kubectl -n ${NAMESPACE} logs ${pod} + # done + # 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 @@ -18,11 +23,14 @@ commands: | kubectl -n ${NAMESPACE} exec -it ${pod} -- bash 2>/dev/null done - sleep 30 + sleep 15 collectors: - type: pod selector: "postgres-operator.crunchydata.com/data=postgres" tail: 30 +- type: pod + selector: "job-name=major-upgrade-pgbackrest-restore" + tail: 300 --- apiVersion: pgv2.percona.com/v2 kind: PerconaPGRestore diff --git a/e2e-tests/tests/major-upgrade/28-run-restore.yaml b/e2e-tests/tests/major-upgrade/28-run-restore.yaml index 7ce7fed535..5da4967f36 100644 --- a/e2e-tests/tests/major-upgrade/28-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/28-run-restore.yaml @@ -5,3 +5,5 @@ metadata: spec: pgCluster: major-upgrade repoName: repo1 + options: + - --log-level-console=debug diff --git a/e2e-tests/tests/major-upgrade/30-assert.yaml b/e2e-tests/tests/major-upgrade/30-assert.yaml index 11aac34933..edf3605d1b 100644 --- a/e2e-tests/tests/major-upgrade/30-assert.yaml +++ b/e2e-tests/tests/major-upgrade/30-assert.yaml @@ -5,6 +5,13 @@ commands: - script: |- kubectl -n ${NAMESPACE} get pg,pod,job sleep 5 +collectors: +- type: pod + selector: "postgres-operator.crunchydata.com/data=postgres" + tail: 30 +- type: pod + selector: "postgres-operator.crunchydata.com/pgupgrade=13-to-14" + tail: 200 --- apiVersion: pgv2.percona.com/v2 kind: PerconaPGCluster diff --git a/e2e-tests/tests/major-upgrade/38-assert.yaml b/e2e-tests/tests/major-upgrade/38-assert.yaml index be93a3e621..965f474253 100644 --- a/e2e-tests/tests/major-upgrade/38-assert.yaml +++ b/e2e-tests/tests/major-upgrade/38-assert.yaml @@ -18,11 +18,14 @@ commands: | kubectl -n ${NAMESPACE} exec -it ${pod} -- bash 2>/dev/null done - sleep 30 + sleep 15 collectors: - type: pod selector: "postgres-operator.crunchydata.com/data=postgres" tail: 30 +- type: pod + selector: "job-name=major-upgrade-pgbackrest-restore" + tail: 300 --- apiVersion: pgv2.percona.com/v2 kind: PerconaPGRestore diff --git a/e2e-tests/tests/major-upgrade/38-run-restore.yaml b/e2e-tests/tests/major-upgrade/38-run-restore.yaml index b809cea860..8bf3986aab 100644 --- a/e2e-tests/tests/major-upgrade/38-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/38-run-restore.yaml @@ -5,3 +5,5 @@ metadata: spec: pgCluster: major-upgrade repoName: repo1 + options: + - --log-level-console=debug diff --git a/e2e-tests/tests/major-upgrade/40-assert.yaml b/e2e-tests/tests/major-upgrade/40-assert.yaml index 317c83bb40..45a1e643b9 100644 --- a/e2e-tests/tests/major-upgrade/40-assert.yaml +++ b/e2e-tests/tests/major-upgrade/40-assert.yaml @@ -5,6 +5,13 @@ commands: - script: |- kubectl -n ${NAMESPACE} get pg,pod,job sleep 5 +collectors: +- type: pod + selector: "postgres-operator.crunchydata.com/data=postgres" + tail: 30 +- type: pod + selector: "postgres-operator.crunchydata.com/pgupgrade=13-to-14" + tail: 200 --- apiVersion: pgv2.percona.com/v2 kind: PerconaPGCluster diff --git a/e2e-tests/tests/major-upgrade/48-assert.yaml b/e2e-tests/tests/major-upgrade/48-assert.yaml index 3114c23118..a870ac130d 100644 --- a/e2e-tests/tests/major-upgrade/48-assert.yaml +++ b/e2e-tests/tests/major-upgrade/48-assert.yaml @@ -18,11 +18,14 @@ commands: | kubectl -n ${NAMESPACE} exec -it ${pod} -- bash 2>/dev/null done - sleep 30 + sleep 15 collectors: - type: pod selector: "postgres-operator.crunchydata.com/data=postgres" tail: 30 +- type: pod + selector: "job-name=major-upgrade-pgbackrest-restore" + tail: 300 --- apiVersion: pgv2.percona.com/v2 kind: PerconaPGRestore diff --git a/e2e-tests/tests/major-upgrade/48-run-restore.yaml b/e2e-tests/tests/major-upgrade/48-run-restore.yaml index ccaf6697b4..9ca741c97d 100644 --- a/e2e-tests/tests/major-upgrade/48-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/48-run-restore.yaml @@ -5,3 +5,5 @@ metadata: spec: pgCluster: major-upgrade repoName: repo1 + options: + - --log-level-console=debug diff --git a/e2e-tests/tests/major-upgrade/50-assert.yaml b/e2e-tests/tests/major-upgrade/50-assert.yaml index 14332948f5..280e7084f0 100644 --- a/e2e-tests/tests/major-upgrade/50-assert.yaml +++ b/e2e-tests/tests/major-upgrade/50-assert.yaml @@ -5,6 +5,13 @@ commands: - script: |- kubectl -n ${NAMESPACE} get pg,pod,job sleep 5 +collectors: +- type: pod + selector: "postgres-operator.crunchydata.com/data=postgres" + tail: 30 +- type: pod + selector: "postgres-operator.crunchydata.com/pgupgrade=13-to-14" + tail: 200 --- apiVersion: pgv2.percona.com/v2 kind: PerconaPGCluster diff --git a/e2e-tests/tests/major-upgrade/58-assert.yaml b/e2e-tests/tests/major-upgrade/58-assert.yaml index 97161e5125..a6f87ed937 100644 --- a/e2e-tests/tests/major-upgrade/58-assert.yaml +++ b/e2e-tests/tests/major-upgrade/58-assert.yaml @@ -18,11 +18,14 @@ commands: | kubectl -n ${NAMESPACE} exec -it ${pod} -- bash 2>/dev/null done - sleep 30 + sleep 15 collectors: - type: pod selector: "postgres-operator.crunchydata.com/data=postgres" tail: 30 +- type: pod + selector: "job-name=major-upgrade-pgbackrest-restore" + tail: 300 --- apiVersion: pgv2.percona.com/v2 kind: PerconaPGRestore diff --git a/e2e-tests/tests/major-upgrade/58-run-restore.yaml b/e2e-tests/tests/major-upgrade/58-run-restore.yaml index 5df2121b39..e023013780 100644 --- a/e2e-tests/tests/major-upgrade/58-run-restore.yaml +++ b/e2e-tests/tests/major-upgrade/58-run-restore.yaml @@ -5,3 +5,5 @@ metadata: spec: pgCluster: major-upgrade repoName: repo1 + options: + - --log-level-console=debug diff --git a/e2e-tests/tests/major-upgrade/59-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/59-read-from-primary.yaml index 0549c2c862..5f3d5ceba8 100644 --- a/e2e-tests/tests/major-upgrade/59-read-from-primary.yaml +++ b/e2e-tests/tests/major-upgrade/59-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}" 49-read-from-primary --from-literal=data="${data}" + kubectl create configmap -n "${NAMESPACE}" 59-read-from-primary --from-literal=data="${data}" From 0ae6b245bda406566a073bb1407618473c7fe6e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Fri, 11 Apr 2025 18:16:10 +0300 Subject: [PATCH 10/11] stanza-delete --- .../major-upgrade/23-recreate-stanza.yaml | 36 +++++++++++++++++++ .../tests/major-upgrade/23-switch-wal.yaml | 18 ---------- .../{22-assert.yaml => 27-assert.yaml} | 0 ...{22-run-backup.yaml => 27-run-backup.yaml} | 0 .../major-upgrade/33-recreate-stanza.yaml | 36 +++++++++++++++++++ .../tests/major-upgrade/33-switch-wal.yaml | 18 ---------- .../{32-assert.yaml => 37-assert.yaml} | 0 ...{32-run-backup.yaml => 37-run-backup.yaml} | 0 .../major-upgrade/43-recreate-stanza.yaml | 36 +++++++++++++++++++ .../tests/major-upgrade/43-switch-wal.yaml | 18 ---------- .../{42-assert.yaml => 47-assert.yaml} | 0 ...{42-run-backup.yaml => 47-run-backup.yaml} | 0 .../major-upgrade/53-recreate-stanza.yaml | 36 +++++++++++++++++++ .../tests/major-upgrade/53-switch-wal.yaml | 18 ---------- .../{52-assert.yaml => 57-assert.yaml} | 0 ...{52-run-backup.yaml => 57-run-backup.yaml} | 0 16 files changed, 144 insertions(+), 72 deletions(-) create mode 100644 e2e-tests/tests/major-upgrade/23-recreate-stanza.yaml delete mode 100644 e2e-tests/tests/major-upgrade/23-switch-wal.yaml rename e2e-tests/tests/major-upgrade/{22-assert.yaml => 27-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{22-run-backup.yaml => 27-run-backup.yaml} (100%) create mode 100644 e2e-tests/tests/major-upgrade/33-recreate-stanza.yaml delete mode 100644 e2e-tests/tests/major-upgrade/33-switch-wal.yaml rename e2e-tests/tests/major-upgrade/{32-assert.yaml => 37-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{32-run-backup.yaml => 37-run-backup.yaml} (100%) create mode 100644 e2e-tests/tests/major-upgrade/43-recreate-stanza.yaml delete mode 100644 e2e-tests/tests/major-upgrade/43-switch-wal.yaml rename e2e-tests/tests/major-upgrade/{42-assert.yaml => 47-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{42-run-backup.yaml => 47-run-backup.yaml} (100%) create mode 100644 e2e-tests/tests/major-upgrade/53-recreate-stanza.yaml delete mode 100644 e2e-tests/tests/major-upgrade/53-switch-wal.yaml rename e2e-tests/tests/major-upgrade/{52-assert.yaml => 57-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{52-run-backup.yaml => 57-run-backup.yaml} (100%) diff --git a/e2e-tests/tests/major-upgrade/23-recreate-stanza.yaml b/e2e-tests/tests/major-upgrade/23-recreate-stanza.yaml new file mode 100644 index 0000000000..1e38f9309e --- /dev/null +++ b/e2e-tests/tests/major-upgrade/23-recreate-stanza.yaml @@ -0,0 +1,36 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 300 + script: |- + set -o errexit + set -o xtrace + + source ../../functions + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- touch /pgdata/sleep-forever + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stop + done + + pod=$(kubectl get -n ${NAMESPACE} pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | tail -n 1 | awk '{print $1}') + + kubectl -n ${NAMESPACE} exec ${pod} -- patronictl pause + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- pg_ctl -D /pgdata/pg14 stop + done + + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stanza-delete + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug start + kubectl -n ${NAMESPACE} exec ${pod} -- rm /pgdata/sleep-forever + done + + kubectl -n ${NAMESPACE} exec ${pod} -- patronictl resume + + # give some time to patroni for starting postgres + sleep 90 + + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stanza-create diff --git a/e2e-tests/tests/major-upgrade/23-switch-wal.yaml b/e2e-tests/tests/major-upgrade/23-switch-wal.yaml deleted file mode 100644 index 23c0729adb..0000000000 --- a/e2e-tests/tests/major-upgrade/23-switch-wal.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 90 - script: |- - set -o errexit - set -o xtrace - - source ../../functions - - run_psql_local \ - 'checkpoint' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - run_psql_local \ - 'select pg_switch_wal()' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - - sleep 60 diff --git a/e2e-tests/tests/major-upgrade/22-assert.yaml b/e2e-tests/tests/major-upgrade/27-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/22-assert.yaml rename to e2e-tests/tests/major-upgrade/27-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/22-run-backup.yaml b/e2e-tests/tests/major-upgrade/27-run-backup.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/22-run-backup.yaml rename to e2e-tests/tests/major-upgrade/27-run-backup.yaml diff --git a/e2e-tests/tests/major-upgrade/33-recreate-stanza.yaml b/e2e-tests/tests/major-upgrade/33-recreate-stanza.yaml new file mode 100644 index 0000000000..d2aaa59ab1 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/33-recreate-stanza.yaml @@ -0,0 +1,36 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 300 + script: |- + set -o errexit + set -o xtrace + + source ../../functions + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- touch /pgdata/sleep-forever + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stop + done + + pod=$(kubectl get -n ${NAMESPACE} pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | tail -n 1 | awk '{print $1}') + + kubectl -n ${NAMESPACE} exec ${pod} -- patronictl pause + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- pg_ctl -D /pgdata/pg15 stop + done + + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stanza-delete + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug start + kubectl -n ${NAMESPACE} exec ${pod} -- rm /pgdata/sleep-forever + done + + kubectl -n ${NAMESPACE} exec ${pod} -- patronictl resume + + # give some time to patroni for starting postgres + sleep 90 + + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stanza-create diff --git a/e2e-tests/tests/major-upgrade/33-switch-wal.yaml b/e2e-tests/tests/major-upgrade/33-switch-wal.yaml deleted file mode 100644 index 23c0729adb..0000000000 --- a/e2e-tests/tests/major-upgrade/33-switch-wal.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 90 - script: |- - set -o errexit - set -o xtrace - - source ../../functions - - run_psql_local \ - 'checkpoint' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - run_psql_local \ - 'select pg_switch_wal()' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - - sleep 60 diff --git a/e2e-tests/tests/major-upgrade/32-assert.yaml b/e2e-tests/tests/major-upgrade/37-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/32-assert.yaml rename to e2e-tests/tests/major-upgrade/37-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/32-run-backup.yaml b/e2e-tests/tests/major-upgrade/37-run-backup.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/32-run-backup.yaml rename to e2e-tests/tests/major-upgrade/37-run-backup.yaml diff --git a/e2e-tests/tests/major-upgrade/43-recreate-stanza.yaml b/e2e-tests/tests/major-upgrade/43-recreate-stanza.yaml new file mode 100644 index 0000000000..58b18bc4cd --- /dev/null +++ b/e2e-tests/tests/major-upgrade/43-recreate-stanza.yaml @@ -0,0 +1,36 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 300 + script: |- + set -o errexit + set -o xtrace + + source ../../functions + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- touch /pgdata/sleep-forever + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stop + done + + pod=$(kubectl get -n ${NAMESPACE} pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | tail -n 1 | awk '{print $1}') + + kubectl -n ${NAMESPACE} exec ${pod} -- patronictl pause + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- pg_ctl -D /pgdata/pg16 stop + done + + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stanza-delete + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug start + kubectl -n ${NAMESPACE} exec ${pod} -- rm /pgdata/sleep-forever + done + + kubectl -n ${NAMESPACE} exec ${pod} -- patronictl resume + + # give some time to patroni for starting postgres + sleep 90 + + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stanza-create diff --git a/e2e-tests/tests/major-upgrade/43-switch-wal.yaml b/e2e-tests/tests/major-upgrade/43-switch-wal.yaml deleted file mode 100644 index 23c0729adb..0000000000 --- a/e2e-tests/tests/major-upgrade/43-switch-wal.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 90 - script: |- - set -o errexit - set -o xtrace - - source ../../functions - - run_psql_local \ - 'checkpoint' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - run_psql_local \ - 'select pg_switch_wal()' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - - sleep 60 diff --git a/e2e-tests/tests/major-upgrade/42-assert.yaml b/e2e-tests/tests/major-upgrade/47-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/42-assert.yaml rename to e2e-tests/tests/major-upgrade/47-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/42-run-backup.yaml b/e2e-tests/tests/major-upgrade/47-run-backup.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/42-run-backup.yaml rename to e2e-tests/tests/major-upgrade/47-run-backup.yaml diff --git a/e2e-tests/tests/major-upgrade/53-recreate-stanza.yaml b/e2e-tests/tests/major-upgrade/53-recreate-stanza.yaml new file mode 100644 index 0000000000..49742c96a3 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/53-recreate-stanza.yaml @@ -0,0 +1,36 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - timeout: 300 + script: |- + set -o errexit + set -o xtrace + + source ../../functions + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- touch /pgdata/sleep-forever + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stop + done + + pod=$(kubectl get -n ${NAMESPACE} pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | tail -n 1 | awk '{print $1}') + + kubectl -n ${NAMESPACE} exec ${pod} -- patronictl pause + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- pg_ctl -D /pgdata/pg17 stop + done + + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stanza-delete + + for pod in $(kubectl -n ${NAMESPACE} get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug start + kubectl -n ${NAMESPACE} exec ${pod} -- rm /pgdata/sleep-forever + done + + kubectl -n ${NAMESPACE} exec ${pod} -- patronictl resume + + # give some time to patroni for starting postgres + sleep 90 + + kubectl -n ${NAMESPACE} exec ${pod} -- pgbackrest --stanza=db --log-level-console=debug stanza-create diff --git a/e2e-tests/tests/major-upgrade/53-switch-wal.yaml b/e2e-tests/tests/major-upgrade/53-switch-wal.yaml deleted file mode 100644 index 23c0729adb..0000000000 --- a/e2e-tests/tests/major-upgrade/53-switch-wal.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: kuttl.dev/v1beta1 -kind: TestStep -commands: - - timeout: 90 - script: |- - set -o errexit - set -o xtrace - - source ../../functions - - run_psql_local \ - 'checkpoint' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - run_psql_local \ - 'select pg_switch_wal()' \ - "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)" - - sleep 60 diff --git a/e2e-tests/tests/major-upgrade/52-assert.yaml b/e2e-tests/tests/major-upgrade/57-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/52-assert.yaml rename to e2e-tests/tests/major-upgrade/57-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/52-run-backup.yaml b/e2e-tests/tests/major-upgrade/57-run-backup.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/52-run-backup.yaml rename to e2e-tests/tests/major-upgrade/57-run-backup.yaml From 1f8703f6e62de38b87eb4185482dab6f7a4f8aef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Fri, 11 Apr 2025 18:32:12 +0300 Subject: [PATCH 11/11] fix --- e2e-tests/tests/major-upgrade/59-assert.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-tests/tests/major-upgrade/59-assert.yaml b/e2e-tests/tests/major-upgrade/59-assert.yaml index cb611a153c..539ce9a2ad 100644 --- a/e2e-tests/tests/major-upgrade/59-assert.yaml +++ b/e2e-tests/tests/major-upgrade/59-assert.yaml @@ -5,7 +5,7 @@ timeout: 30 kind: ConfigMap apiVersion: v1 metadata: - name: 49-read-from-primary + name: 59-read-from-primary data: data: |2- 100500