Skip to content

Commit 05f0469

Browse files
authored
conformance testing pattern (#669)
* conformance testing pattern * conformance experiment
1 parent b26f1cc commit 05f0469

File tree

10 files changed

+203
-216
lines changed

10 files changed

+203
-216
lines changed

.github/workflows/knative-e2e-tests.yaml

Lines changed: 43 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ jobs:
109109
export ITER8=$(pwd)
110110
source $ITER8/samples/knative/canary/check.sh
111111
112-
canary-progressive-helm:
113-
name: progressive canary experiment using helm
112+
conformance:
113+
name: conformance experiment
114114
runs-on: ubuntu-latest
115115
steps:
116116
- name: Checkout repository
@@ -121,29 +121,20 @@ jobs:
121121
- name: platform setup
122122
run: |
123123
export ITER8=$(pwd)
124-
$ITER8/samples/knative/quickstart/platformsetup.sh kourier
125-
126-
- uses: azure/setup-helm@v1
127-
128-
- name: RBAC rules for helm
129-
run: |
130-
export ITER8=$(pwd)
131-
kubectl apply -f ${ITER8}/samples/knative/canaryprogressive/helm-rbac.yaml
124+
$ITER8/samples/knative/quickstart/platformsetup.sh contour
132125
133-
- name: create Knative app with canary
126+
- name: create Knative app
134127
run: |
135128
export ITER8=$(pwd)
136-
helm install --repo https://raw.githubusercontent.com/iter8-tools/iter8/master/samples/knative/canaryprogressive/helm-repo sample-app sample-app --namespace=default
137-
kubectl wait ksvc/sample-app --for condition=Ready --timeout=240s
138-
helm upgrade --install --repo https://raw.githubusercontent.com/iter8-tools/iter8/master/samples/knative/canaryprogressive/helm-repo sample-app sample-app --values=https://raw.githubusercontent.com/iter8-tools/iter8/master/samples/knative/canaryprogressive/experimental-values.yaml --namespace=default
129+
kubectl apply -f $ITER8/samples/knative/conformance/baseline.yaml
139130
kubectl wait --for=condition=Ready ksvc/sample-app --timeout=240s
140131
141132
- name: Generate requests
142133
run: |
143134
export ITER8=$(pwd)
144-
sed -i "s/6000s/120s/g" $ITER8/samples/knative/canaryprogressive/fortio.yaml
135+
sed -i "s/6000s/120s/g" $ITER8/samples/knative/conformance/fortio.yaml
145136
URL_VALUE=$(kubectl get ksvc sample-app -o json | jq .status.address.url)
146-
sed "s+URL_VALUE+${URL_VALUE}+g" $ITER8/samples/knative/canaryprogressive/fortio.yaml | kubectl apply -f -
137+
sed "s+URL_VALUE+${URL_VALUE}+g" $ITER8/samples/knative/conformance/fortio.yaml | kubectl apply -f -
147138
148139
# Wait for Fortio to be ready
149140
pod_name=$(kubectl get pods --selector=job-name=fortio -o jsonpath='{.items[*].metadata.name}')
@@ -156,21 +147,20 @@ jobs:
156147
# Define metrics
157148
kubectl apply -f $ITER8/samples/knative/quickstart/metrics.yaml
158149
159-
export ITER8=$(pwd)
160-
kubectl apply -f $ITER8/samples/knative/canaryprogressive/experiment.yaml
150+
kubectl apply -f $ITER8/samples/knative/conformance/experiment.yaml
161151
162152
- name: Sleep until end of experiment
163153
run: |
164154
sleep 150.0
165-
kubectl get experiment canary-progressive -o yaml
155+
kubectl get experiment conformance-exp -o yaml
166156
167157
- name: Check if experiment is complete and successful
168158
run: |
169159
export ITER8=$(pwd)
170-
source $ITER8/samples/knative/canaryprogressive/check.sh
171-
172-
canary-fixedsplit-kustomize:
173-
name: fixedsplit canary experiment with kustomize
160+
source $ITER8/samples/knative/conformance/check.sh
161+
162+
canary-progressive-helm:
163+
name: progressive canary experiment using helm
174164
runs-on: ubuntu-latest
175165
steps:
176166
- name: Checkout repository
@@ -181,22 +171,29 @@ jobs:
181171
- name: platform setup
182172
run: |
183173
export ITER8=$(pwd)
184-
$ITER8/samples/knative/quickstart/platformsetup.sh contour
174+
$ITER8/samples/knative/quickstart/platformsetup.sh kourier
175+
176+
- uses: azure/setup-helm@v1
177+
178+
- name: RBAC rules for helm
179+
run: |
180+
export ITER8=$(pwd)
181+
kubectl apply -f ${ITER8}/samples/knative/canaryprogressive/helm-rbac.yaml
185182
186183
- name: create Knative app with canary
187184
run: |
188185
export ITER8=$(pwd)
189-
kustomize build $ITER8/samples/knative/canaryfixedsplit/baseline | kubectl apply -f -
186+
helm install --repo https://raw.githubusercontent.com/iter8-tools/iter8/master/samples/knative/canaryprogressive/helm-repo sample-app sample-app --namespace=default
190187
kubectl wait ksvc/sample-app --for condition=Ready --timeout=240s
191-
kustomize build $ITER8/samples/knative/canaryfixedsplit/experimentalservice | kubectl apply -f -
188+
helm upgrade --install --repo https://raw.githubusercontent.com/iter8-tools/iter8/master/samples/knative/canaryprogressive/helm-repo sample-app sample-app --values=https://raw.githubusercontent.com/iter8-tools/iter8/master/samples/knative/canaryprogressive/experimental-values.yaml --namespace=default
189+
kubectl wait --for=condition=Ready ksvc/sample-app --timeout=240s
192190
193191
- name: Generate requests
194192
run: |
195193
export ITER8=$(pwd)
196-
kubectl wait --for=condition=Ready ksvc/sample-app --timeout=240s
197-
sed -i "s/6000s/120s/g" $ITER8/samples/knative/canaryfixedsplit/fortio.yaml
194+
sed -i "s/6000s/120s/g" $ITER8/samples/knative/canaryprogressive/fortio.yaml
198195
URL_VALUE=$(kubectl get ksvc sample-app -o json | jq .status.address.url)
199-
sed "s+URL_VALUE+${URL_VALUE}+g" $ITER8/samples/knative/canaryfixedsplit/fortio.yaml | kubectl apply -f -
196+
sed "s+URL_VALUE+${URL_VALUE}+g" $ITER8/samples/knative/canaryprogressive/fortio.yaml | kubectl apply -f -
200197
201198
# Wait for Fortio to be ready
202199
pod_name=$(kubectl get pods --selector=job-name=fortio -o jsonpath='{.items[*].metadata.name}')
@@ -209,20 +206,21 @@ jobs:
209206
# Define metrics
210207
kubectl apply -f $ITER8/samples/knative/quickstart/metrics.yaml
211208
212-
kubectl apply -f $ITER8/samples/knative/canaryfixedsplit/experiment.yaml
209+
export ITER8=$(pwd)
210+
kubectl apply -f $ITER8/samples/knative/canaryprogressive/experiment.yaml
213211
214212
- name: Sleep until end of experiment
215213
run: |
216214
sleep 150.0
217-
kubectl get experiment canary-fixedsplit -o yaml
215+
kubectl get experiment canary-progressive -o yaml
218216
219217
- name: Check if experiment is complete and successful
220218
run: |
221219
export ITER8=$(pwd)
222-
source $ITER8/samples/knative/canaryfixedsplit/check.sh
220+
source $ITER8/samples/knative/canaryprogressive/check.sh
223221
224-
conformance:
225-
name: conformance
222+
canary-fixedsplit-kustomize:
223+
name: fixedsplit canary experiment with kustomize
226224
runs-on: ubuntu-latest
227225
steps:
228226
- name: Checkout repository
@@ -235,18 +233,20 @@ jobs:
235233
export ITER8=$(pwd)
236234
$ITER8/samples/knative/quickstart/platformsetup.sh contour
237235
238-
- name: create Knative app
236+
- name: create Knative app with canary
239237
run: |
240238
export ITER8=$(pwd)
241-
kubectl apply -f $ITER8/samples/knative/conformance/baseline.yaml
242-
kubectl wait --for=condition=Ready ksvc/sample-app --timeout=240s
239+
kustomize build $ITER8/samples/knative/canaryfixedsplit/baseline | kubectl apply -f -
240+
kubectl wait ksvc/sample-app --for condition=Ready --timeout=240s
241+
kustomize build $ITER8/samples/knative/canaryfixedsplit/experimentalservice | kubectl apply -f -
243242
244243
- name: Generate requests
245244
run: |
246245
export ITER8=$(pwd)
247-
sed -i "s/6000s/120s/g" $ITER8/samples/knative/conformance/fortio.yaml
246+
kubectl wait --for=condition=Ready ksvc/sample-app --timeout=240s
247+
sed -i "s/6000s/120s/g" $ITER8/samples/knative/canaryfixedsplit/fortio.yaml
248248
URL_VALUE=$(kubectl get ksvc sample-app -o json | jq .status.address.url)
249-
sed "s+URL_VALUE+${URL_VALUE}+g" $ITER8/samples/knative/conformance/fortio.yaml | kubectl apply -f -
249+
sed "s+URL_VALUE+${URL_VALUE}+g" $ITER8/samples/knative/canaryfixedsplit/fortio.yaml | kubectl apply -f -
250250
251251
# Wait for Fortio to be ready
252252
pod_name=$(kubectl get pods --selector=job-name=fortio -o jsonpath='{.items[*].metadata.name}')
@@ -259,14 +259,15 @@ jobs:
259259
# Define metrics
260260
kubectl apply -f $ITER8/samples/knative/quickstart/metrics.yaml
261261
262-
kubectl apply -f $ITER8/samples/knative/conformance/experiment.yaml
262+
kubectl apply -f $ITER8/samples/knative/canaryfixedsplit/experiment.yaml
263263
264264
- name: Sleep until end of experiment
265265
run: |
266266
sleep 150.0
267-
kubectl get experiment conformance-sample -o yaml
267+
kubectl get experiment canary-fixedsplit -o yaml
268268
269269
- name: Check if experiment is complete and successful
270270
run: |
271271
export ITER8=$(pwd)
272-
source $ITER8/samples/knative/conformance/check.sh
272+
source $ITER8/samples/knative/canaryfixedsplit/check.sh
273+
104 KB
Loading

mkdocs/docs/images/conformance.png

-2.07 KB
Loading
Binary file not shown.
-33 Bytes
Binary file not shown.

mkdocs/docs/tutorials/knative/conformance.md

Lines changed: 0 additions & 170 deletions
This file was deleted.

0 commit comments

Comments
 (0)