Skip to content

Commit 567f9aa

Browse files
committed
add test case
Signed-off-by: drivebyer <wuyangmuc@gmail.com>
1 parent 2e5366b commit 567f9aa

File tree

8 files changed

+528
-2
lines changed

8 files changed

+528
-2
lines changed

.github/workflows/e2e-chainsaw.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
2121
- ./tests/e2e-chainsaw/v1beta2/password/
2222
- ./tests/e2e-chainsaw/v1beta2/ha-setup/
2323
- ./tests/e2e-chainsaw/v1beta2/nodeport/
24+
- ./tests/e2e-chainsaw/v1beta2/pvc-name/
2425

2526
steps:
2627
- name: Checkout code

tests/_config/chainsaw-configuration.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ spec:
99
timeouts:
1010
apply: 5m
1111
delete: 5m
12-
assert: 15m
13-
error: 15m
12+
assert: 10m
13+
error: 10m
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
apiVersion: chainsaw.kyverno.io/v1alpha1
3+
kind: Test
4+
metadata:
5+
name: pvc-name
6+
spec:
7+
steps:
8+
- name: Add PVC name environment
9+
try:
10+
- script:
11+
content: |
12+
kubectl patch deployment redis-operator-redis-operator --namespace redis-operator-system --type json -p='[{"op": "add", "path": "/spec/template/spec/containers/0/env/-", "value": {"name": "OPERATOR_STS_PVC_TEMPLATE_NAME", "value": "data"}}]'
13+
# show the deployment
14+
kubectl get deployment redis-operator-redis-operator -n redis-operator-system -o yaml
15+
# show the operator logs
16+
kubectl logs -l control-plane=redis-operator -n redis-operator-system
17+
kubectl wait --for=condition=available --timeout=300s deployment/redis-operator-redis-operator -n redis-operator-system
18+
19+
- name: redis-cluster-install
20+
try:
21+
- apply:
22+
file: cluster.yaml
23+
- assert:
24+
file: ready-cluster.yaml
25+
- assert:
26+
file: ready-sts.yaml
27+
- assert:
28+
file: ready-svc.yaml
29+
- assert:
30+
file: ready-pvc.yaml
31+
catch:
32+
- script:
33+
content: |
34+
# show the deployment
35+
kubectl get deployment redis-operator-redis-operator -n redis-operator-system -o yaml
36+
# show the operator logs
37+
kubectl logs -l control-plane=redis-operator -n redis-operator-system
38+
# describe the redis pods, which namespace like chainsaw-<random-string>, use grep to get the namespace
39+
kubectl describe pod -l redis_setup_type=cluster -n $(kubectl get ns | grep chainsaw | awk '{print $1}' | head -n 1)
40+
# show redis log
41+
kubectl logs -l redis_setup_type=cluster -n $(kubectl get ns | grep chainsaw | awk '{print $1}' | head -n 1)
42+
43+
- name: redis-cluster-uninstall
44+
try:
45+
- delete:
46+
ref:
47+
name: redis-cluster-v1beta2
48+
kind: RedisCluster
49+
apiVersion: redis.redis.opstreelabs.in/v1beta2
50+
- error:
51+
file: ready-cluster.yaml
52+
- error:
53+
file: ready-sts.yaml
54+
- error:
55+
file: ready-svc.yaml
56+
- error:
57+
file: ready-pvc.yaml
58+
59+
- name: Remove PVC name environment
60+
try:
61+
- script:
62+
content: |
63+
kubectl patch deployment redis-operator-redis-operator --namespace redis-operator-system --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/env/1"}]'
64+
kubectl wait --for=condition=available --timeout=300s deployment/redis-operator-redis-operator -n redis-operator-system
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
apiVersion: redis.redis.opstreelabs.in/v1beta2
2+
kind: RedisCluster
3+
metadata:
4+
name: redis-cluster-v1beta2
5+
spec:
6+
clusterSize: 3
7+
clusterVersion: v7
8+
persistenceEnabled: true
9+
podSecurityContext:
10+
runAsUser: 1000
11+
fsGroup: 1000
12+
kubernetesConfig:
13+
image: quay.io/opstree/redis:latest
14+
imagePullPolicy: Always
15+
resources:
16+
requests:
17+
cpu: 101m
18+
memory: 128Mi
19+
limits:
20+
cpu: 101m
21+
memory: 128Mi
22+
redisExporter:
23+
enabled: true
24+
image: quay.io/opstree/redis-exporter:v1.44.0
25+
imagePullPolicy: Always
26+
resources:
27+
requests:
28+
cpu: 100m
29+
memory: 128Mi
30+
limits:
31+
cpu: 100m
32+
memory: 128Mi
33+
storage:
34+
volumeClaimTemplate:
35+
spec:
36+
# storageClassName: standard
37+
accessModes: ["ReadWriteOnce"]
38+
resources:
39+
requests:
40+
storage: 1Gi
41+
nodeConfVolume: true
42+
nodeConfVolumeClaimTemplate:
43+
spec:
44+
accessModes: ["ReadWriteOnce"]
45+
resources:
46+
requests:
47+
storage: 1Gi
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: redis.redis.opstreelabs.in/v1beta2
2+
kind: RedisCluster
3+
metadata:
4+
name: redis-cluster-v1beta2
5+
status:
6+
readyFollowerReplicas: 3
7+
readyLeaderReplicas: 3
Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
apiVersion: v1
2+
kind: PersistentVolumeClaim
3+
metadata:
4+
name: node-conf-redis-cluster-v1beta2-leader-0
5+
labels:
6+
app: redis-cluster-v1beta2-leader
7+
redis_setup_type: cluster
8+
role: leader
9+
status:
10+
accessModes:
11+
- ReadWriteOnce
12+
capacity:
13+
storage: 1Gi
14+
phase: Bound
15+
---
16+
apiVersion: v1
17+
kind: PersistentVolumeClaim
18+
metadata:
19+
name: node-conf-redis-cluster-v1beta2-leader-1
20+
labels:
21+
app: redis-cluster-v1beta2-leader
22+
redis_setup_type: cluster
23+
role: leader
24+
status:
25+
accessModes:
26+
- ReadWriteOnce
27+
capacity:
28+
storage: 1Gi
29+
phase: Bound
30+
---
31+
apiVersion: v1
32+
kind: PersistentVolumeClaim
33+
metadata:
34+
name: node-conf-redis-cluster-v1beta2-leader-2
35+
labels:
36+
app: redis-cluster-v1beta2-leader
37+
redis_setup_type: cluster
38+
role: leader
39+
status:
40+
accessModes:
41+
- ReadWriteOnce
42+
capacity:
43+
storage: 1Gi
44+
phase: Bound
45+
---
46+
apiVersion: v1
47+
kind: PersistentVolumeClaim
48+
metadata:
49+
name: node-conf-redis-cluster-v1beta2-follower-0
50+
labels:
51+
app: redis-cluster-v1beta2-follower
52+
redis_setup_type: cluster
53+
role: follower
54+
status:
55+
accessModes:
56+
- ReadWriteOnce
57+
capacity:
58+
storage: 1Gi
59+
phase: Bound
60+
---
61+
apiVersion: v1
62+
kind: PersistentVolumeClaim
63+
metadata:
64+
name: node-conf-redis-cluster-v1beta2-follower-1
65+
labels:
66+
app: redis-cluster-v1beta2-follower
67+
redis_setup_type: cluster
68+
role: follower
69+
status:
70+
accessModes:
71+
- ReadWriteOnce
72+
capacity:
73+
storage: 1Gi
74+
phase: Bound
75+
---
76+
apiVersion: v1
77+
kind: PersistentVolumeClaim
78+
metadata:
79+
name: node-conf-redis-cluster-v1beta2-follower-2
80+
labels:
81+
app: redis-cluster-v1beta2-follower
82+
redis_setup_type: cluster
83+
role: follower
84+
status:
85+
accessModes:
86+
- ReadWriteOnce
87+
capacity:
88+
storage: 1Gi
89+
phase: Bound
90+
91+
---
92+
93+
apiVersion: v1
94+
kind: PersistentVolumeClaim
95+
metadata:
96+
name: data-redis-cluster-v1beta2-leader-0
97+
labels:
98+
app: redis-cluster-v1beta2-leader
99+
redis_setup_type: cluster
100+
role: leader
101+
status:
102+
accessModes:
103+
- ReadWriteOnce
104+
capacity:
105+
storage: 1Gi
106+
phase: Bound
107+
---
108+
apiVersion: v1
109+
kind: PersistentVolumeClaim
110+
metadata:
111+
name: data-redis-cluster-v1beta2-leader-1
112+
labels:
113+
app: redis-cluster-v1beta2-leader
114+
redis_setup_type: cluster
115+
role: leader
116+
status:
117+
accessModes:
118+
- ReadWriteOnce
119+
capacity:
120+
storage: 1Gi
121+
phase: Bound
122+
---
123+
apiVersion: v1
124+
kind: PersistentVolumeClaim
125+
metadata:
126+
name: data-redis-cluster-v1beta2-leader-2
127+
labels:
128+
app: redis-cluster-v1beta2-leader
129+
redis_setup_type: cluster
130+
role: leader
131+
status:
132+
accessModes:
133+
- ReadWriteOnce
134+
capacity:
135+
storage: 1Gi
136+
phase: Bound
137+
---
138+
apiVersion: v1
139+
kind: PersistentVolumeClaim
140+
metadata:
141+
name: data-redis-cluster-v1beta2-follower-0
142+
labels:
143+
app: redis-cluster-v1beta2-follower
144+
redis_setup_type: cluster
145+
role: follower
146+
status:
147+
accessModes:
148+
- ReadWriteOnce
149+
capacity:
150+
storage: 1Gi
151+
phase: Bound
152+
---
153+
apiVersion: v1
154+
kind: PersistentVolumeClaim
155+
metadata:
156+
name: data-redis-cluster-v1beta2-follower-1
157+
labels:
158+
app: redis-cluster-v1beta2-follower
159+
redis_setup_type: cluster
160+
role: follower
161+
status:
162+
accessModes:
163+
- ReadWriteOnce
164+
capacity:
165+
storage: 1Gi
166+
phase: Bound
167+
---
168+
apiVersion: v1
169+
kind: PersistentVolumeClaim
170+
metadata:
171+
name: data-redis-cluster-v1beta2-follower-2
172+
labels:
173+
app: redis-cluster-v1beta2-follower
174+
redis_setup_type: cluster
175+
role: follower
176+
status:
177+
accessModes:
178+
- ReadWriteOnce
179+
capacity:
180+
storage: 1Gi
181+
phase: Bound
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
apiVersion: apps/v1
2+
kind: StatefulSet
3+
metadata:
4+
name: redis-cluster-v1beta2-leader
5+
labels:
6+
app: redis-cluster-v1beta2-leader
7+
redis_setup_type: cluster
8+
role: leader
9+
status:
10+
replicas: 3
11+
readyReplicas: 3
12+
13+
---
14+
15+
apiVersion: apps/v1
16+
kind: StatefulSet
17+
metadata:
18+
name: redis-cluster-v1beta2-follower
19+
labels:
20+
app: redis-cluster-v1beta2-follower
21+
redis_setup_type: cluster
22+
role: follower
23+
status:
24+
replicas: 3
25+
readyReplicas: 3

0 commit comments

Comments
 (0)