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