Skip to content

Commit 23ea0d5

Browse files
committed
Fix upgrade consistency and add major PG18
1 parent 93bb758 commit 23ea0d5

File tree

11 files changed

+157
-27
lines changed

11 files changed

+157
-27
lines changed

e2e-tests/tests/major-upgrade/01-create-cluster.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ commands:
1616
.spec.proxy.pgBouncer.image = "perconalab/percona-postgresql-operator:main-pgbouncer13" |
1717
.spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-pgbackrest13" |
1818
.spec.patroni.dynamicConfiguration.postgresql.parameters.shared_preload_libraries = "pg_cron" |
19-
.spec.extensions.custom += [{"name": "pg_cron", "version": "1.6.1"}]' \
19+
.spec.extensions.custom += [{"name": "pg_cron", "version": "1.6.6"}]' \
2020
| kubectl -n "${NAMESPACE}" apply -f -
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: |-
5+
set -o errexit
6+
set -o xtrace
7+
8+
source ../../functions
9+
10+
kubectl apply -n ${NAMESPACE} -f - <<-EOF
11+
apiVersion: pgv2.percona.com/v2
12+
kind: PerconaPGUpgrade
13+
metadata:
14+
name: 17-to-18
15+
spec:
16+
postgresClusterName: major-upgrade
17+
image: ${IMAGE_UPGRADE}
18+
fromPostgresVersion: 17
19+
toPostgresVersion: 18
20+
toPostgresImage: $(get_container_image "postgres" 18)
21+
toPgBouncerImage: $(get_container_image "pgbouncer" 18)
22+
toPgBackRestImage: $(get_container_image "pgbackrest" 18)
23+
EOF
24+
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 360
4+
commands:
5+
- script: |-
6+
kubectl -n ${NAMESPACE} get pg,pod,job
7+
sleep 5
8+
---
9+
apiVersion: pgv2.percona.com/v2
10+
kind: PerconaPGCluster
11+
metadata:
12+
name: major-upgrade
13+
spec:
14+
postgresVersion: 18
15+
status:
16+
pgbouncer:
17+
ready: 3
18+
size: 3
19+
postgres:
20+
instances:
21+
- name: instance1
22+
ready: 3
23+
size: 3
24+
ready: 3
25+
size: 3
26+
state: ready
27+
---
28+
kind: Job
29+
apiVersion: batch/v1
30+
metadata:
31+
labels:
32+
postgres-operator.crunchydata.com/cluster: major-upgrade
33+
postgres-operator.crunchydata.com/pgbackrest: ''
34+
postgres-operator.crunchydata.com/pgbackrest-backup: replica-create
35+
postgres-operator.crunchydata.com/pgbackrest-repo: repo4
36+
ownerReferences:
37+
- apiVersion: pgv2.percona.com/v2
38+
kind: PerconaPGBackup
39+
controller: true
40+
blockOwnerDeletion: true
41+
status:
42+
succeeded: 1
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 660
4+
commands:
5+
- script: |-
6+
kubectl get postgrescluster major-upgrade \
7+
-n ${NAMESPACE} \
8+
-o yaml \
9+
| yq eval '.status.pgbackrest.repos' -
10+
---
11+
apiVersion: postgres-operator.crunchydata.com/v1beta1
12+
kind: PostgresCluster
13+
metadata:
14+
name: major-upgrade
15+
status:
16+
pgbackrest:
17+
repos:
18+
- bound: true
19+
name: repo4
20+
replicaCreateBackupComplete: true
21+
stanzaCreated: true
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 660
4+
---
5+
kind: Job
6+
apiVersion: batch/v1
7+
metadata:
8+
annotations:
9+
postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-17-to-18
10+
labels:
11+
postgres-operator.crunchydata.com/pgbackrest-backup: manual
12+
postgres-operator.crunchydata.com/pgbackrest-repo: repo4
13+
ownerReferences:
14+
- apiVersion: pgv2.percona.com/v2
15+
kind: PerconaPGBackup
16+
controller: true
17+
blockOwnerDeletion: true
18+
status:
19+
succeeded: 1
20+
---
21+
apiVersion: pgv2.percona.com/v2
22+
kind: PerconaPGBackup
23+
metadata:
24+
name: backup-after-17-to-18
25+
spec:
26+
pgCluster: major-upgrade
27+
repoName: repo4
28+
options:
29+
- --type=full
30+
status:
31+
state: Succeeded
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: pgv2.percona.com/v2
2+
kind: PerconaPGBackup
3+
metadata:
4+
name: backup-after-17-to-18
5+
spec:
6+
pgCluster: major-upgrade
7+
repoName: repo4
8+
options:
9+
- --type=full
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 30
4+
---
5+
kind: ConfigMap
6+
apiVersion: v1
7+
metadata:
8+
name: 23-read-from-primary
9+
data:
10+
data: ' 100500'
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
timeout: 30
4+
commands:
5+
- script: |-
6+
set -o errexit
7+
set -o xtrace
8+
9+
source ../../functions
10+
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)")
11+
12+
kubectl create configmap -n "${NAMESPACE}" 23-read-from-primary --from-literal=data="${data}"

e2e-tests/tests/upgrade-consistency/01-create-cluster.yaml

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,7 @@ commands:
88
99
source ../../functions
1010
11-
cr_version="2.7.0"
12-
13-
backrest_image=$(get_version_images $cr_version BACKREST${PG_VER})
14-
pgbouncer_image=$(get_version_images $cr_version PGBOUNCER${PG_VER})
15-
postgres_image=$(get_version_images $cr_version POSTGRESQL${PG_VER})
16-
1711
get_cr \
18-
| yq eval ".spec.crVersion=\"$cr_version\"" - \
19-
| yq eval ".spec.image=\"${REGISTRY_NAME_FULL}${postgres_image}\"" - \
20-
| yq eval ".spec.backups.pgbackrest.image=\"${REGISTRY_NAME_FULL}${backrest_image}\"" - \
21-
| yq eval ".spec.proxy.pgBouncer.image=\"${REGISTRY_NAME_FULL}${pgbouncer_image}\"" - \
22-
| kubectl -n "${NAMESPACE}" apply -f -
12+
| yq eval '
13+
.spec.crVersion="2.7.0"' - \
14+
| kubectl -n "${NAMESPACE}" apply -f -

e2e-tests/tests/upgrade-consistency/02-patch-cluster.yaml

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,9 @@ commands:
88
99
source ../../functions
1010
11-
cr_version="2.8.1"
12-
13-
backrest_image=$(get_version_images $cr_version BACKREST${PG_VER} )
14-
pgbouncer_image=$(get_version_images $cr_version PGBOUNCER${PG_VER})
15-
postgres_image=$(get_version_images $cr_version POSTGRESQL${PG_VER})
16-
1711
get_cr \
18-
| yq eval ".spec.crVersion=\"$cr_version\"" - \
19-
| yq eval ".spec.image=\"${REGISTRY_NAME_FULL}${postgres_image}\"" - \
20-
| yq eval ".spec.backups.pgbackrest.image=\"${REGISTRY_NAME_FULL}${backrest_image}\"" - \
21-
| yq eval ".spec.proxy.pgBouncer.image=\"${REGISTRY_NAME_FULL}${pgbouncer_image}\"" - \
12+
| yq eval '
13+
.spec.crVersion="2.8.1"' - \
2214
| kubectl -n "${NAMESPACE}" apply -f -
2315
2416
sleep 10

0 commit comments

Comments
 (0)