Skip to content

Commit cc1380d

Browse files
Merge pull request #265 from omersch381/add_kuttl_tests
Improve Kuttl testing coverage
2 parents e991dfd + 3551dad commit cc1380d

16 files changed

+724
-5
lines changed

tests/kuttl/common/assert-sample-deployment.yaml

Lines changed: 121 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,88 @@ spec:
2121
customServiceConfig: |
2222
[DEFAULT]
2323
debug = true
24-
# status:
25-
# transportURLSecret: rabbitmq-transport-url-designate-designate-transport
24+
status:
25+
designateAPIReadyCount: 1
26+
designateBackendbind9ReadyCount: 1
27+
designateCentralReadyCount: 1
28+
designateMdnsReadyCount: 1
29+
designateProducerReadyCount: 1
30+
designateUnboundReadyCount: 1
31+
designateWorkerReadyCount: 1
32+
databaseHostname: openstack.designate-kuttl-tests.svc
33+
conditions:
34+
- message: Setup complete
35+
reason: Ready
36+
status: "True"
37+
type: Ready
38+
- message: DB create completed
39+
reason: Ready
40+
status: "True"
41+
type: DBReady
42+
- message: DBsync completed
43+
reason: Ready
44+
status: "True"
45+
type: DBSyncReady
46+
- message: Setup complete
47+
reason: Ready
48+
status: "True"
49+
type: DesignateAPIReady
50+
- message: Setup complete
51+
reason: Ready
52+
status: "True"
53+
type: DesignateBackendbind9Ready
54+
- message: Setup complete
55+
reason: Ready
56+
status: "True"
57+
type: DesignateCentralReady
58+
- message: Setup complete
59+
reason: Ready
60+
status: "True"
61+
type: DesignateMdnsReady
62+
- message: Setup complete
63+
reason: Ready
64+
status: "True"
65+
type: DesignateProducerReady
66+
- message: DesignateRabbitMqTransportURL successfully created
67+
reason: Ready
68+
status: "True"
69+
type: DesignateRabbitMqTransportURLReady
70+
- message: Setup complete
71+
reason: Ready
72+
status: "True"
73+
type: DesignateUnboundReady
74+
- message: Setup complete
75+
reason: Ready
76+
status: "True"
77+
type: DesignateWorkerReady
78+
- message: Input data complete
79+
reason: Ready
80+
status: "True"
81+
type: InputReady
82+
- message: MariaDBAccount creation complete
83+
reason: Ready
84+
status: "True"
85+
type: MariaDBAccountReady
86+
- message: NetworkAttachments completed
87+
reason: Ready
88+
status: "True"
89+
type: NetworkAttachmentsReady
90+
- message: RoleBinding created
91+
reason: Ready
92+
status: "True"
93+
type: RoleBindingReady
94+
- message: Role created
95+
reason: Ready
96+
status: "True"
97+
type: RoleReady
98+
- message: ServiceAccount created
99+
reason: Ready
100+
status: "True"
101+
type: ServiceAccountReady
102+
- message: Service config create completed
103+
reason: Ready
104+
status: "True"
105+
type: ServiceConfigReady
26106
---
27107
apiVersion: v1
28108
kind: Service
@@ -64,3 +144,42 @@ commands:
64144
exit 1
65145
fi
66146
exit 0
147+
- script: |
148+
tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}'
149+
imageTuples=$(oc get -n openstack-operators deployment designate-operator-controller-manager -o go-template="$tupleTemplate")
150+
for ITEM in $(echo $imageTuples); do
151+
# it is an image
152+
if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then
153+
NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_DESIGNATE_\([^_]*\)_.*|\1|')
154+
IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|')
155+
case $NAME in
156+
API)
157+
template='{{.spec.designateAPI.containerImage}}'
158+
;;
159+
CENTRAL)
160+
template='{{.spec.designateCentral.containerImage}}'
161+
;;
162+
MDNS)
163+
template='{{.spec.designateMdns.containerImage}}'
164+
;;
165+
PRODUCER)
166+
template='{{.spec.designateProducer.containerImage}}'
167+
;;
168+
WORKER)
169+
template='{{.spec.designateWorker.containerImage}}'
170+
;;
171+
BACKENDBIND9)
172+
template='{{.spec.designateBackendbind9.containerImage}}'
173+
;;
174+
UNBOUND)
175+
template='{{.spec.designateUnbound.containerImage}}'
176+
;;
177+
esac
178+
SERVICE_IMAGE=$(oc get -n $NAMESPACE designate designate -o go-template="$template")
179+
if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then
180+
echo "$NAME image does not equal $IMG_FROM_ENV (its current value is $SERVICE_IMAGE)"
181+
exit 1
182+
fi
183+
fi
184+
done
185+
exit 0

tests/kuttl/tests/basic/01-assert.yaml

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
apiVersion: designate.openstack.org/v1beta1
2+
kind: Designate
3+
metadata:
4+
name: designate
5+
spec:
6+
databaseInstance: openstack
7+
databaseAccount: designate
8+
serviceUser: designate
9+
secret: osp-secret
10+
preserveJobs: false
11+
designateAPI:
12+
replicas: 1
13+
designateCentral:
14+
replicas: 1
15+
designateWorker:
16+
replicas: 1
17+
designateProducer:
18+
replicas: 1
19+
designateUnbound:
20+
replicas: 1
21+
customServiceConfig: |
22+
[DEFAULT]
23+
debug = true
24+
status:
25+
designateAPIReadyCount: 1
26+
designateBackendbind9ReadyCount: 1
27+
designateCentralReadyCount: 1
28+
designateMdnsReadyCount: 1
29+
designateProducerReadyCount: 1
30+
designateUnboundReadyCount: 1
31+
designateWorkerReadyCount: 1
32+
databaseHostname: openstack.designate-kuttl-tests.svc
33+
conditions:
34+
- message: Setup complete
35+
reason: Ready
36+
status: "True"
37+
type: Ready
38+
- message: DB create completed
39+
reason: Ready
40+
status: "True"
41+
type: DBReady
42+
- message: DBsync completed
43+
reason: Ready
44+
status: "True"
45+
type: DBSyncReady
46+
- message: Setup complete
47+
reason: Ready
48+
status: "True"
49+
type: DesignateAPIReady
50+
- message: Setup complete
51+
reason: Ready
52+
status: "True"
53+
type: DesignateBackendbind9Ready
54+
- message: Setup complete
55+
reason: Ready
56+
status: "True"
57+
type: DesignateCentralReady
58+
- message: Setup complete
59+
reason: Ready
60+
status: "True"
61+
type: DesignateMdnsReady
62+
- message: Setup complete
63+
reason: Ready
64+
status: "True"
65+
type: DesignateProducerReady
66+
- message: DesignateRabbitMqTransportURL successfully created
67+
reason: Ready
68+
status: "True"
69+
type: DesignateRabbitMqTransportURLReady
70+
- message: Setup complete
71+
reason: Ready
72+
status: "True"
73+
type: DesignateUnboundReady
74+
- message: Setup complete
75+
reason: Ready
76+
status: "True"
77+
type: DesignateWorkerReady
78+
- message: Input data complete
79+
reason: Ready
80+
status: "True"
81+
type: InputReady
82+
- message: MariaDBAccount creation complete
83+
reason: Ready
84+
status: "True"
85+
type: MariaDBAccountReady
86+
- message: NetworkAttachments completed
87+
reason: Ready
88+
status: "True"
89+
type: NetworkAttachmentsReady
90+
- message: RoleBinding created
91+
reason: Ready
92+
status: "True"
93+
type: RoleBindingReady
94+
- message: Role created
95+
reason: Ready
96+
status: "True"
97+
type: RoleReady
98+
- message: ServiceAccount created
99+
reason: Ready
100+
status: "True"
101+
type: ServiceAccountReady
102+
- message: Service config create completed
103+
reason: Ready
104+
status: "True"
105+
type: ServiceConfigReady
106+
---
107+
apiVersion: v1
108+
kind: Service
109+
metadata:
110+
labels:
111+
endpoint: internal
112+
service: designate
113+
name: designate-internal
114+
spec:
115+
ports:
116+
- name: designate-internal
117+
selector:
118+
service: designate
119+
type: ClusterIP
120+
---
121+
apiVersion: v1
122+
kind: Service
123+
metadata:
124+
labels:
125+
endpoint: public
126+
service: designate
127+
name: designate-public
128+
spec:
129+
ports:
130+
- name: designate-public
131+
selector:
132+
service: designate
133+
type: ClusterIP
134+
---
135+
apiVersion: kuttl.dev/v1beta1
136+
kind: TestAssert
137+
commands:
138+
- script: |
139+
tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}'
140+
imageTuples=$(oc get -n openstack-operators deployment designate-operator-controller-manager -o go-template="$tupleTemplate")
141+
for ITEM in $(echo $imageTuples); do
142+
# it is an image
143+
if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then
144+
NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_DESIGNATE_\([^_]*\)_.*|\1|')
145+
IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|')
146+
case $NAME in
147+
API)
148+
template='{{.spec.designateAPI.containerImage}}'
149+
;;
150+
CENTRAL)
151+
template='{{.spec.designateCentral.containerImage}}'
152+
;;
153+
MDNS)
154+
template='{{.spec.designateMdns.containerImage}}'
155+
;;
156+
PRODUCER)
157+
template='{{.spec.designateProducer.containerImage}}'
158+
;;
159+
WORKER)
160+
template='{{.spec.designateWorker.containerImage}}'
161+
;;
162+
BACKENDBIND9)
163+
template='{{.spec.designateBackendbind9.containerImage}}'
164+
;;
165+
UNBOUND)
166+
template='{{.spec.designateUnbound.containerImage}}'
167+
;;
168+
esac
169+
SERVICE_IMAGE=$(oc get -n $NAMESPACE designate designate -o go-template="$template")
170+
if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then
171+
echo "$NAME image does not equal $IMG_FROM_ENV (its current value is $SERVICE_IMAGE)"
172+
exit 1
173+
fi
174+
fi
175+
done
176+
exit 0

tests/kuttl/tests/basic/ns-records-configmap/02-assert.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ metadata:
44
name: designate-ns-records-params
55
data:
66
ns_records: |
7-
- host: host1
7+
- hostname: ns1.example.com
88
priority: 1
9-
- host: host2
9+
- hostname: ns2.example.com
1010
priority: 2
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: k8s.cni.cncf.io/v1
2+
kind: NetworkAttachmentDefinition
3+
metadata:
4+
name: designate
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: |
5+
cp ../../common/designate_nad.yaml .
6+
oc apply -n $NAMESPACE -f designate_nad.yaml

0 commit comments

Comments
 (0)