Skip to content

Commit

Permalink
K8SPG-303 - Add upgrade-consistency test (#800)
Browse files Browse the repository at this point in the history
  • Loading branch information
tplavcic authored Jun 6, 2024
1 parent 03423f1 commit 9be3c3f
Show file tree
Hide file tree
Showing 14 changed files with 671 additions and 0 deletions.
1 change: 1 addition & 0 deletions e2e-tests/run-minikube.csv
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ scheduled-backup
self-healing
start-from-backup
telemetry-transfer
upgrade-consistency
upgrade-minor
users
1 change: 1 addition & 0 deletions e2e-tests/run-pr.csv
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ self-healing
start-from-backup
tablespaces
telemetry-transfer
upgrade-consistency
upgrade-minor
users
1 change: 1 addition & 0 deletions e2e-tests/run-release.csv
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ self-healing
start-from-backup
tablespaces
telemetry-transfer
upgrade-consistency
upgrade-minor
users
24 changes: 24 additions & 0 deletions e2e-tests/tests/upgrade-consistency/00-assert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 120
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: perconapgclusters.pgv2.percona.com
spec:
group: pgv2.percona.com
names:
kind: PerconaPGCluster
listKind: PerconaPGClusterList
plural: perconapgclusters
singular: perconapgcluster
scope: Namespaced
---
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
metadata:
name: check-operator-deploy-status
timeout: 120
commands:
- script: kubectl assert exist-enhanced deployment percona-postgresql-operator -n ${OPERATOR_NS:-$NAMESPACE} --field-selector status.readyReplicas=1
12 changes: 12 additions & 0 deletions e2e-tests/tests/upgrade-consistency/00-deploy-operator.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
timeout: 10
commands:
- script: |-
set -o errexit
set -o xtrace
source ../../functions
init_temp_dir # do this only in the first TestStep
deploy_operator
139 changes: 139 additions & 0 deletions e2e-tests/tests/upgrade-consistency/01-assert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 180
---
kind: StatefulSet
apiVersion: apps/v1
metadata:
name: upgrade-consistency-repo-host
labels:
postgres-operator.crunchydata.com/cluster: upgrade-consistency
postgres-operator.crunchydata.com/data: pgbackrest
postgres-operator.crunchydata.com/pgbackrest: ''
postgres-operator.crunchydata.com/pgbackrest-dedicated: ''
ownerReferences:
- apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
name: upgrade-consistency
controller: true
blockOwnerDeletion: true
status:
observedGeneration: 1
replicas: 1
readyReplicas: 1
currentReplicas: 1
updatedReplicas: 1
collisionCount: 0
---
kind: StatefulSet
apiVersion: apps/v1
metadata:
labels:
postgres-operator.crunchydata.com/cluster: upgrade-consistency
postgres-operator.crunchydata.com/data: postgres
postgres-operator.crunchydata.com/instance-set: instance1
ownerReferences:
- apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
name: upgrade-consistency
controller: true
blockOwnerDeletion: true
status:
observedGeneration: 1
replicas: 1
readyReplicas: 1
currentReplicas: 1
updatedReplicas: 1
collisionCount: 0
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: upgrade-consistency-pgbouncer
labels:
postgres-operator.crunchydata.com/cluster: upgrade-consistency
postgres-operator.crunchydata.com/role: pgbouncer
annotations:
deployment.kubernetes.io/revision: '1'
ownerReferences:
- apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
name: upgrade-consistency
controller: true
blockOwnerDeletion: true
status:
observedGeneration: 1
replicas: 3
updatedReplicas: 3
readyReplicas: 3
---
kind: Job
apiVersion: batch/v1
metadata:
labels:
postgres-operator.crunchydata.com/cluster: upgrade-consistency
postgres-operator.crunchydata.com/pgbackrest: ''
postgres-operator.crunchydata.com/pgbackrest-backup: replica-create
postgres-operator.crunchydata.com/pgbackrest-repo: repo1
annotations:
postgres-operator.crunchydata.com/pgbackrest-config: pgbackrest
ownerReferences:
- apiVersion: pgv2.percona.com/v2
kind: PerconaPGBackup
controller: true
blockOwnerDeletion: true
status:
succeeded: 1
---
apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
metadata:
name: upgrade-consistency
ownerReferences:
- apiVersion: pgv2.percona.com/v2
kind: PerconaPGCluster
name: upgrade-consistency
controller: true
blockOwnerDeletion: true
finalizers:
- postgres-operator.crunchydata.com/finalizer
status:
instances:
- name: instance1
readyReplicas: 3
replicas: 3
updatedReplicas: 3
observedGeneration: 1
pgbackrest:
repoHost:
apiVersion: apps/v1
kind: StatefulSet
ready: true
repos:
- bound: true
name: repo1
replicaCreateBackupComplete: true
stanzaCreated: true
proxy:
pgBouncer:
readyReplicas: 3
replicas: 3
---
apiVersion: pgv2.percona.com/v2
kind: PerconaPGCluster
metadata:
name: upgrade-consistency
spec:
crVersion: 2.1.0
status:
pgbouncer:
ready: 3
size: 3
postgres:
instances:
- name: instance1
ready: 3
size: 3
ready: 3
size: 3
state: ready
14 changes: 14 additions & 0 deletions e2e-tests/tests/upgrade-consistency/01-create-cluster.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
timeout: 10
commands:
- script: |-
set -o errexit
set -o xtrace
source ../../functions
get_cr \
| yq eval '
.spec.crVersion="2.1.0"' - \
| kubectl -n "${NAMESPACE}" apply -f -
137 changes: 137 additions & 0 deletions e2e-tests/tests/upgrade-consistency/02-assert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 240
---
kind: StatefulSet
apiVersion: apps/v1
metadata:
name: upgrade-consistency-repo-host
labels:
postgres-operator.crunchydata.com/cluster: upgrade-consistency
postgres-operator.crunchydata.com/data: pgbackrest
postgres-operator.crunchydata.com/pgbackrest: ''
postgres-operator.crunchydata.com/pgbackrest-dedicated: ''
ownerReferences:
- apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
name: upgrade-consistency
controller: true
blockOwnerDeletion: true
status:
observedGeneration: 2
replicas: 1
readyReplicas: 1
updatedReplicas: 1
collisionCount: 0
---
kind: StatefulSet
apiVersion: apps/v1
metadata:
labels:
postgres-operator.crunchydata.com/cluster: upgrade-consistency
postgres-operator.crunchydata.com/data: postgres
postgres-operator.crunchydata.com/instance-set: instance1
ownerReferences:
- apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
name: upgrade-consistency
controller: true
blockOwnerDeletion: true
status:
observedGeneration: 2
replicas: 1
readyReplicas: 1
updatedReplicas: 1
collisionCount: 0
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: upgrade-consistency-pgbouncer
labels:
postgres-operator.crunchydata.com/cluster: upgrade-consistency
postgres-operator.crunchydata.com/role: pgbouncer
annotations:
deployment.kubernetes.io/revision: '2'
ownerReferences:
- apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
name: upgrade-consistency
controller: true
blockOwnerDeletion: true
status:
observedGeneration: 2
replicas: 3
updatedReplicas: 3
readyReplicas: 3
---
kind: Job
apiVersion: batch/v1
metadata:
labels:
postgres-operator.crunchydata.com/cluster: upgrade-consistency
postgres-operator.crunchydata.com/pgbackrest: ''
postgres-operator.crunchydata.com/pgbackrest-backup: replica-create
postgres-operator.crunchydata.com/pgbackrest-repo: repo1
annotations:
postgres-operator.crunchydata.com/pgbackrest-config: pgbackrest
ownerReferences:
- apiVersion: pgv2.percona.com/v2
kind: PerconaPGBackup
controller: true
blockOwnerDeletion: true
status:
succeeded: 1
---
apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
metadata:
name: upgrade-consistency
ownerReferences:
- apiVersion: pgv2.percona.com/v2
kind: PerconaPGCluster
name: upgrade-consistency
controller: true
blockOwnerDeletion: true
finalizers:
- postgres-operator.crunchydata.com/finalizer
status:
instances:
- name: instance1
readyReplicas: 3
replicas: 3
updatedReplicas: 3
observedGeneration: 2
pgbackrest:
repoHost:
apiVersion: apps/v1
kind: StatefulSet
ready: true
repos:
- bound: true
name: repo1
replicaCreateBackupComplete: true
stanzaCreated: true
proxy:
pgBouncer:
readyReplicas: 3
replicas: 3
---
apiVersion: pgv2.percona.com/v2
kind: PerconaPGCluster
metadata:
name: upgrade-consistency
spec:
crVersion: 2.2.0
status:
pgbouncer:
ready: 3
size: 3
postgres:
instances:
- name: instance1
ready: 3
size: 3
ready: 3
size: 3
state: ready
16 changes: 16 additions & 0 deletions e2e-tests/tests/upgrade-consistency/02-patch-cluster.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
timeout: 30
commands:
- script: |-
set -o errexit
set -o xtrace
source ../../functions
get_cr \
| yq eval '
.spec.crVersion="2.2.0"' - \
| kubectl -n "${NAMESPACE}" apply -f -
sleep 10
Loading

0 comments on commit 9be3c3f

Please sign in to comment.