Create Moselle stable branch for Thoth.
[releng.git] / jjb / functest / functest-kubernetes.yaml
1 ---
2 - functest-kubernetes-containers: &functest-kubernetes-containers
3     name: 'functest-kubernetes-containers'
4     repo: '{repo}'
5     port: '{port}'
6     container: '{container}'
7     tag: '{tag}'
8
9 - functest-kubernetes-params: &functest-kubernetes-params
10     name: 'functest-kubernetes-params'
11     repo: 'opnfv'
12     port:
13     tag:
14       - latest:
15           from:
16           build_args:
17           branch: master
18           slave: lf-virtual1-8
19           dependency: 3.14
20       - v1.24:
21           dependency: latest
22           from:
23           build_args:
24           branch: stable/v1.24
25           slave: lf-virtual1-9
26       - v1.23:
27           from:
28           build_args:
29           branch: stable/v1.23
30           slave: lf-virtual1-9
31           dependency: 3.14
32       - v1.22:
33           from:
34           build_args:
35           branch: stable/v1.22
36           slave: lf-virtual1-7
37           dependency: 3.14
38       - v1.21:
39           from:
40           build_args:
41           branch: stable/v1.21
42           slave: lf-virtual1-6
43           dependency: 3.13
44       - leguer:
45           from:
46           build_args:
47           branch: stable/leguer
48           slave: lf-virtual1-5
49           dependency: 3.12
50       - kali:
51           from:
52           build_args:
53           branch: stable/kali
54           slave: lf-virtual1-4
55           dependency: 3.11
56
57 - functest-kubernetes-jobs: &functest-kubernetes-jobs
58     name: 'functest-kubernetes-jobs'
59     current-parameters: true
60
61 - parameter:
62     name: functest-kubernetes-slave
63     parameters:
64       - label:
65           name: slave
66           default: '{slave}'
67
68 - parameter:
69     name: functest-kubernetes-build_tag
70     parameters:
71       - random-string:
72           name: build_tag
73
74 - parameter:
75     name: functest-kubernetes-DEPLOY_SCENARIO
76     parameters:
77       - string:
78           name: DEPLOY_SCENARIO
79           default: k8-nosdn-nofeature-noha
80
81 - parameter:
82     name: functest-kubernetes-E2E_TEST_OPTS
83     parameters:
84       - string:
85           name: E2E_TEST_OPTS
86           default: container-runtime:containerd
87
88 - functest-kubernetes-run-containers: &functest-kubernetes-run-containers
89     name: 'functest-kubernetes-run-containers'
90     <<: *functest-kubernetes-containers
91     test: '{test}'
92     privileged: '{privileged}'
93     volumes: '{volumes}'
94     env: '{env}'
95     network: '{network}'
96     uid: '{uid}'
97     gid: '{gid}'
98     published_ports: '{published_ports}'
99
100 - builder:
101     name: functest-kubernetes-pull-containers
102     builders:
103       - shell: |
104           set +x
105           if [ "{repo}" = "_" ]; then
106             image={container}:{tag}
107           elif [ "{port}" = "None" ]; then
108             image={repo}/{container}:{tag}
109           else
110             image={repo}:{port}/{container}:{tag}
111           fi
112           docker pull $image
113
114 - builder:
115     name: functest-kubernetes-run-containers
116     builders:
117       - shell: |
118           set +x
119           volumes=;
120           if [ "{volumes}" != "None" ]; then
121             for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
122               do volumes="-v $i $volumes"; done
123           fi
124           env=;
125           if [ "{env}" != "None" ]; then
126             for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
127               do env="-e $i $env"; done
128           fi
129           published_ports=;
130           if [ "{published_ports}" != "None" ]; then
131             for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
132               do published_ports="-p $i $published_ports"; done
133           fi
134           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true
135           if [ "{repo}" = "_" ]; then
136             image={container}:{tag}
137           elif [ "{port}" = "None" ]; then
138             image={repo}/{container}:{tag}
139           else
140             image={repo}:{port}/{container}:{tag}
141           fi
142           mkdir -p $WORKSPACE/results
143           chown {uid}:{gid} $WORKSPACE/results
144           docker run --rm \
145             --privileged={privileged} \
146             --network={network} \
147             $volumes \
148             $env \
149             $published_ports \
150             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
151             -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
152             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
153             -v /home/opnfv/functest-kubernetes/.boto:/etc/boto.cfg \
154             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
155             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
156             -e NODE_NAME=$slave \
157             -e BUILD_TAG=$BUILD_TAG \
158             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
159             $image run_tests -t {test} -p -r
160
161 - builder:
162     name: functest-kubernetes-remove-images
163     builders:
164       - shell: |
165           set +x
166           if [ "{repo}" = "_" ]; then
167             image={container}:{tag}
168           elif [ "{port}" = "None" ]; then
169             image={repo}/{container}:{tag}
170           else
171             image={repo}:{port}/{container}:{tag}
172           fi
173           docker rmi $image || true
174
175 - job-template:
176     name: 'functest-kubernetes-{repo}-{container}-{tag}-pull'
177     parameters:
178       - functest-kubernetes-slave:
179           slave: '{slave}'
180     builders:
181       - functest-kubernetes-pull-containers:
182           <<: *functest-kubernetes-containers
183
184 - project:
185     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-pull'
186     <<: *functest-kubernetes-params
187     container: 'functest-kubernetes-healthcheck'
188     jobs:
189       - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
190
191 - project:
192     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-pull'
193     <<: *functest-kubernetes-params
194     container: 'functest-kubernetes-smoke'
195     jobs:
196       - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
197
198 - project:
199     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-pull'
200     <<: *functest-kubernetes-params
201     container: 'functest-kubernetes-security'
202     jobs:
203       - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
204
205 - project:
206     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-pull'
207     <<: *functest-kubernetes-params
208     container: 'functest-kubernetes-benchmarking'
209     jobs:
210       - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
211
212 - project:
213     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-pull'
214     <<: *functest-kubernetes-params
215     container: 'functest-kubernetes-cnf'
216     jobs:
217       - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
218
219 - job-template:
220     name: 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
221     parameters:
222       - functest-kubernetes-slave:
223           slave: '{slave}'
224     builders:
225       - functest-kubernetes-remove-images:
226           <<: *functest-kubernetes-containers
227
228 - project:
229     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-rmi'
230     <<: *functest-kubernetes-params
231     container: 'functest-kubernetes-healthcheck'
232     jobs:
233       - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
234
235 - project:
236     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-rmi'
237     <<: *functest-kubernetes-params
238     container: 'functest-kubernetes-smoke'
239     jobs:
240       - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
241
242 - project:
243     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-rmi'
244     <<: *functest-kubernetes-params
245     container: 'functest-kubernetes-security'
246     jobs:
247       - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
248
249 - project:
250     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-rmi'
251     <<: *functest-kubernetes-params
252     container: 'functest-kubernetes-benchmarking'
253     jobs:
254       - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
255
256 - project:
257     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-rmi'
258     <<: *functest-kubernetes-params
259     container: 'functest-kubernetes-cnf'
260     jobs:
261       - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
262
263 - job-template:
264     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-{test}-run'
265     parameters:
266       - functest-kubernetes-slave:
267           slave: '{slave}'
268       - functest-kubernetes-build_tag:
269           build_tag: ''
270       - functest-kubernetes-DEPLOY_SCENARIO:
271           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
272       - functest-kubernetes-E2E_TEST_OPTS:
273           E2E_TEST_OPTS: container-runtime:containerd
274     builders:
275       - functest-kubernetes-run-containers:
276           <<: *functest-kubernetes-run-containers
277
278 - project:
279     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck'
280     <<: *functest-kubernetes-params
281     volumes:
282       - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config
283     env:
284       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
285       - E2E_TEST_OPTS=$E2E_TEST_OPTS
286     published_ports:
287     container: 'functest-kubernetes-healthcheck'
288     test:
289       - k8s_quick
290       - k8s_smoke
291     privileged: 'false'
292     network: bridge
293     uid: 1000
294     gid: 1000
295     jobs:
296       - 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-{test}-run'
297
298 - job-template:
299     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-{test}-run'
300     parameters:
301       - functest-kubernetes-slave:
302           slave: '{slave}'
303       - functest-kubernetes-build_tag:
304           build_tag: ''
305       - functest-kubernetes-DEPLOY_SCENARIO:
306           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
307       - functest-kubernetes-E2E_TEST_OPTS:
308           E2E_TEST_OPTS: container-runtime:containerd
309     builders:
310       - functest-kubernetes-run-containers:
311           <<: *functest-kubernetes-run-containers
312
313 - project:
314     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke'
315     <<: *functest-kubernetes-params
316     volumes:
317       - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config
318     env:
319       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
320       - E2E_TEST_OPTS=$E2E_TEST_OPTS
321     published_ports:
322     container: 'functest-kubernetes-smoke'
323     test:
324       - xrally_kubernetes
325       - k8s_io
326       - k8s_conformance
327       - k8s_conformance_serial
328       - sig_api_machinery
329       - sig_api_machinery_serial
330       - sig_apps
331       - sig_apps_serial
332       - sig_auth
333       - sig_cluster_lifecycle
334       - sig_instrumentation
335       - sig_network
336       - sig_node
337       - sig_scheduling_serial
338       - sig_storage
339       - sig_storage_serial
340     privileged: 'false'
341     network: bridge
342     uid: 1000
343     gid: 1000
344     exclude:
345       - tag: latest
346         test: k8s_io
347       - tag: v1.24
348         test: k8s_io
349       - tag: v1.23
350         test: k8s_io
351       - tag: v1.22
352         test: k8s_io
353       - tag: v1.21
354         test: k8s_io
355     jobs:
356       - 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-{test}-run'
357
358 - job-template:
359     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-{test}-run'
360     parameters:
361       - functest-kubernetes-slave:
362           slave: '{slave}'
363       - functest-kubernetes-build_tag:
364           build_tag: ''
365       - functest-kubernetes-DEPLOY_SCENARIO:
366           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
367       - functest-kubernetes-E2E_TEST_OPTS:
368           E2E_TEST_OPTS: container-runtime:containerd
369     builders:
370       - functest-kubernetes-run-containers:
371           <<: *functest-kubernetes-run-containers
372
373 - project:
374     name: 'functest-kubernetes-opnfv-functest-kubernetes-security'
375     <<: *functest-kubernetes-params
376     volumes:
377       - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config
378     env:
379       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
380       - E2E_TEST_OPTS=$E2E_TEST_OPTS
381     published_ports:
382     container: 'functest-kubernetes-security'
383     test:
384       - kube_hunter
385       - kube_bench_master
386       - kube_bench_node
387     privileged: 'false'
388     network: bridge
389     uid: 1000
390     gid: 1000
391     jobs:
392       - 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-{test}-run'
393
394 - job-template:
395     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-{test}-run'
396     parameters:
397       - functest-kubernetes-slave:
398           slave: '{slave}'
399       - functest-kubernetes-build_tag:
400           build_tag: ''
401       - functest-kubernetes-DEPLOY_SCENARIO:
402           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
403       - functest-kubernetes-E2E_TEST_OPTS:
404           E2E_TEST_OPTS: container-runtime:containerd
405     builders:
406       - functest-kubernetes-run-containers:
407           <<: *functest-kubernetes-run-containers
408
409 - project:
410     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking'
411     <<: *functest-kubernetes-params
412     volumes:
413       - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config
414     env:
415       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
416       - E2E_TEST_OPTS=$E2E_TEST_OPTS
417     published_ports:
418     container: 'functest-kubernetes-benchmarking'
419     test:
420       - xrally_kubernetes_full
421       - netperf
422     privileged: 'false'
423     network: bridge
424     uid: 1000
425     gid: 1000
426     jobs:
427       - 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-{test}-run'
428
429 - job-template:
430     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-{test}-run'
431     parameters:
432       - functest-kubernetes-slave:
433           slave: '{slave}'
434       - functest-kubernetes-build_tag:
435           build_tag: ''
436       - functest-kubernetes-DEPLOY_SCENARIO:
437           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
438       - functest-kubernetes-E2E_TEST_OPTS:
439           E2E_TEST_OPTS: container-runtime:containerd
440     builders:
441       - functest-kubernetes-run-containers:
442           <<: *functest-kubernetes-run-containers
443
444 - project:
445     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf'
446     <<: *functest-kubernetes-params
447     volumes:
448       - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config
449     env:
450       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
451       - E2E_TEST_OPTS=$E2E_TEST_OPTS
452     published_ports:
453     container: 'functest-kubernetes-cnf'
454     test:
455       - k8s_vims
456       - helm_vims
457       - cnf_testsuite
458     privileged: 'false'
459     network: bridge
460     uid: 1000
461     gid: 1000
462     jobs:
463       - 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-{test}-run'
464
465 - builder:
466     name: functest-kubernetes-zip
467     builders:
468       - shell: |
469           set +x
470           volumes=;
471           if [ "{volumes}" != "None" ]; then
472             for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
473               do volumes="-v $i $volumes"; done
474           fi
475           env=;
476           if [ "{env}" != "None" ]; then
477             for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
478               do env="-e $i $env"; done
479           fi
480           published_ports=;
481           if [ "{published_ports}" != "None" ]; then
482             for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
483               do published_ports="-p $i $published_ports"; done
484           fi
485           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true
486           if [ "{repo}" = "_" ]; then
487             image={container}:{tag}
488           elif [ "{port}" = "None" ]; then
489             image={repo}/{container}:{tag}
490           else
491             image={repo}:{port}/{container}:{tag}
492           fi
493           mkdir -p $WORKSPACE/results
494           chown {uid}:{gid} $WORKSPACE/results
495           docker run --rm \
496             $volumes \
497             $env \
498             $published_ports \
499             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
500             -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \
501             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \
502             -v /home/opnfv/functest-kubernetes/.boto:/etc/boto.cfg \
503             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
504             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
505             -e BUILD_TAG=$BUILD_TAG \
506             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
507             $image zip_campaign
508
509 - job-template:
510     name: 'functest-kubernetes-{tag}-zip'
511     parameters:
512       - functest-kubernetes-slave:
513           slave: '{slave}'
514       - functest-kubernetes-build_tag:
515           build_tag: ''
516       - functest-kubernetes-DEPLOY_SCENARIO:
517           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
518       - functest-kubernetes-E2E_TEST_OPTS:
519           E2E_TEST_OPTS: container-runtime:containerd
520     builders:
521       - functest-kubernetes-zip:
522           <<: *functest-kubernetes-containers
523           volumes: '{volumes}'
524           env: '{env}'
525           uid: '{uid}'
526           gid: '{gid}'
527           published_ports: '{published_ports}'
528
529 - project:
530     name: 'functest-kubernetes-{tag}-zip'
531     <<: *functest-kubernetes-params
532     volumes:
533       - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config
534     env:
535       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
536       - E2E_TEST_OPTS=$E2E_TEST_OPTS
537     published_ports:
538     container: 'functest-kubernetes-healthcheck'
539     uid: 1000
540     gid: 1000
541     jobs:
542       - 'functest-kubernetes-{tag}-zip'
543
544 - job-template:
545     name: 'functest-kubernetes-{tag}-daily'
546     project-type: multijob
547     triggers:
548       - timed: '@weekly'
549     parameters:
550       - functest-kubernetes-slave:
551           slave: '{slave}'
552       - functest-kubernetes-build_tag:
553           build_tag: ''
554       - functest-kubernetes-DEPLOY_SCENARIO:
555           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
556       - functest-kubernetes-E2E_TEST_OPTS:
557           E2E_TEST_OPTS: container-runtime:containerd
558     # PyYAML and yamllint differ here
559     # see https://github.com/yaml/pyyaml/issues/234
560     # yamllint disable rule:indentation
561     properties:
562       - build-blocker:
563           blocking-jobs:
564           - ^functest-kubernetes-(pi-)*{tag}-(daily|docker|review)$
565     # yamllint enable rule:indentation
566     builders:
567       - multijob:
568           name: remove former images
569           projects:
570             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
571               <<: *functest-kubernetes-jobs
572             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
573               <<: *functest-kubernetes-jobs
574             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
575               <<: *functest-kubernetes-jobs
576             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
577               <<: *functest-kubernetes-jobs
578             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
579               <<: *functest-kubernetes-jobs
580       - multijob:
581           name: pull containers
582           projects:
583             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-pull'
584               <<: *functest-kubernetes-jobs
585             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-pull'
586               <<: *functest-kubernetes-jobs
587             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-pull'
588               <<: *functest-kubernetes-jobs
589             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull'
590               <<: *functest-kubernetes-jobs
591             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-pull'
592               <<: *functest-kubernetes-jobs
593       - multijob:
594           name: opnfv/functest-kubernetes-healthcheck:{tag}
595           projects:
596             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
597               <<: *functest-kubernetes-jobs
598             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
599               <<: *functest-kubernetes-jobs
600       - multijob:
601           name: opnfv/functest-kubernetes-smoke:{tag}
602           execution-type: SEQUENTIALLY
603           projects:
604             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
605               <<: *functest-kubernetes-jobs
606             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_io-run'
607               <<: *functest-kubernetes-jobs
608             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
609               <<: *functest-kubernetes-jobs
610             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run'
611               <<: *functest-kubernetes-jobs
612             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run'
613               <<: *functest-kubernetes-jobs
614             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery_serial-run'
615               <<: *functest-kubernetes-jobs
616             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run'
617               <<: *functest-kubernetes-jobs
618             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps_serial-run'
619               <<: *functest-kubernetes-jobs
620             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run'
621               <<: *functest-kubernetes-jobs
622             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run'
623               <<: *functest-kubernetes-jobs
624             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run'
625               <<: *functest-kubernetes-jobs
626             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
627               <<: *functest-kubernetes-jobs
628             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run'
629               <<: *functest-kubernetes-jobs
630             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_scheduling_serial-run'
631               <<: *functest-kubernetes-jobs
632             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
633               <<: *functest-kubernetes-jobs
634             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage_serial-run'
635               <<: *functest-kubernetes-jobs
636       - multijob:
637           name: opnfv/functest-kubernetes-security:{tag}
638           projects:
639             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
640               <<: *functest-kubernetes-jobs
641             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
642               <<: *functest-kubernetes-jobs
643             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
644               <<: *functest-kubernetes-jobs
645       - multijob:
646           name: opnfv/functest-kubernetes-benchmarking:{tag}
647           projects:
648             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
649               <<: *functest-kubernetes-jobs
650             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-netperf-run'
651               <<: *functest-kubernetes-jobs
652       - multijob:
653           name: opnfv/functest-kubernetes-cnf:{tag}
654           projects:
655             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
656               <<: *functest-kubernetes-jobs
657             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
658               <<: *functest-kubernetes-jobs
659             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_testsuite-run'
660               <<: *functest-kubernetes-jobs
661       - multijob:
662           name: dump all campaign data
663           projects:
664             - name: 'functest-kubernetes-{tag}-zip'
665               <<: *functest-kubernetes-jobs
666     publishers:
667       - email-ext:
668           failure: false
669           first-failure: true
670           fixed: true
671           recipients: cedric.ollivier@orange.com
672
673 - project:
674     name: 'functest-kubernetes-daily'
675     <<: *functest-kubernetes-params
676     jobs:
677       - 'functest-kubernetes-{tag}-daily'
678
679 - view:
680     name: functest-kubernetes
681     view-type: list
682     columns:
683       - status
684       - weather
685       - job
686       - last-success
687       - last-failure
688       - last-duration
689     regex: ^functest-kubernetes-[a-z0-9.]+-daily$
690
691 - functest-kubernetes-build-containers: &functest-kubernetes-build-containers
692     name: 'functest-kubernetes-build-containers'
693     <<: *functest-kubernetes-containers
694     ref_arg: '{ref_arg}'
695     path: '{path}'
696     build_args: '{build_args}'
697     from: '{from}'
698
699 - builder:
700     name: functest-kubernetes-build-containers
701     builders:
702       - shell: |
703           set +x
704           if [ "{repo}" = "_" ]; then
705             image={container}:{tag}
706           elif [ "{port}" = "None" ]; then
707             image={repo}/{container}:{tag}
708           else
709             image={repo}:{port}/{container}:{tag}
710           fi
711           build_args=""
712           if [ "{build_args}" != "None" ]; then
713             for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \
714               do build_args="--build-arg $i $build_args"; done
715           fi
716           if [ "{ref_arg}" != "None" ]; then
717             build_args="$build_args --build-arg {ref_arg}={ref}"
718           fi
719           cd {path}
720           if [ "{from}" != "None" ]; then
721               sed -i {from} Dockerfile
722           fi
723           docker build $build_args \
724             --pull=false --no-cache --force-rm=true \
725             -t $image .
726
727 - scm:
728     name: functest-kubernetes-scm
729     scm:
730       - git:
731           url: 'https://gerrit.opnfv.org/gerrit/functest-kubernetes'
732           refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
733           branches:
734             - '{ref}'
735
736 - functest-kubernetes-dep: &functest-kubernetes-dep
737     name: 'functest-kubernetes-containers'
738     repo: '{repo}'
739     port: '{port}'
740     tag: '{tag}'
741     dependency: '{dependency}'
742
743 - builder:
744     name: functest-kubernetes-pull-dep-images
745     builders:
746       - shell: |
747           set +x
748           if [ "_" = "_" ]; then
749             image=alpine:{dependency}
750           elif [ "None" = "None" ]; then
751             image=_/alpine:{dependency}
752           else
753             image=_:/alpine:{dependency}
754           fi
755           docker pull $image || true
756
757 - builder:
758     name: functest-kubernetes-remove-dep-images
759     builders:
760       - shell: |
761           set +x
762           if [ "_" = "_" ]; then
763             image=alpine:{dependency}
764           elif [ "" = "None" ]; then
765             image=_/alpine:{dependency}
766           else
767             image=_:/alpine:{dependency}
768           fi
769           docker rmi $image || true
770
771 - job-template:
772     name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
773     parameters:
774       - functest-kubernetes-slave:
775           slave: '{slave}'
776     builders:
777       - functest-kubernetes-pull-dep-images:
778           <<: *functest-kubernetes-dep
779
780 - project:
781     name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
782     <<: *functest-kubernetes-params
783     jobs:
784       - 'functest-kubernetes-{repo}-{tag}-dep-pull'
785
786 - job-template:
787     name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
788     parameters:
789       - functest-kubernetes-slave:
790           slave: '{slave}'
791     builders:
792       - functest-kubernetes-remove-dep-images:
793           <<: *functest-kubernetes-dep
794
795 - project:
796     name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
797     <<: *functest-kubernetes-params
798     jobs:
799       - 'functest-kubernetes-{repo}-{tag}-dep-rmi'
800
801 - builder:
802     name: functest-kubernetes-tox
803     builders:
804       - shell: |
805           set +x
806           apt-get -o DPkg::Lock::Timeout=300 update && \
807           DEBIAN_FRONTEND=noninteractive apt-get \
808             -o DPkg::Lock::Timeout=300 dist-upgrade -y
809           DEBIAN_FRONTEND=noninteractive \
810           apt-get -o DPkg::Lock::Timeout=300 install software-properties-common gpg -y
811           add-apt-repository -y ppa:deadsnakes/ppa
812           apt-get -o DPkg::Lock::Timeout=300 update && \
813           DEBIAN_FRONTEND=noninteractive apt-get \
814             -o DPkg::Lock::Timeout=300 install \
815             python3.9 python3.9-dev python3.9-distutils \
816             python3.8 python3.8-dev python3.8-distutils \
817             python3.7 python3.7-dev python3.6 python3.6-dev \
818             python python-dev python3-pip enchant -y
819           pip3 install tox tox-pip-version
820
821           tox
822
823 - job-template:
824     name: 'functest-kubernetes-{tag}-tox'
825     scm:
826       - functest-kubernetes-scm:
827           ref: $GERRIT_REFSPEC
828     triggers:
829       - functest-kubernetes-patchset-created:
830           branch: '{branch}'
831     parameters:
832       - functest-kubernetes-slave:
833           slave: '{slave}'
834     builders:
835       - functest-kubernetes-tox:
836
837 - project:
838     name: functest-kubernetes-tox
839     <<: *functest-kubernetes-params
840     jobs:
841       - 'functest-kubernetes-{tag}-tox'
842
843 - job-template:
844     name: 'functest-kubernetes-{repo}-{container}-{tag}-gate'
845     parameters:
846       - functest-kubernetes-slave:
847           slave: '{slave}'
848     scm:
849       - functest-kubernetes-scm:
850           ref: $GERRIT_REFSPEC
851     builders:
852       - functest-kubernetes-build-containers:
853           <<: *functest-kubernetes-build-containers
854           ref: $GERRIT_REFSPEC
855           build_args: '{build_args}'
856
857 - project:
858     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate
859     <<: *functest-kubernetes-params
860     container: functest-kubernetes-core
861     ref_arg: BRANCH
862     path: docker/core
863     jobs:
864       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
865
866 - project:
867     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate
868     <<: *functest-kubernetes-params
869     container: functest-kubernetes-healthcheck
870     ref_arg:
871     path: docker/healthcheck
872     jobs:
873       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
874
875 - project:
876     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate
877     <<: *functest-kubernetes-params
878     container: functest-kubernetes-cnf
879     ref_arg: BRANCH
880     path: docker/cnf
881     jobs:
882       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
883
884 - project:
885     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate
886     <<: *functest-kubernetes-params
887     container: functest-kubernetes-security
888     ref_arg: BRANCH
889     path: docker/security
890     jobs:
891       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
892
893 - project:
894     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate
895     <<: *functest-kubernetes-params
896     container: functest-kubernetes-smoke
897     ref_arg:
898     path: docker/smoke
899     jobs:
900       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
901
902 - project:
903     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate
904     <<: *functest-kubernetes-params
905     container: functest-kubernetes-benchmarking
906     ref_arg:
907     path: docker/benchmarking
908     jobs:
909       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
910
911 - trigger:
912     name: functest-kubernetes-patchset-created
913     triggers:
914       - gerrit:
915           trigger-on:
916             - patchset-created-event
917             - comment-added-contains-event:
918                 comment-contains-value: 'recheck'
919             - comment-added-contains-event:
920                 comment-contains-value: 'reverify'
921           projects:
922             - project-compare-type: 'ANT'
923               project-pattern: 'functest-kubernetes'
924               branches:
925                 - branch-compare-type: 'ANT'
926                   branch-pattern: '**/{branch}'
927
928 - job-template:
929     name: 'functest-kubernetes-{tag}-review'
930     project-type: multijob
931     triggers:
932       - functest-kubernetes-patchset-created:
933           branch: '{branch}'
934     parameters:
935       - functest-kubernetes-slave:
936           slave: '{slave}'
937       - functest-kubernetes-build_tag:
938           build_tag: ''
939       - functest-kubernetes-DEPLOY_SCENARIO:
940           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
941       - functest-kubernetes-E2E_TEST_OPTS:
942           E2E_TEST_OPTS: container-runtime:containerd
943     # PyYAML and yamllint differ here
944     # see https://github.com/yaml/pyyaml/issues/234
945     # yamllint disable rule:indentation
946     properties:
947       - build-blocker:
948           blocking-jobs:
949           - ^functest-kubernetes-(pi-)*{tag}-(daily|docker|review)$
950     # yamllint enable rule:indentation
951     builders:
952       - multijob:
953           name: remove former images
954           projects:
955             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
956               <<: *functest-kubernetes-jobs
957             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
958               <<: *functest-kubernetes-jobs
959             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
960               <<: *functest-kubernetes-jobs
961             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
962               <<: *functest-kubernetes-jobs
963             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
964               <<: *functest-kubernetes-jobs
965       - multijob:
966           name: remove dependency
967           projects:
968             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
969               <<: *functest-kubernetes-jobs
970       - multijob:
971           name: pull dependency
972           projects:
973             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
974               <<: *functest-kubernetes-jobs
975       - multijob:
976           name: build opnfv/functest-kubernetes-core
977           projects:
978             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate'
979               <<: *functest-kubernetes-jobs
980       - multijob:
981           name: build containers
982           projects:
983             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate'
984               <<: *functest-kubernetes-jobs
985             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate'
986               <<: *functest-kubernetes-jobs
987             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate'
988               <<: *functest-kubernetes-jobs
989       - multijob:
990           name: build opnfv/functest-kubernetes-smoke
991           projects:
992             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate'
993               <<: *functest-kubernetes-jobs
994       - multijob:
995           name: build opnfv/functest-kubernetes-benchmarking
996           projects:
997             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate'
998               <<: *functest-kubernetes-jobs
999       - multijob:
1000           name: opnfv/functest-kubernetes-healthcheck:{tag}
1001           projects:
1002             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
1003               <<: *functest-kubernetes-jobs
1004             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
1005               <<: *functest-kubernetes-jobs
1006       - multijob:
1007           name: opnfv/functest-kubernetes-smoke:{tag}
1008           execution-type: SEQUENTIALLY
1009           projects:
1010             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
1011               <<: *functest-kubernetes-jobs
1012             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_io-run'
1013               <<: *functest-kubernetes-jobs
1014             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
1015               <<: *functest-kubernetes-jobs
1016             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run'
1017               <<: *functest-kubernetes-jobs
1018             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run'
1019               <<: *functest-kubernetes-jobs
1020             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery_serial-run'
1021               <<: *functest-kubernetes-jobs
1022             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run'
1023               <<: *functest-kubernetes-jobs
1024             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps_serial-run'
1025               <<: *functest-kubernetes-jobs
1026             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run'
1027               <<: *functest-kubernetes-jobs
1028             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run'
1029               <<: *functest-kubernetes-jobs
1030             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run'
1031               <<: *functest-kubernetes-jobs
1032             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
1033               <<: *functest-kubernetes-jobs
1034             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run'
1035               <<: *functest-kubernetes-jobs
1036             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_scheduling_serial-run'
1037               <<: *functest-kubernetes-jobs
1038             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
1039               <<: *functest-kubernetes-jobs
1040             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage_serial-run'
1041               <<: *functest-kubernetes-jobs
1042       - multijob:
1043           name: opnfv/functest-kubernetes-security:{tag}
1044           projects:
1045             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
1046               <<: *functest-kubernetes-jobs
1047             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
1048               <<: *functest-kubernetes-jobs
1049             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
1050               <<: *functest-kubernetes-jobs
1051       - multijob:
1052           name: opnfv/functest-kubernetes-benchmarking:{tag}
1053           projects:
1054             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
1055               <<: *functest-kubernetes-jobs
1056             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-netperf-run'
1057               <<: *functest-kubernetes-jobs
1058       - multijob:
1059           name: opnfv/functest-kubernetes-cnf:{tag}
1060           projects:
1061             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
1062               <<: *functest-kubernetes-jobs
1063             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
1064               <<: *functest-kubernetes-jobs
1065             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_testsuite-run'
1066               <<: *functest-kubernetes-jobs
1067     publishers:
1068       - email-ext:
1069           failure: false
1070           first-failure: true
1071           fixed: true
1072           recipients: cedric.ollivier@orange.com
1073
1074 - project:
1075     name: 'functest-kubernetes-review'
1076     <<: *functest-kubernetes-params
1077     jobs:
1078       - 'functest-kubernetes-{tag}-review'
1079
1080 - view:
1081     name: functest-kubernetes-review
1082     view-type: list
1083     columns:
1084       - status
1085       - weather
1086       - job
1087       - last-success
1088       - last-failure
1089       - last-duration
1090     regex: ^functest-kubernetes-[a-z0-9.]+-review$
1091
1092 - view:
1093     name: functest-kubernetes-tox
1094     view-type: list
1095     columns:
1096       - status
1097       - weather
1098       - job
1099       - last-success
1100       - last-failure
1101       - last-duration
1102     regex: ^functest-kubernetes-[a-z0-9.]+-tox$
1103
1104 - builder:
1105     name: functest-kubernetes-push-containers
1106     builders:
1107       - shell: |
1108           set +x
1109           if [ "{repo}" = "_" ]; then
1110             image={container}:{tag}
1111           elif [ "{port}" = "None" ]; then
1112             image={repo}/{container}:{tag}
1113           else
1114             image={repo}:{port}/{container}:{tag}
1115           fi
1116           docker push $image
1117
1118 - trigger:
1119     name: functest-kubernetes-commit
1120     triggers:
1121       - pollscm:
1122           cron: "*/30 * * * *"
1123
1124 - job-template:
1125     name: 'functest-kubernetes-{repo}-{container}-{tag}-build'
1126     parameters:
1127       - functest-kubernetes-slave:
1128           slave: '{slave}'
1129     scm:
1130       - functest-kubernetes-scm:
1131           ref: '{branch}'
1132     builders:
1133       - functest-kubernetes-build-containers:
1134           <<: *functest-kubernetes-build-containers
1135           ref: '{branch}'
1136           build_args: '{build_args}'
1137       - functest-kubernetes-push-containers:
1138           <<: *functest-kubernetes-build-containers
1139           ref: '{branch}'
1140
1141 - project:
1142     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build
1143     <<: *functest-kubernetes-params
1144     container: functest-kubernetes-core
1145     ref_arg: BRANCH
1146     path: docker/core
1147     jobs:
1148       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1149
1150 - project:
1151     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build
1152     <<: *functest-kubernetes-params
1153     container: functest-kubernetes-healthcheck
1154     ref_arg:
1155     path: docker/healthcheck
1156     jobs:
1157       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1158
1159 - project:
1160     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build
1161     <<: *functest-kubernetes-params
1162     container: functest-kubernetes-cnf
1163     ref_arg: BRANCH
1164     path: docker/cnf
1165     jobs:
1166       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1167
1168 - project:
1169     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build
1170     <<: *functest-kubernetes-params
1171     container: functest-kubernetes-security
1172     ref_arg: BRANCH
1173     path: docker/security
1174     jobs:
1175       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1176
1177 - project:
1178     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build
1179     <<: *functest-kubernetes-params
1180     container: functest-kubernetes-smoke
1181     ref_arg:
1182     path: docker/smoke
1183     jobs:
1184       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1185
1186 - project:
1187     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build
1188     <<: *functest-kubernetes-params
1189     container: functest-kubernetes-benchmarking
1190     ref_arg:
1191     path: docker/benchmarking
1192     jobs:
1193       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1194
1195 - job-template:
1196     name: 'functest-kubernetes-{tag}-docker'
1197     project-type: multijob
1198     triggers:
1199       - functest-kubernetes-commit
1200     scm:
1201       - functest-kubernetes-scm:
1202           ref: '{branch}'
1203     parameters:
1204       - functest-kubernetes-slave:
1205           slave: '{slave}'
1206     # PyYAML and yamllint differ here
1207     # see https://github.com/yaml/pyyaml/issues/234
1208     # yamllint disable rule:indentation
1209     properties:
1210       - build-blocker:
1211           blocking-jobs:
1212           - ^functest-kubernetes-(pi-)*{tag}-(daily|docker|review)$
1213     # yamllint enable rule:indentation
1214     builders:
1215       - multijob:
1216           name: remove dependency
1217           projects:
1218             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
1219               <<: *functest-kubernetes-jobs
1220       - multijob:
1221           name: pull dependency
1222           projects:
1223             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
1224               <<: *functest-kubernetes-jobs
1225       - multijob:
1226           name: build opnfv/functest-kubernetes-core
1227           projects:
1228             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build'
1229               <<: *functest-kubernetes-jobs
1230       - multijob:
1231           name: build containers
1232           projects:
1233             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build'
1234               <<: *functest-kubernetes-jobs
1235             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build'
1236               <<: *functest-kubernetes-jobs
1237             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build'
1238               <<: *functest-kubernetes-jobs
1239       - multijob:
1240           name: build opnfv/functest-kubernetes-smoke
1241           projects:
1242             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build'
1243               <<: *functest-kubernetes-jobs
1244       - multijob:
1245           name: build opnfv/functest-kubernetes-benchmarking
1246           projects:
1247             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build'
1248               <<: *functest-kubernetes-jobs
1249     publishers:
1250       - email-ext:
1251           failure: false
1252           first-failure: true
1253           fixed: true
1254           recipients: cedric.ollivier@orange.com
1255
1256 - builder:
1257     name: functest-kubernetes-trivy
1258     builders:
1259       - shell: |
1260           apt-get -o DPkg::Lock::Timeout=300 update && \
1261           DEBIAN_FRONTEND=noninteractive apt-get \
1262             -o DPkg::Lock::Timeout=300 install curl -y
1263
1264           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b .
1265           if [ "{repo}" = "_" ]; then
1266             image={container}:{tag}
1267           elif [ "{port}" = "None" ]; then
1268             image={repo}/{container}:{tag}
1269           else
1270             image={repo}:{port}/{container}:{tag}
1271           fi
1272           ./trivy image --exit-code 1 $image
1273
1274 - job-template:
1275     name: 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1276     triggers:
1277       - timed: '@weekly'
1278     parameters:
1279       - functest-kubernetes-slave:
1280           slave: '{slave}'
1281     builders:
1282       - functest-kubernetes-trivy:
1283           <<: *functest-kubernetes-containers
1284     publishers:
1285       - email-ext:
1286           failure: false
1287           first-failure: true
1288           fixed: true
1289           recipients: cedric.ollivier@orange.com
1290
1291 - project:
1292     name: 'functest-kubernetes-opnfv-functest-kubernetes-core-trivy'
1293     <<: *functest-kubernetes-params
1294     container: 'functest-kubernetes-core'
1295     jobs:
1296       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1297
1298 - project:
1299     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-trivy'
1300     <<: *functest-kubernetes-params
1301     container: 'functest-kubernetes-healthcheck'
1302     jobs:
1303       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1304
1305 - project:
1306     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-trivy'
1307     <<: *functest-kubernetes-params
1308     container: 'functest-kubernetes-cnf'
1309     jobs:
1310       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1311
1312 - project:
1313     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-trivy'
1314     <<: *functest-kubernetes-params
1315     container: 'functest-kubernetes-security'
1316     jobs:
1317       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1318
1319 - project:
1320     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-trivy'
1321     <<: *functest-kubernetes-params
1322     container: 'functest-kubernetes-smoke'
1323     jobs:
1324       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1325
1326 - project:
1327     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-trivy'
1328     <<: *functest-kubernetes-params
1329     container: 'functest-kubernetes-benchmarking'
1330     jobs:
1331       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1332
1333 - builder:
1334     name: functest-kubernetes-grype
1335     builders:
1336       - shell: |
1337           apt-get -o DPkg::Lock::Timeout=300 update && \
1338           DEBIAN_FRONTEND=noninteractive apt-get \
1339             -o DPkg::Lock::Timeout=300 install curl -y
1340
1341           curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b .
1342           if [ "{repo}" = "_" ]; then
1343             image={container}:{tag}
1344           elif [ "{port}" = "None" ]; then
1345             image={repo}/{container}:{tag}
1346           else
1347             image={repo}:{port}/{container}:{tag}
1348           fi
1349           ./grype -q $image
1350
1351 - job-template:
1352     name: 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1353     triggers:
1354       - timed: '@weekly'
1355     parameters:
1356       - functest-kubernetes-slave:
1357           slave: '{slave}'
1358     builders:
1359       - functest-kubernetes-grype:
1360           <<: *functest-kubernetes-containers
1361     publishers:
1362       - email-ext:
1363           failure: false
1364           first-failure: true
1365           fixed: true
1366           recipients: cedric.ollivier@orange.com
1367
1368 - project:
1369     name: 'functest-kubernetes-opnfv-functest-kubernetes-core-grype'
1370     <<: *functest-kubernetes-params
1371     container: 'functest-kubernetes-core'
1372     jobs:
1373       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1374
1375 - project:
1376     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-grype'
1377     <<: *functest-kubernetes-params
1378     container: 'functest-kubernetes-healthcheck'
1379     jobs:
1380       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1381
1382 - project:
1383     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-grype'
1384     <<: *functest-kubernetes-params
1385     container: 'functest-kubernetes-cnf'
1386     jobs:
1387       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1388
1389 - project:
1390     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-grype'
1391     <<: *functest-kubernetes-params
1392     container: 'functest-kubernetes-security'
1393     jobs:
1394       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1395
1396 - project:
1397     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-grype'
1398     <<: *functest-kubernetes-params
1399     container: 'functest-kubernetes-smoke'
1400     jobs:
1401       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1402
1403 - project:
1404     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-grype'
1405     <<: *functest-kubernetes-params
1406     container: 'functest-kubernetes-benchmarking'
1407     jobs:
1408       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1409
1410 - project:
1411     name: 'functest-kubernetes'
1412     <<: *functest-kubernetes-params
1413     jobs:
1414       - 'functest-kubernetes-{tag}-docker'
1415
1416 - view:
1417     name: functest-kubernetes-docker
1418     view-type: list
1419     columns:
1420       - status
1421       - weather
1422       - job
1423       - last-success
1424       - last-failure
1425       - last-duration
1426     regex: ^functest-kubernetes-[a-z0-9.]+-docker$
1427
1428 - view:
1429     name: functest-kubernetes-trivy
1430     view-type: list
1431     columns:
1432       - status
1433       - weather
1434       - job
1435       - last-success
1436       - last-failure
1437       - last-duration
1438     regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-trivy$
1439
1440 - view:
1441     name: functest-kubernetes-grype
1442     view-type: list
1443     columns:
1444       - status
1445       - weather
1446       - job
1447       - last-success
1448       - last-failure
1449       - last-duration
1450     regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-grype$