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