Skip to content

Commit 0a9f710

Browse files
committed
add e2e
Signed-off-by: drivebyer <wuyangmuc@gmail.com>
1 parent bc7abbe commit 0a9f710

File tree

10 files changed

+282
-21
lines changed

10 files changed

+282
-21
lines changed

tests/e2e-chainsaw/v1beta2/password/redis-cluster/chainsaw-test.yaml

Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,37 +32,37 @@ spec:
3232
- script:
3333
timeout: 10s
3434
content: |
35-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-0 -- redis-cli -c -p 6379 -a Opstree@1234 ping
35+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-0 -- redis-cli -c -p 6379 -a Opstree1234 ping
3636
check:
3737
($stdout=='PONG'): true
3838
- script:
3939
timeout: 10s
4040
content: |
41-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-1 -- redis-cli -c -p 6379 -a Opstree@1234 ping
41+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-1 -- redis-cli -c -p 6379 -a Opstree1234 ping
4242
check:
4343
($stdout=='PONG'): true
4444
- script:
4545
timeout: 10s
4646
content: |
47-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-2 -- redis-cli -c -p 6379 -a Opstree@1234 ping
47+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-2 -- redis-cli -c -p 6379 -a Opstree1234 ping
4848
check:
4949
($stdout=='PONG'): true
5050
- script:
5151
timeout: 10s
5252
content: |
53-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-0 -- redis-cli -c -p 6379 -a Opstree@1234 ping
53+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-0 -- redis-cli -c -p 6379 -a Opstree1234 ping
5454
check:
5555
($stdout=='PONG'): true
5656
- script:
5757
timeout: 10s
5858
content: |
59-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-1 -- redis-cli -c -p 6379 -a Opstree@1234 ping
59+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-1 -- redis-cli -c -p 6379 -a Opstree1234 ping
6060
check:
6161
($stdout=='PONG'): true
6262
- script:
6363
timeout: 10s
6464
content: |
65-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-2 -- redis-cli -c -p 6379 -a Opstree@1234 ping
65+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-2 -- redis-cli -c -p 6379 -a Opstree1234 ping
6666
check:
6767
($stdout=='PONG'): true
6868

@@ -71,37 +71,37 @@ spec:
7171
- script:
7272
timeout: 10s
7373
content: |
74-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-0 -- redis-cli -c -p 6379 -a Opstree@1234 set foo-0 bar-0
74+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-0 -- redis-cli -c -p 6379 -a Opstree1234 set foo-0 bar-0
7575
check:
7676
($stdout=='OK'): true
7777
- script:
7878
timeout: 10s
7979
content: |
80-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-1 -- redis-cli -c -p 6379 -a Opstree@1234 set foo-1 bar-1
80+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-1 -- redis-cli -c -p 6379 -a Opstree1234 set foo-1 bar-1
8181
check:
8282
($stdout=='OK'): true
8383
- script:
8484
timeout: 10s
8585
content: |
86-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-2 -- redis-cli -c -p 6379 -a Opstree@1234 set foo-2 bar-2
86+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-2 -- redis-cli -c -p 6379 -a Opstree1234 set foo-2 bar-2
8787
check:
8888
($stdout=='OK'): true
8989
- script:
9090
timeout: 10s
9191
content: |
92-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-0 -- redis-cli -c -p 6379 -a Opstree@1234 set foo-3 bar-3
92+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-0 -- redis-cli -c -p 6379 -a Opstree1234 set foo-3 bar-3
9393
check:
9494
($stdout=='OK'): true
9595
- script:
9696
timeout: 10s
9797
content: |
98-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-1 -- redis-cli -c -p 6379 -a Opstree@1234 set foo-4 bar-4
98+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-1 -- redis-cli -c -p 6379 -a Opstree1234 set foo-4 bar-4
9999
check:
100100
($stdout=='OK'): true
101101
- script:
102102
timeout: 10s
103103
content: |
104-
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-2 -- redis-cli -c -p 6379 -a Opstree@1234 set foo-5 bar-5
104+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-2 -- redis-cli -c -p 6379 -a Opstree1234 set foo-5 bar-5
105105
check:
106106
($stdout=='OK'): true
107107

@@ -181,4 +181,43 @@ spec:
181181
content: |
182182
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-2 -- redis-cli -c -p 6379 set foo-5 bar-5
183183
check:
184-
($stdout=='NOAUTH Authentication required.'): true
184+
($stdout=='NOAUTH Authentication required.'): true
185+
186+
- name: Test Redis Exporter
187+
try:
188+
- script:
189+
timeout: 30s
190+
content: |
191+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-0 -- wget -qO- http://localhost:9121/metrics | grep -v '^#' | grep -E '\bredis_up\b' | awk '{print $2}'
192+
check:
193+
($stdout=='1'): true
194+
- script:
195+
timeout: 30s
196+
content: |
197+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-1 -- wget -qO- http://localhost:9121/metrics | grep -v '^#' | grep -E '\bredis_up\b' | awk '{print $2}'
198+
check:
199+
($stdout=='1'): true
200+
- script:
201+
timeout: 30s
202+
content: |
203+
kubectl exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-leader redis-cluster-v1beta2-leader-2 -- wget -qO- http://localhost:9121/metrics | grep -v '^#' | grep -E '\bredis_up\b' | awk '{print $2}'
204+
check:
205+
($stdout=='1'): true
206+
- script:
207+
timeout: 30s
208+
content: |
209+
kubeclt exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-0 -- wget -qO- http://localhost:9121/metrics | grep -v '^#' | grep -E '\bredis_up\b' | awk '{print $2}'
210+
check:
211+
($stdout=='1'): true
212+
- script:
213+
timeout: 30s
214+
content: |
215+
kubeclt exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-1 -- wget -qO- http://localhost:9121/metrics | grep -v '^#' | grep -E '\bredis_up\b' | awk '{print $2}'
216+
check:
217+
($stdout=='1'): true
218+
- script:
219+
timeout: 30s
220+
content: |
221+
kubeclt exec --namespace ${NAMESPACE} --container redis-cluster-v1beta2-follower redis-cluster-v1beta2-follower-2 -- wget -qO- http://localhost:9121/metrics | grep -v '^#' | grep -E '\bredis_up\b' | awk '{print $2}'
222+
check:
223+
($stdout=='1'): true

tests/e2e-chainsaw/v1beta2/password/redis-cluster/secret.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ kind: Secret
44
metadata:
55
name: redis-secret
66
data:
7-
password: T3BzdHJlZUAxMjM0Cg==
7+
password: T3BzdHJlZTEyMzQ=
88
type: Opaque

tests/e2e-chainsaw/v1beta2/password/redis-replication/chainsaw-test.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,19 @@ spec:
3030
- script:
3131
timeout: 10s
3232
content: |
33-
kubectl exec --namespace ${NAMESPACE} redis-replication-0 -- redis-cli -p 6379 -a Opstree@1234 ping
33+
kubectl exec --namespace ${NAMESPACE} redis-replication-0 -- redis-cli -p 6379 -a Opstree1234 ping
3434
check:
3535
($stdout=='PONG'): true
3636
- script:
3737
timeout: 10s
3838
content: |
39-
kubectl exec --namespace ${NAMESPACE} redis-replication-1 -- redis-cli -p 6379 -a Opstree@1234 ping
39+
kubectl exec --namespace ${NAMESPACE} redis-replication-1 -- redis-cli -p 6379 -a Opstree1234 ping
4040
check:
4141
($stdout=='PONG'): true
4242
- script:
4343
timeout: 10s
4444
content: |
45-
kubectl exec --namespace ${NAMESPACE} redis-replication-2 -- redis-cli -p 6379 -a Opstree@1234 ping
45+
kubectl exec --namespace ${NAMESPACE} redis-replication-2 -- redis-cli -p 6379 -a Opstree1234 ping
4646
check:
4747
($stdout=='PONG'): true
4848

@@ -51,19 +51,19 @@ spec:
5151
- script:
5252
timeout: 10s
5353
content: |
54-
kubectl exec --namespace ${NAMESPACE} redis-replication-0 -- redis-cli -p 6379 -a Opstree@1234 set foo-0 bar-0
54+
kubectl exec --namespace ${NAMESPACE} redis-replication-0 -- redis-cli -p 6379 -a Opstree1234 set foo-0 bar-0
5555
check:
5656
($stdout=='OK'): true
5757
# - script:
5858
# timeout: 10s
5959
# content: |
60-
# kubectl exec --namespace ${NAMESPACE} redis-replication-1 -- redis-cli -p 6379 -a Opstree@1234 set foo-1 bar-1
60+
# kubectl exec --namespace ${NAMESPACE} redis-replication-1 -- redis-cli -p 6379 -a Opstree1234 set foo-1 bar-1
6161
# check:
6262
# ($stdout=='READONLY You can't write against a read only replica.'): true
6363
# - script:
6464
# timeout: 10s
6565
# content: |
66-
# kubectl exec --namespace ${NAMESPACE} redis-replication-2 -- redis-cli -p 6379 -a Opstree@1234 set foo-2 bar-2
66+
# kubectl exec --namespace ${NAMESPACE} redis-replication-2 -- redis-cli -p 6379 -a Opstree1234 set foo-2 bar-2
6767
# check:
6868
# ($stdout=='READONLY You can't write against a read only replica.'): true
6969

tests/e2e-chainsaw/v1beta2/password/redis-replication/secret.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ kind: Secret
44
metadata:
55
name: redis-secret
66
data:
7-
password: T3BzdHJlZUAxMjM0Cg==
7+
password: T3BzdHJlZTEyMzQ=
88
type: Opaque
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
2+
3+
apiVersion: chainsaw.kyverno.io/v1alpha1
4+
kind: Test
5+
metadata:
6+
name: redis-replication-password
7+
spec:
8+
steps:
9+
- try:
10+
- apply:
11+
file: standalone.yaml
12+
- apply:
13+
file: secret.yaml
14+
- assert:
15+
file: ready-sts.yaml
16+
- assert:
17+
file: ready-svc.yaml
18+
- assert:
19+
file: ready-pvc.yaml
20+
- assert:
21+
file: secret.yaml
22+
23+
- name: Sleep for five minutes
24+
try:
25+
- sleep:
26+
duration: 5m
27+
28+
- name: Try saving a key With Password
29+
try:
30+
- script:
31+
timeout: 10s
32+
content: |
33+
kubectl exec --namespace ${NAMESPACE} redis-standalone-v1beta2-0 -c redis-standalone-v1beta2 -- redis-cli -p 6379 -a Opstree1234 set foo-0 bar-0
34+
check:
35+
($stdout=='OK'): true
36+
37+
- name: Try saving a key Without Password
38+
try:
39+
- script:
40+
timeout: 10s
41+
content: |
42+
kubectl exec --namespace ${NAMESPACE} redis-standalone-v1beta2-0 -c redis-standalone-v1beta2 -- redis-cli -p 6379 set foo-0 bar-0
43+
check:
44+
($stdout=='NOAUTH Authentication required.'): true
45+
46+
- name: Test Redis Exporter
47+
try:
48+
- script:
49+
timeout: 30s
50+
content: |
51+
kubectl exec --namespace ${NAMESPACE} redis-standalone-v1beta2-0 -c redis-standalone-v1beta2 -- wget -qO- http://localhost:9121/metrics | grep -v '^#' | grep -E '\bredis_up\b' | awk '{print $2}'
52+
check:
53+
($stdout=='1'): true
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: v1
2+
kind: PersistentVolumeClaim
3+
metadata:
4+
name: redis-standalone-v1beta2-redis-standalone-v1beta2-0
5+
labels:
6+
app: redis-standalone-v1beta2
7+
redis_setup_type: standalone
8+
role: standalone
9+
status:
10+
accessModes:
11+
- ReadWriteOnce
12+
capacity:
13+
storage: 1Gi
14+
phase: Bound
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: apps/v1
2+
kind: StatefulSet
3+
metadata:
4+
name: redis-standalone-v1beta2
5+
labels:
6+
app: redis-standalone-v1beta2
7+
redis_setup_type: standalone
8+
role: standalone
9+
status:
10+
replicas: 1
11+
readyReplicas: 1
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
annotations:
5+
prometheus.io/port: "9121"
6+
prometheus.io/scrape: "true"
7+
redis.opstreelabs.in: "true"
8+
redis.opstreelabs.instance: redis-standalone-v1beta2
9+
labels:
10+
app: redis-standalone-v1beta2
11+
redis_setup_type: standalone
12+
role: standalone
13+
name: redis-standalone-v1beta2-headless
14+
ownerReferences:
15+
- apiVersion: redis.redis.opstreelabs.in/v1beta2
16+
controller: true
17+
kind: Redis
18+
name: redis-standalone-v1beta2
19+
spec:
20+
clusterIP: None
21+
ports:
22+
- name: redis-client
23+
port: 6379
24+
protocol: TCP
25+
targetPort: 6379
26+
selector:
27+
app: redis-standalone-v1beta2
28+
redis_setup_type: standalone
29+
role: standalone
30+
type: ClusterIP
31+
status:
32+
loadBalancer: {}
33+
---
34+
apiVersion: v1
35+
kind: Service
36+
metadata:
37+
annotations:
38+
prometheus.io/port: "9121"
39+
prometheus.io/scrape: "true"
40+
redis.opstreelabs.in: "true"
41+
redis.opstreelabs.instance: redis-standalone-v1beta2
42+
labels:
43+
app: redis-standalone-v1beta2
44+
redis_setup_type: standalone
45+
role: standalone
46+
name: redis-standalone-v1beta2
47+
ownerReferences:
48+
- apiVersion: redis.redis.opstreelabs.in/v1beta2
49+
controller: true
50+
kind: Redis
51+
name: redis-standalone-v1beta2
52+
spec:
53+
ports:
54+
- name: redis-client
55+
port: 6379
56+
protocol: TCP
57+
targetPort: 6379
58+
selector:
59+
app: redis-standalone-v1beta2
60+
redis_setup_type: standalone
61+
role: standalone
62+
type: ClusterIP
63+
status:
64+
loadBalancer: {}
65+
---
66+
apiVersion: v1
67+
kind: Service
68+
metadata:
69+
annotations:
70+
prometheus.io/port: "9121"
71+
prometheus.io/scrape: "true"
72+
redis.opstreelabs.in: "true"
73+
redis.opstreelabs.instance: redis-standalone-v1beta2
74+
labels:
75+
app: redis-standalone-v1beta2
76+
redis_setup_type: standalone
77+
role: standalone
78+
name: redis-standalone-v1beta2-additional
79+
ownerReferences:
80+
- apiVersion: redis.redis.opstreelabs.in/v1beta2
81+
controller: true
82+
kind: Redis
83+
name: redis-standalone-v1beta2
84+
spec:
85+
ports:
86+
- name: redis-client
87+
port: 6379
88+
protocol: TCP
89+
targetPort: 6379
90+
selector:
91+
app: redis-standalone-v1beta2
92+
redis_setup_type: standalone
93+
role: standalone
94+
type: ClusterIP
95+
status:
96+
loadBalancer: {}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: redis-secret
6+
data:
7+
password: T3BzdHJlZTEyMzQ=
8+
type: Opaque

0 commit comments

Comments
 (0)