Skip to content

Commit 353c2e9

Browse files
committed
Chainsaw test for PGO CLI start-stop
1 parent 76c8592 commit 353c2e9

File tree

1 file changed

+255
-0
lines changed

1 file changed

+255
-0
lines changed
Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,255 @@
1+
apiVersion: chainsaw.kyverno.io/v1alpha1
2+
kind: Test
3+
metadata:
4+
name: stop-cluster-no-with-force-conflicts
5+
spec:
6+
7+
bindings:
8+
- name: cluster
9+
value: stop-cluster-no-with-force-conflicts
10+
11+
- name: postgresVersion
12+
value: (to_string($values.versions.postgres))
13+
14+
steps:
15+
16+
- name: 'Create Cluster from manifest'
17+
use:
18+
template: '../templates/create-cluster-from-manifest.yaml'
19+
20+
- name: "Sleep 30s"
21+
try:
22+
- sleep:
23+
duration: 30s
24+
25+
- name: 'Confirm cluster is created'
26+
use:
27+
template: '../templates/confirm-created.yaml'
28+
29+
- name: "Sleep 30s"
30+
try:
31+
- sleep:
32+
duration: 30s
33+
34+
- name: 'Confirm Replica backup completed'
35+
use:
36+
template: '../templates/replica-backup-complete.yaml'
37+
38+
- name: run 'stop cluster' with confirm 'n' and force-conflicts
39+
try:
40+
- command:
41+
env:
42+
- name: "NAMESPACE"
43+
value: ($namespace)
44+
- name: "CLUSTER"
45+
value: ($cluster)
46+
entrypoint: "sh"
47+
args:
48+
- "-c"
49+
- "echo 'n' | kubectl-pgo stop $CLUSTER --force-conflicts --namespace=$NAMESPACE"
50+
timeout: 10s
51+
52+
- name: 'Confirm cluster is created'
53+
use:
54+
template: '../templates/confirm-created.yaml'
55+
---
56+
apiVersion: chainsaw.kyverno.io/v1alpha1
57+
kind: Test
58+
metadata:
59+
name: stop-cluster-yes-with-force-conflicts
60+
spec:
61+
62+
bindings:
63+
- name: cluster
64+
value: stop-cluster-yes-with-force-conflicts
65+
66+
- name: postgresVersion
67+
value: (to_string($values.versions.postgres))
68+
69+
steps:
70+
71+
- name: 'Create Cluster from manifest'
72+
use:
73+
template: '../templates/create-cluster-from-manifest.yaml'
74+
75+
- name: "Sleep 30s"
76+
try:
77+
- sleep:
78+
duration: 30s
79+
80+
- name: 'Confirm cluster is created'
81+
use:
82+
template: '../templates/confirm-created.yaml'
83+
84+
- name: "Sleep 30s"
85+
try:
86+
- sleep:
87+
duration: 30s
88+
89+
- name: 'Confirm Replica backup completed'
90+
use:
91+
template: '../templates/replica-backup-complete.yaml'
92+
93+
- name: run 'stop cluster' with confirm 'y' and force-conflicts
94+
try:
95+
- command:
96+
env:
97+
- name: "NAMESPACE"
98+
value: ($namespace)
99+
- name: "CLUSTER"
100+
value: ($cluster)
101+
entrypoint: "sh"
102+
args:
103+
- "-c"
104+
- "echo 'y' | kubectl-pgo stop $CLUSTER --force-conflicts --namespace=$NAMESPACE"
105+
timeout: 10s
106+
- sleep:
107+
duration: 10s
108+
109+
- name: confirm cluster did stop
110+
try:
111+
- assert:
112+
timeout: 30s
113+
resource:
114+
apiVersion: postgres-operator.crunchydata.com/v1beta1
115+
kind: PostgresCluster
116+
metadata:
117+
name: ($cluster)
118+
namespace: ($namespace)
119+
spec:
120+
shutdown: true
121+
- sleep:
122+
duration: 10s
123+
---
124+
apiVersion: chainsaw.kyverno.io/v1alpha1
125+
kind: Test
126+
metadata:
127+
name: start-cluster
128+
spec:
129+
130+
bindings:
131+
- name: cluster
132+
value: start-cluster
133+
134+
- name: postgresVersion
135+
value: (to_string($values.versions.postgres))
136+
137+
steps:
138+
139+
- name: 'Create Cluster from manifest'
140+
use:
141+
template: '../templates/create-cluster-from-manifest.yaml'
142+
143+
- name: 'Confirm cluster is created'
144+
use:
145+
template: '../templates/confirm-created.yaml'
146+
147+
- name: "Sleep 30s"
148+
try:
149+
- sleep:
150+
duration: 30s
151+
152+
- name: run 'stop cluster' with confirm 'y' and force-conflicts
153+
try:
154+
- command:
155+
env:
156+
- name: "NAMESPACE"
157+
value: ($namespace)
158+
- name: "CLUSTER"
159+
value: ($cluster)
160+
entrypoint: "sh"
161+
args:
162+
- "-c"
163+
- "echo 'y' | kubectl-pgo stop $CLUSTER --force-conflicts --namespace=$NAMESPACE"
164+
timeout: 10s
165+
- sleep:
166+
duration: 10s
167+
168+
- name: confirm cluster did stop
169+
try:
170+
- assert:
171+
timeout: 30s
172+
resource:
173+
apiVersion: postgres-operator.crunchydata.com/v1beta1
174+
kind: PostgresCluster
175+
metadata:
176+
name: ($cluster)
177+
namespace: ($namespace)
178+
spec:
179+
shutdown: true
180+
- sleep:
181+
duration: 10s
182+
183+
- name: run 'start cluster'
184+
try:
185+
- command:
186+
env:
187+
- name: "NAMESPACE"
188+
value: ($namespace)
189+
- name: "CLUSTER"
190+
value: ($cluster)
191+
entrypoint: "sh"
192+
args:
193+
- "-c"
194+
- "kubectl-pgo start $CLUSTER --namespace=$NAMESPACE"
195+
timeout: 10s
196+
197+
- name: 'Confirm cluster is created'
198+
use:
199+
template: '../templates/confirm-created.yaml'
200+
---
201+
apiVersion: chainsaw.kyverno.io/v1alpha1
202+
kind: Test
203+
metadata:
204+
name: start-cluster-already-running
205+
spec:
206+
207+
bindings:
208+
- name: cluster
209+
value: start-cluster-already-running
210+
211+
- name: postgresVersion
212+
value: (to_string($values.versions.postgres))
213+
214+
steps:
215+
216+
- name: 'Create Cluster from manifest'
217+
use:
218+
template: '../templates/create-cluster-from-manifest.yaml'
219+
220+
- name: 'Confirm cluster is created'
221+
use:
222+
template: '../templates/confirm-created.yaml'
223+
224+
- name: run 'start cluster'
225+
try:
226+
- command:
227+
env:
228+
- name: "NAMESPACE"
229+
value: ($namespace)
230+
- name: "CLUSTER"
231+
value: ($cluster)
232+
entrypoint: "sh"
233+
args:
234+
- "-c"
235+
- "sleep 5 && kubectl-pgo start $CLUSTER -n $NAMESPACE"
236+
timeout: 10s
237+
check:
238+
(contains($stdout, 'start initiated')): true
239+
240+
- name: run 'start cluster'
241+
try:
242+
- command:
243+
env:
244+
- name: "NAMESPACE"
245+
value: ($namespace)
246+
- name: "CLUSTER"
247+
value: ($cluster)
248+
entrypoint: "sh"
249+
args:
250+
- "-c"
251+
- "sleep 5 && kubectl-pgo start $CLUSTER -n $NAMESPACE"
252+
timeout: 10s
253+
check:
254+
(contains($stdout, 'Cluster already Started')): true
255+

0 commit comments

Comments
 (0)