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