Merge "Prune Docker images on lf-build5/6 to save space"
[releng.git] / jjb / functest / functest-kubernetes-pi.yaml
1 ---
2 - functest-kubernetes-pi-containers: &functest-kubernetes-pi-containers
3     name: 'functest-kubernetes-pi-containers'
4     repo: '{repo}'
5     port: '{port}'
6     container: '{container}'
7     tag: '{tag}'
8
9 - functest-kubernetes-pi-params: &functest-kubernetes-pi-params
10     name: 'functest-kubernetes-pi-params'
11     repo: 'ollivier'
12     port:
13     tag:
14       - latest:
15           slave: lf-virtual1-6
16       - leguer:
17           slave: lf-virtual1-5
18       - kali:
19           slave: lf-virtual1-4
20       - jerma:
21           slave: lf-virtual1-3
22       - iruya:
23           slave: lf-virtual1-2
24       - hunter:
25           slave: lf-virtual1-1
26       - arm-latest:
27           slave: lf-virtual1-6
28       - arm-leguer:
29           slave: lf-virtual1-5
30       - arm-kali:
31           slave: lf-virtual1-4
32       - arm-jerma:
33           slave: lf-virtual1-3
34       - arm-iruya:
35           slave: lf-virtual1-2
36       - arm-hunter:
37           slave: lf-virtual1-1
38       - arm64-latest:
39           slave: lf-virtual1-6
40       - arm64-leguer:
41           slave: lf-virtual1-5
42       - arm64-kali:
43           slave: lf-virtual1-4
44       - arm64-jerma:
45           slave: lf-virtual1-3
46       - arm64-iruya:
47           slave: lf-virtual1-2
48       - arm64-hunter:
49           slave: lf-virtual1-1
50
51 - functest-kubernetes-pi-jobs: &functest-kubernetes-pi-jobs
52     name: 'functest-kubernetes-pi-jobs'
53     current-parameters: true
54
55 - parameter:
56     name: functest-kubernetes-pi-slave
57     parameters:
58       - label:
59           name: slave
60           default: '{slave}'
61
62 - parameter:
63     name: functest-kubernetes-pi-build_tag
64     parameters:
65       - random-string:
66           name: build_tag
67
68 - parameter:
69     name: functest-kubernetes-pi-DEPLOY_SCENARIO
70     parameters:
71       - string:
72           name: DEPLOY_SCENARIO
73           default: k8-nosdn-nofeature-noha
74
75 - functest-kubernetes-pi-run-containers: &functest-kubernetes-pi-run-containers
76     name: 'functest-kubernetes-pi-run-containers'
77     <<: *functest-kubernetes-pi-containers
78     test: '{test}'
79     privileged: '{privileged}'
80     network: '{network}'
81
82 - builder:
83     name: functest-kubernetes-pi-pull-containers
84     builders:
85       - shell: |
86           set +x
87           if [ "{repo}" = "_" ]; then
88             image={container}:{tag}
89           elif [ "{port}" = "None" ]; then
90             image={repo}/{container}:{tag}
91           else
92             image={repo}:{port}/{container}:{tag}
93           fi
94           docker pull $image
95
96 - builder:
97     name: functest-kubernetes-pi-run-containers
98     builders:
99       - shell: |
100           set +x
101           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true
102           if [ "{repo}" = "_" ]; then
103             image={container}:{tag}
104           elif [ "{port}" = "None" ]; then
105             image={repo}/{container}:{tag}
106           else
107             image={repo}:{port}/{container}:{tag}
108           fi
109           docker run --rm \
110             --privileged={privileged} \
111             --network={network} \
112             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
113             -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
114             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
115             -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
116             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
117             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
118             -e NODE_NAME=$slave \
119             -e BUILD_TAG=$BUILD_TAG \
120             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
121             -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \
122             -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \
123             $image run_tests -t {test} -p -r
124
125 - builder:
126     name: functest-kubernetes-pi-remove-images
127     builders:
128       - shell: |
129           set +x
130           if [ "{repo}" = "_" ]; then
131             image={container}:{tag}
132           elif [ "{port}" = "None" ]; then
133             image={repo}/{container}:{tag}
134           else
135             image={repo}:{port}/{container}:{tag}
136           fi
137           docker rmi $image || true
138
139 - job-template:
140     name: 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull'
141     parameters:
142       - functest-kubernetes-pi-slave:
143           slave: '{slave}'
144     builders:
145       - functest-kubernetes-pi-pull-containers:
146           <<: *functest-kubernetes-pi-containers
147
148 - project:
149     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-pull'
150     <<: *functest-kubernetes-pi-params
151     container: 'functest-kubernetes-healthcheck'
152     jobs:
153       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull'
154
155 - project:
156     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-pull'
157     <<: *functest-kubernetes-pi-params
158     container: 'functest-kubernetes-smoke'
159     jobs:
160       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull'
161
162 - project:
163     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-pull'
164     <<: *functest-kubernetes-pi-params
165     container: 'functest-kubernetes-security'
166     jobs:
167       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull'
168
169 - project:
170     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-pull'
171     <<: *functest-kubernetes-pi-params
172     container: 'functest-kubernetes-benchmarking'
173     jobs:
174       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull'
175
176 - project:
177     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-pull'
178     <<: *functest-kubernetes-pi-params
179     container: 'functest-kubernetes-cnf'
180     jobs:
181       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull'
182
183 - job-template:
184     name: 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi'
185     parameters:
186       - functest-kubernetes-pi-slave:
187           slave: '{slave}'
188     builders:
189       - functest-kubernetes-pi-remove-images:
190           <<: *functest-kubernetes-pi-containers
191
192 - project:
193     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-rmi'
194     <<: *functest-kubernetes-pi-params
195     container: 'functest-kubernetes-healthcheck'
196     jobs:
197       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi'
198
199 - project:
200     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-rmi'
201     <<: *functest-kubernetes-pi-params
202     container: 'functest-kubernetes-smoke'
203     jobs:
204       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi'
205
206 - project:
207     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-rmi'
208     <<: *functest-kubernetes-pi-params
209     container: 'functest-kubernetes-security'
210     jobs:
211       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi'
212
213 - project:
214     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-rmi'
215     <<: *functest-kubernetes-pi-params
216     container: 'functest-kubernetes-benchmarking'
217     jobs:
218       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi'
219
220 - project:
221     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-rmi'
222     <<: *functest-kubernetes-pi-params
223     container: 'functest-kubernetes-cnf'
224     jobs:
225       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi'
226
227 - job-template:
228     name: 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run'
229     parameters:
230       - functest-kubernetes-pi-slave:
231           slave: '{slave}'
232       - functest-kubernetes-pi-build_tag:
233           build_tag: ''
234       - functest-kubernetes-pi-DEPLOY_SCENARIO:
235           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
236     builders:
237       - functest-kubernetes-pi-run-containers:
238           <<: *functest-kubernetes-pi-run-containers
239
240 - project:
241     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck'
242     <<: *functest-kubernetes-pi-params
243     container: 'functest-kubernetes-healthcheck'
244     test:
245       - k8s_quick
246       - k8s_smoke
247     privileged: 'false'
248     network: bridge
249     jobs:
250       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run'
251
252 - project:
253     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke'
254     <<: *functest-kubernetes-pi-params
255     container: 'functest-kubernetes-smoke'
256     test:
257       - xrally_kubernetes
258       - k8s_conformance
259       - sig_network
260       - sig_network_features
261       - sig_storage
262     privileged: 'false'
263     network: bridge
264     exclude:
265       - {'tag': 'leguer', 'test': 'sig_network'}
266       - {'tag': 'leguer', 'test': 'sig_network_features'}
267       - {'tag': 'leguer', 'test': 'sig_storage'}
268       - {'tag': 'kali', 'test': 'sig_network'}
269       - {'tag': 'kali', 'test': 'sig_network_features'}
270       - {'tag': 'kali', 'test': 'sig_storage'}
271       - {'tag': 'jerma', 'test': 'sig_network'}
272       - {'tag': 'jerma', 'test': 'sig_network_features'}
273       - {'tag': 'jerma', 'test': 'sig_storage'}
274       - {'tag': 'iruya', 'test': 'sig_network'}
275       - {'tag': 'iruya', 'test': 'sig_network_features'}
276       - {'tag': 'iruya', 'test': 'sig_storage'}
277       - {'tag': 'hunter', 'test': 'sig_network'}
278       - {'tag': 'hunter', 'test': 'sig_network_features'}
279       - {'tag': 'hunter', 'test': 'sig_storage'}
280       - {'tag': 'arm-leguer', 'test': 'sig_network'}
281       - {'tag': 'arm-leguer', 'test': 'sig_network_features'}
282       - {'tag': 'arm-leguer', 'test': 'sig_storage'}
283       - {'tag': 'arm-kali', 'test': 'sig_network'}
284       - {'tag': 'arm-kali', 'test': 'sig_network_features'}
285       - {'tag': 'arm-kali', 'test': 'sig_storage'}
286       - {'tag': 'arm-jerma', 'test': 'sig_network'}
287       - {'tag': 'arm-jerma', 'test': 'sig_network_features'}
288       - {'tag': 'arm-jerma', 'test': 'sig_storage'}
289       - {'tag': 'arm-iruya', 'test': 'sig_network'}
290       - {'tag': 'arm-iruya', 'test': 'sig_network_features'}
291       - {'tag': 'arm-iruya', 'test': 'sig_storage'}
292       - {'tag': 'arm-hunter', 'test': 'sig_network'}
293       - {'tag': 'arm-hunter', 'test': 'sig_network_features'}
294       - {'tag': 'arm-hunter', 'test': 'sig_storage'}
295       - {'tag': 'arm64-leguer', 'test': 'sig_network'}
296       - {'tag': 'arm64-leguer', 'test': 'sig_network_features'}
297       - {'tag': 'arm64-leguer', 'test': 'sig_storage'}
298       - {'tag': 'arm64-kali', 'test': 'sig_network'}
299       - {'tag': 'arm64-kali', 'test': 'sig_network_features'}
300       - {'tag': 'arm64-kali', 'test': 'sig_storage'}
301       - {'tag': 'arm64-jerma', 'test': 'sig_network'}
302       - {'tag': 'arm64-jerma', 'test': 'sig_network_features'}
303       - {'tag': 'arm64-jerma', 'test': 'sig_storage'}
304       - {'tag': 'arm64-iruya', 'test': 'sig_network'}
305       - {'tag': 'arm64-iruya', 'test': 'sig_network_features'}
306       - {'tag': 'arm64-iruya', 'test': 'sig_storage'}
307       - {'tag': 'arm64-hunter', 'test': 'sig_network'}
308       - {'tag': 'arm64-hunter', 'test': 'sig_network_features'}
309       - {'tag': 'arm64-hunter', 'test': 'sig_storage'}
310     jobs:
311       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run'
312
313 - project:
314     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security'
315     <<: *functest-kubernetes-pi-params
316     container: 'functest-kubernetes-security'
317     test:
318       - kube_hunter
319       - kube_bench_master
320       - kube_bench_node
321     privileged: 'false'
322     network: bridge
323     jobs:
324       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run'
325
326 - project:
327     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking'
328     <<: *functest-kubernetes-pi-params
329     container: 'functest-kubernetes-benchmarking'
330     test:
331       - xrally_kubernetes_full
332     privileged: 'false'
333     network: bridge
334     jobs:
335       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run'
336
337 - project:
338     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf'
339     <<: *functest-kubernetes-pi-params
340     container: 'functest-kubernetes-cnf'
341     test:
342       - k8s_vims
343       - helm_vims
344       - cnf_conformance
345     privileged: 'false'
346     network: bridge
347     jobs:
348       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run'
349
350
351 - builder:
352     name: functest-kubernetes-pi-zip
353     builders:
354       - shell: |
355           set +x
356           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true
357           if [ "{repo}" = "_" ]; then
358             image={container}:{tag}
359           elif [ "{port}" = "None" ]; then
360             image={repo}/{container}:{tag}
361           else
362             image={repo}:{port}/{container}:{tag}
363           fi
364           docker run --rm \
365             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
366             -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \
367             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \
368             -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
369             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
370             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
371             -e BUILD_TAG=$BUILD_TAG \
372             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
373             -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \
374             -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \
375             $image zip_campaign
376
377 - job-template:
378     name: 'functest-kubernetes-pi-{tag}-zip'
379     parameters:
380       - functest-kubernetes-pi-slave:
381           slave: '{slave}'
382       - functest-kubernetes-pi-build_tag:
383           build_tag: ''
384       - functest-kubernetes-pi-DEPLOY_SCENARIO:
385           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
386     builders:
387       - functest-kubernetes-pi-zip:
388           <<: *functest-kubernetes-pi-containers
389
390 - project:
391     name: 'functest-kubernetes-pi-{tag}-zip'
392     <<: *functest-kubernetes-pi-params
393     container: 'functest-kubernetes-healthcheck'
394     jobs:
395       - 'functest-kubernetes-pi-{tag}-zip'
396
397 - job-template:
398     name: 'functest-kubernetes-pi-{tag}-daily'
399     project-type: multijob
400     triggers:
401       - timed: '@weekly'
402     parameters:
403       - functest-kubernetes-pi-slave:
404           slave: '{slave}'
405       - functest-kubernetes-pi-build_tag:
406           build_tag: ''
407       - functest-kubernetes-pi-DEPLOY_SCENARIO:
408           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
409     properties:
410       - build-blocker:
411           use-build-blocker: true
412           blocking-level: 'NODE'
413           blocking-jobs:
414             - '^functest-kubernetes-pi-{tag}-(daily|docker|review)$'
415     builders:
416       - multijob:
417           name: remove former images
418           projects:
419             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-rmi'
420               <<: *functest-kubernetes-pi-jobs
421             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-rmi'
422               <<: *functest-kubernetes-pi-jobs
423             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-rmi'
424               <<: *functest-kubernetes-pi-jobs
425             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-rmi'
426               <<: *functest-kubernetes-pi-jobs
427             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-rmi'
428               <<: *functest-kubernetes-pi-jobs
429       - multijob:
430           name: pull containers
431           projects:
432             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-pull'
433               <<: *functest-kubernetes-pi-jobs
434             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-pull'
435               <<: *functest-kubernetes-pi-jobs
436             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-pull'
437               <<: *functest-kubernetes-pi-jobs
438             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-pull'
439               <<: *functest-kubernetes-pi-jobs
440             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-pull'
441               <<: *functest-kubernetes-pi-jobs
442       - multijob:
443           name: ollivier/functest-kubernetes-healthcheck:{tag}
444           projects:
445             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
446               <<: *functest-kubernetes-pi-jobs
447             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
448               <<: *functest-kubernetes-pi-jobs
449       - multijob:
450           name: ollivier/functest-kubernetes-smoke:{tag}
451           projects:
452             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
453               <<: *functest-kubernetes-pi-jobs
454             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
455               <<: *functest-kubernetes-pi-jobs
456             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_network-run'
457               <<: *functest-kubernetes-pi-jobs
458             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_network_features-run'
459               <<: *functest-kubernetes-pi-jobs
460             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_storage-run'
461               <<: *functest-kubernetes-pi-jobs
462       - multijob:
463           name: ollivier/functest-kubernetes-security:{tag}
464           projects:
465             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-kube_hunter-run'
466               <<: *functest-kubernetes-pi-jobs
467             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-kube_bench_master-run'
468               <<: *functest-kubernetes-pi-jobs
469             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-kube_bench_node-run'
470               <<: *functest-kubernetes-pi-jobs
471       - multijob:
472           name: ollivier/functest-kubernetes-benchmarking:{tag}
473           projects:
474             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
475               <<: *functest-kubernetes-pi-jobs
476       - multijob:
477           name: ollivier/functest-kubernetes-cnf:{tag}
478           projects:
479             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-k8s_vims-run'
480               <<: *functest-kubernetes-pi-jobs
481             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-helm_vims-run'
482               <<: *functest-kubernetes-pi-jobs
483             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-cnf_conformance-run'
484               <<: *functest-kubernetes-pi-jobs
485       - multijob:
486           name: dump all campaign data
487           projects:
488             - name: 'functest-kubernetes-pi-{tag}-zip'
489               <<: *functest-kubernetes-pi-jobs
490
491 - project:
492     name: 'functest-kubernetes-pi-daily'
493     <<: *functest-kubernetes-pi-params
494     jobs:
495       - 'functest-kubernetes-pi-{tag}-daily'
496
497 - view:
498     name: functest-kubernetes-pi
499     view-type: list
500     columns:
501       - status
502       - weather
503       - job
504       - last-success
505       - last-failure
506       - last-duration
507     regex: ^functest-kubernetes-pi-[a-z-0-9.]+-daily$