Skip to content

Commit 8c32e2e

Browse files
committed
add backup-enable-disable test
1 parent b8b8cbd commit 8c32e2e

12 files changed

Lines changed: 404 additions & 0 deletions

e2e-tests/run-minikube.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
backup-enable-disable
12
custom-extensions
23
custom-tls
34
demand-backup

e2e-tests/run-pr.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
backup-enable-disable
12
custom-extensions
23
custom-tls
34
demand-backup

e2e-tests/run-release.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
backup-enable-disable
12
custom-extensions
23
custom-tls
34
demand-backup
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: TestAssert
3+
timeout: 120
4+
---
5+
apiVersion: apiextensions.k8s.io/v1
6+
kind: CustomResourceDefinition
7+
metadata:
8+
name: perconapgclusters.pgv2.percona.com
9+
spec:
10+
group: pgv2.percona.com
11+
names:
12+
kind: PerconaPGCluster
13+
listKind: PerconaPGClusterList
14+
plural: perconapgclusters
15+
singular: perconapgcluster
16+
scope: Namespaced
17+
---
18+
apiVersion: kuttl.dev/v1beta1
19+
kind: TestAssert
20+
metadata:
21+
name: check-operator-deploy-status
22+
timeout: 120
23+
commands:
24+
- script: kubectl assert exist-enhanced deployment percona-postgresql-operator -n ${OPERATOR_NS:-$NAMESPACE} --field-selector status.readyReplicas=1
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
timeout: 10
4+
commands:
5+
- script: |-
6+
set -o errexit
7+
set -o xtrace
8+
9+
source ../../functions
10+
init_temp_dir # do this only in the first TestStep
11+
12+
deploy_operator
13+
deploy_client
14+
deploy_s3_secrets
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 300
4+
---
5+
kind: StatefulSet
6+
apiVersion: apps/v1
7+
metadata:
8+
labels:
9+
postgres-operator.crunchydata.com/cluster: some-name
10+
postgres-operator.crunchydata.com/data: postgres
11+
postgres-operator.crunchydata.com/instance-set: instance1
12+
ownerReferences:
13+
- apiVersion: postgres-operator.crunchydata.com/v1beta1
14+
kind: PostgresCluster
15+
name: some-name
16+
controller: true
17+
blockOwnerDeletion: true
18+
status:
19+
observedGeneration: 1
20+
replicas: 1
21+
readyReplicas: 1
22+
updatedReplicas: 1
23+
collisionCount: 0
24+
---
25+
kind: Deployment
26+
apiVersion: apps/v1
27+
metadata:
28+
name: some-name-pgbouncer
29+
labels:
30+
postgres-operator.crunchydata.com/cluster: some-name
31+
postgres-operator.crunchydata.com/role: pgbouncer
32+
annotations:
33+
deployment.kubernetes.io/revision: '1'
34+
ownerReferences:
35+
- apiVersion: postgres-operator.crunchydata.com/v1beta1
36+
kind: PostgresCluster
37+
name: some-name
38+
controller: true
39+
blockOwnerDeletion: true
40+
status:
41+
observedGeneration: 1
42+
replicas: 3
43+
updatedReplicas: 3
44+
readyReplicas: 3
45+
---
46+
apiVersion: postgres-operator.crunchydata.com/v1beta1
47+
kind: PostgresCluster
48+
metadata:
49+
name: some-name
50+
ownerReferences:
51+
- apiVersion: pgv2.percona.com/v2
52+
kind: PerconaPGCluster
53+
name: some-name
54+
controller: true
55+
blockOwnerDeletion: true
56+
finalizers:
57+
- postgres-operator.crunchydata.com/finalizer
58+
spec:
59+
backups:
60+
pgbackrest: {}
61+
status:
62+
instances:
63+
- name: instance1
64+
readyReplicas: 3
65+
replicas: 3
66+
updatedReplicas: 3
67+
observedGeneration: 1
68+
proxy:
69+
pgBouncer:
70+
readyReplicas: 3
71+
replicas: 3
72+
---
73+
apiVersion: pgv2.percona.com/v2
74+
kind: PerconaPGCluster
75+
metadata:
76+
name: some-name
77+
status:
78+
pgbouncer:
79+
ready: 3
80+
size: 3
81+
postgres:
82+
instances:
83+
- name: instance1
84+
ready: 3
85+
size: 3
86+
ready: 3
87+
size: 3
88+
state: ready
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
timeout: 20
4+
commands:
5+
- script: |-
6+
set -o errexit
7+
set -o xtrace
8+
9+
source ../../functions
10+
11+
get_cr "some-name" ${RANDOM} \
12+
| yq 'del(.spec.backups)' \
13+
| kubectl -n "${NAMESPACE}" apply -f -
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 300
4+
---
5+
kind: StatefulSet
6+
apiVersion: apps/v1
7+
metadata:
8+
labels:
9+
postgres-operator.crunchydata.com/cluster: some-name
10+
postgres-operator.crunchydata.com/data: postgres
11+
postgres-operator.crunchydata.com/instance-set: instance1
12+
ownerReferences:
13+
- apiVersion: postgres-operator.crunchydata.com/v1beta1
14+
kind: PostgresCluster
15+
name: some-name
16+
controller: true
17+
blockOwnerDeletion: true
18+
status:
19+
observedGeneration: 2
20+
replicas: 1
21+
readyReplicas: 1
22+
updatedReplicas: 1
23+
collisionCount: 0
24+
---
25+
kind: StatefulSet
26+
apiVersion: apps/v1
27+
metadata:
28+
name: some-name-repo-host
29+
labels:
30+
postgres-operator.crunchydata.com/cluster: some-name
31+
postgres-operator.crunchydata.com/data: pgbackrest
32+
postgres-operator.crunchydata.com/pgbackrest: ''
33+
postgres-operator.crunchydata.com/pgbackrest-dedicated: ''
34+
ownerReferences:
35+
- apiVersion: postgres-operator.crunchydata.com/v1beta1
36+
kind: PostgresCluster
37+
name: some-name
38+
controller: true
39+
blockOwnerDeletion: true
40+
status:
41+
observedGeneration: 1
42+
replicas: 1
43+
readyReplicas: 1
44+
updatedReplicas: 1
45+
collisionCount: 0
46+
---
47+
kind: Deployment
48+
apiVersion: apps/v1
49+
metadata:
50+
name: some-name-pgbouncer
51+
labels:
52+
postgres-operator.crunchydata.com/cluster: some-name
53+
postgres-operator.crunchydata.com/role: pgbouncer
54+
annotations:
55+
deployment.kubernetes.io/revision: '1'
56+
ownerReferences:
57+
- apiVersion: postgres-operator.crunchydata.com/v1beta1
58+
kind: PostgresCluster
59+
name: some-name
60+
controller: true
61+
blockOwnerDeletion: true
62+
status:
63+
observedGeneration: 1
64+
replicas: 3
65+
updatedReplicas: 3
66+
readyReplicas: 3
67+
---
68+
kind: Job
69+
apiVersion: batch/v1
70+
metadata:
71+
labels:
72+
postgres-operator.crunchydata.com/cluster: some-name
73+
postgres-operator.crunchydata.com/pgbackrest: ''
74+
postgres-operator.crunchydata.com/pgbackrest-backup: replica-create
75+
postgres-operator.crunchydata.com/pgbackrest-repo: repo1
76+
ownerReferences:
77+
- apiVersion: pgv2.percona.com/v2
78+
kind: PerconaPGBackup
79+
controller: true
80+
blockOwnerDeletion: true
81+
status:
82+
succeeded: 1
83+
---
84+
apiVersion: postgres-operator.crunchydata.com/v1beta1
85+
kind: PostgresCluster
86+
metadata:
87+
name: some-name
88+
ownerReferences:
89+
- apiVersion: pgv2.percona.com/v2
90+
kind: PerconaPGCluster
91+
name: some-name
92+
controller: true
93+
blockOwnerDeletion: true
94+
finalizers:
95+
- postgres-operator.crunchydata.com/finalizer
96+
status:
97+
instances:
98+
- name: instance1
99+
readyReplicas: 3
100+
replicas: 3
101+
updatedReplicas: 3
102+
observedGeneration: 2
103+
pgbackrest:
104+
repos:
105+
- name: repo1
106+
stanzaCreated: true
107+
proxy:
108+
pgBouncer:
109+
readyReplicas: 3
110+
replicas: 3
111+
---
112+
apiVersion: pgv2.percona.com/v2
113+
kind: PerconaPGCluster
114+
metadata:
115+
name: some-name
116+
status:
117+
pgbouncer:
118+
ready: 3
119+
size: 3
120+
postgres:
121+
instances:
122+
- name: instance1
123+
ready: 3
124+
size: 3
125+
ready: 3
126+
size: 3
127+
state: ready
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: 20
4+
commands:
5+
- script: |-
6+
set -o errexit
7+
set -o xtrace
8+
9+
source ../../functions
10+
11+
get_cr "some-name" ${RANDOM} \
12+
| kubectl -n "${NAMESPACE}" apply -f -
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 300
4+
---
5+
kind: StatefulSet
6+
apiVersion: apps/v1
7+
metadata:
8+
labels:
9+
postgres-operator.crunchydata.com/cluster: some-name
10+
postgres-operator.crunchydata.com/data: postgres
11+
postgres-operator.crunchydata.com/instance-set: instance1
12+
ownerReferences:
13+
- apiVersion: postgres-operator.crunchydata.com/v1beta1
14+
kind: PostgresCluster
15+
name: some-name
16+
controller: true
17+
blockOwnerDeletion: true
18+
status:
19+
observedGeneration: 3
20+
replicas: 1
21+
readyReplicas: 1
22+
updatedReplicas: 1
23+
collisionCount: 0
24+
---
25+
kind: Deployment
26+
apiVersion: apps/v1
27+
metadata:
28+
name: some-name-pgbouncer
29+
labels:
30+
postgres-operator.crunchydata.com/cluster: some-name
31+
postgres-operator.crunchydata.com/role: pgbouncer
32+
annotations:
33+
deployment.kubernetes.io/revision: '1'
34+
ownerReferences:
35+
- apiVersion: postgres-operator.crunchydata.com/v1beta1
36+
kind: PostgresCluster
37+
name: some-name
38+
controller: true
39+
blockOwnerDeletion: true
40+
status:
41+
observedGeneration: 1
42+
replicas: 3
43+
updatedReplicas: 3
44+
readyReplicas: 3
45+
---
46+
apiVersion: postgres-operator.crunchydata.com/v1beta1
47+
kind: PostgresCluster
48+
metadata:
49+
name: some-name
50+
ownerReferences:
51+
- apiVersion: pgv2.percona.com/v2
52+
kind: PerconaPGCluster
53+
name: some-name
54+
controller: true
55+
blockOwnerDeletion: true
56+
finalizers:
57+
- postgres-operator.crunchydata.com/finalizer
58+
spec:
59+
backups:
60+
pgbackrest: {}
61+
status:
62+
instances:
63+
- name: instance1
64+
readyReplicas: 3
65+
replicas: 3
66+
updatedReplicas: 3
67+
observedGeneration: 3
68+
proxy:
69+
pgBouncer:
70+
readyReplicas: 3
71+
replicas: 3
72+
---
73+
apiVersion: pgv2.percona.com/v2
74+
kind: PerconaPGCluster
75+
metadata:
76+
name: some-name
77+
status:
78+
pgbouncer:
79+
ready: 3
80+
size: 3
81+
postgres:
82+
instances:
83+
- name: instance1
84+
ready: 3
85+
size: 3
86+
ready: 3
87+
size: 3
88+
state: ready

0 commit comments

Comments
 (0)