Skip to content

Commit 03423f1

Browse files
authored
K8SPG-303 - Add one-pod test (#798)
1 parent 084f3b2 commit 03423f1

20 files changed

+466
-2
lines changed

e2e-tests/run-minikube.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
custom-extensions
22
demand-backup
33
init-deploy
4+
one-pod
45
operator-self-healing
56
scaling
67
scheduled-backup

e2e-tests/run-pr.csv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ custom-extensions
22
demand-backup
33
init-deploy
44
monitoring
5+
one-pod
56
operator-self-healing
7+
pitr
68
scaling
79
scheduled-backup
810
self-healing
@@ -11,4 +13,3 @@ tablespaces
1113
telemetry-transfer
1214
upgrade-minor
1315
users
14-
pitr

e2e-tests/run-release.csv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ demand-backup
33
init-deploy
44
migration-backup-s3
55
monitoring
6+
one-pod
67
operator-self-healing
8+
pitr
79
scaling
810
scheduled-backup
911
self-healing
@@ -12,4 +14,3 @@ tablespaces
1214
telemetry-transfer
1315
upgrade-minor
1416
users
15-
pitr
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: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 120
4+
---
5+
kind: StatefulSet
6+
apiVersion: apps/v1
7+
metadata:
8+
labels:
9+
postgres-operator.crunchydata.com/cluster: one-pod
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: one-pod
16+
controller: true
17+
blockOwnerDeletion: true
18+
status:
19+
observedGeneration: 1
20+
replicas: 1
21+
readyReplicas: 1
22+
currentReplicas: 1
23+
updatedReplicas: 1
24+
collisionCount: 0
25+
---
26+
kind: Deployment
27+
apiVersion: apps/v1
28+
metadata:
29+
name: one-pod-pgbouncer
30+
labels:
31+
postgres-operator.crunchydata.com/cluster: one-pod
32+
postgres-operator.crunchydata.com/role: pgbouncer
33+
annotations:
34+
deployment.kubernetes.io/revision: '1'
35+
ownerReferences:
36+
- apiVersion: postgres-operator.crunchydata.com/v1beta1
37+
kind: PostgresCluster
38+
name: one-pod
39+
controller: true
40+
blockOwnerDeletion: true
41+
status:
42+
observedGeneration: 1
43+
replicas: 1
44+
updatedReplicas: 1
45+
readyReplicas: 1
46+
---
47+
kind: Job
48+
apiVersion: batch/v1
49+
metadata:
50+
labels:
51+
postgres-operator.crunchydata.com/cluster: one-pod
52+
postgres-operator.crunchydata.com/pgbackrest: ''
53+
postgres-operator.crunchydata.com/pgbackrest-backup: replica-create
54+
postgres-operator.crunchydata.com/pgbackrest-repo: repo1
55+
annotations:
56+
postgres-operator.crunchydata.com/pgbackrest-config: pgbackrest
57+
ownerReferences:
58+
- apiVersion: pgv2.percona.com/v2
59+
kind: PerconaPGBackup
60+
controller: true
61+
blockOwnerDeletion: true
62+
status:
63+
succeeded: 1
64+
---
65+
apiVersion: postgres-operator.crunchydata.com/v1beta1
66+
kind: PostgresCluster
67+
metadata:
68+
name: one-pod
69+
ownerReferences:
70+
- apiVersion: pgv2.percona.com/v2
71+
kind: PerconaPGCluster
72+
name: one-pod
73+
controller: true
74+
blockOwnerDeletion: true
75+
finalizers:
76+
- postgres-operator.crunchydata.com/finalizer
77+
status:
78+
instances:
79+
- name: instance1
80+
readyReplicas: 1
81+
replicas: 1
82+
updatedReplicas: 1
83+
observedGeneration: 1
84+
pgbackrest:
85+
repos:
86+
- name: repo1
87+
stanzaCreated: true
88+
proxy:
89+
pgBouncer:
90+
readyReplicas: 1
91+
replicas: 1
92+
---
93+
apiVersion: pgv2.percona.com/v2
94+
kind: PerconaPGCluster
95+
metadata:
96+
name: one-pod
97+
status:
98+
pgbouncer:
99+
ready: 1
100+
size: 1
101+
postgres:
102+
instances:
103+
- name: instance1
104+
ready: 1
105+
size: 1
106+
ready: 1
107+
size: 1
108+
state: ready
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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+
11+
get_cr \
12+
| yq eval '
13+
.spec.proxy.pgBouncer.replicas=1 |
14+
.spec.instances[].replicas=1' - \
15+
| kubectl -n "${NAMESPACE}" apply -f -
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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+
run_psql_local \
11+
'CREATE DATABASE myapp; \c myapp \\\ CREATE TABLE IF NOT EXISTS myApp (id int PRIMARY KEY);' \
12+
"postgres:$(get_psql_user_pass one-pod-pguser-postgres)@$(get_psql_user_host one-pod-pguser-postgres)"
13+
14+
run_psql_local \
15+
'\c myapp \\\ INSERT INTO myApp (id) VALUES (100500)' \
16+
"postgres:$(get_psql_user_pass one-pod-pguser-postgres)@$(get_psql_user_host one-pod-pguser-postgres)"
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: 03-read-from-primary
9+
data:
10+
data: ' 100500'
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: 30
4+
commands:
5+
- script: |-
6+
set -o errexit
7+
set -o xtrace
8+
9+
source ../../functions
10+
11+
data=$(run_psql_local '\c myapp \\\ SELECT * from myApp;' "postgres:$(get_psql_user_pass one-pod-pguser-postgres)@$(get_psql_user_host one-pod-pguser-postgres)")
12+
13+
kubectl create configmap -n "${NAMESPACE}" 03-read-from-primary --from-literal=data="${data}"

0 commit comments

Comments
 (0)