Install indirect tox deps
[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             libxml2-dev libxslt-dev libffi-dev libjpeg-dev \
816             python3.10 python3.10-dev python3.10-distutils \
817             python3.9 python3.9-dev python3.9-distutils \
818             python3.8 python3.8-dev python3.8-distutils \
819             python3.7 python3.7-dev python3.6 python3.6-dev \
820             python python-dev python3-pip enchant -y
821           pip3 install tox tox-pip-version
822
823           tox
824
825 - job-template:
826     name: 'functest-kubernetes-{tag}-tox'
827     scm:
828       - functest-kubernetes-scm:
829           ref: $GERRIT_REFSPEC
830     triggers:
831       - functest-kubernetes-patchset-created:
832           branch: '{branch}'
833     parameters:
834       - functest-kubernetes-slave:
835           slave: '{slave}'
836     builders:
837       - functest-kubernetes-tox:
838
839 - project:
840     name: functest-kubernetes-tox
841     <<: *functest-kubernetes-params
842     jobs:
843       - 'functest-kubernetes-{tag}-tox'
844
845 - job-template:
846     name: 'functest-kubernetes-{repo}-{container}-{tag}-gate'
847     parameters:
848       - functest-kubernetes-slave:
849           slave: '{slave}'
850     scm:
851       - functest-kubernetes-scm:
852           ref: $GERRIT_REFSPEC
853     builders:
854       - functest-kubernetes-build-containers:
855           <<: *functest-kubernetes-build-containers
856           ref: $GERRIT_REFSPEC
857           build_args: '{build_args}'
858
859 - project:
860     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate
861     <<: *functest-kubernetes-params
862     container: functest-kubernetes-core
863     ref_arg: BRANCH
864     path: docker/core
865     jobs:
866       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
867
868 - project:
869     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate
870     <<: *functest-kubernetes-params
871     container: functest-kubernetes-healthcheck
872     ref_arg:
873     path: docker/healthcheck
874     jobs:
875       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
876
877 - project:
878     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate
879     <<: *functest-kubernetes-params
880     container: functest-kubernetes-cnf
881     ref_arg: BRANCH
882     path: docker/cnf
883     jobs:
884       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
885
886 - project:
887     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate
888     <<: *functest-kubernetes-params
889     container: functest-kubernetes-security
890     ref_arg: BRANCH
891     path: docker/security
892     jobs:
893       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
894
895 - project:
896     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate
897     <<: *functest-kubernetes-params
898     container: functest-kubernetes-smoke
899     ref_arg:
900     path: docker/smoke
901     jobs:
902       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
903
904 - project:
905     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate
906     <<: *functest-kubernetes-params
907     container: functest-kubernetes-benchmarking
908     ref_arg:
909     path: docker/benchmarking
910     jobs:
911       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
912
913 - trigger:
914     name: functest-kubernetes-patchset-created
915     triggers:
916       - gerrit:
917           trigger-on:
918             - patchset-created-event
919             - comment-added-contains-event:
920                 comment-contains-value: 'recheck'
921             - comment-added-contains-event:
922                 comment-contains-value: 'reverify'
923           projects:
924             - project-compare-type: 'ANT'
925               project-pattern: 'functest-kubernetes'
926               branches:
927                 - branch-compare-type: 'ANT'
928                   branch-pattern: '**/{branch}'
929
930 - job-template:
931     name: 'functest-kubernetes-{tag}-review'
932     project-type: multijob
933     triggers:
934       - functest-kubernetes-patchset-created:
935           branch: '{branch}'
936     parameters:
937       - functest-kubernetes-slave:
938           slave: '{slave}'
939       - functest-kubernetes-build_tag:
940           build_tag: ''
941       - functest-kubernetes-DEPLOY_SCENARIO:
942           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
943       - functest-kubernetes-E2E_TEST_OPTS:
944           E2E_TEST_OPTS: container-runtime:containerd
945     # PyYAML and yamllint differ here
946     # see https://github.com/yaml/pyyaml/issues/234
947     # yamllint disable rule:indentation
948     properties:
949       - build-blocker:
950           blocking-jobs:
951           - ^functest-kubernetes-(pi-)*{tag}-(daily|docker|review)$
952     # yamllint enable rule:indentation
953     builders:
954       - multijob:
955           name: remove former images
956           projects:
957             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
958               <<: *functest-kubernetes-jobs
959             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
960               <<: *functest-kubernetes-jobs
961             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
962               <<: *functest-kubernetes-jobs
963             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
964               <<: *functest-kubernetes-jobs
965             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
966               <<: *functest-kubernetes-jobs
967       - multijob:
968           name: remove dependency
969           projects:
970             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
971               <<: *functest-kubernetes-jobs
972       - multijob:
973           name: pull dependency
974           projects:
975             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
976               <<: *functest-kubernetes-jobs
977       - multijob:
978           name: build opnfv/functest-kubernetes-core
979           projects:
980             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate'
981               <<: *functest-kubernetes-jobs
982       - multijob:
983           name: build containers
984           projects:
985             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate'
986               <<: *functest-kubernetes-jobs
987             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate'
988               <<: *functest-kubernetes-jobs
989             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate'
990               <<: *functest-kubernetes-jobs
991       - multijob:
992           name: build opnfv/functest-kubernetes-smoke
993           projects:
994             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate'
995               <<: *functest-kubernetes-jobs
996       - multijob:
997           name: build opnfv/functest-kubernetes-benchmarking
998           projects:
999             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate'
1000               <<: *functest-kubernetes-jobs
1001       - multijob:
1002           name: opnfv/functest-kubernetes-healthcheck:{tag}
1003           projects:
1004             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
1005               <<: *functest-kubernetes-jobs
1006             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
1007               <<: *functest-kubernetes-jobs
1008       - multijob:
1009           name: opnfv/functest-kubernetes-smoke:{tag}
1010           execution-type: SEQUENTIALLY
1011           projects:
1012             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
1013               <<: *functest-kubernetes-jobs
1014             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_io-run'
1015               <<: *functest-kubernetes-jobs
1016             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
1017               <<: *functest-kubernetes-jobs
1018             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run'
1019               <<: *functest-kubernetes-jobs
1020             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run'
1021               <<: *functest-kubernetes-jobs
1022             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery_serial-run'
1023               <<: *functest-kubernetes-jobs
1024             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run'
1025               <<: *functest-kubernetes-jobs
1026             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps_serial-run'
1027               <<: *functest-kubernetes-jobs
1028             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run'
1029               <<: *functest-kubernetes-jobs
1030             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run'
1031               <<: *functest-kubernetes-jobs
1032             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run'
1033               <<: *functest-kubernetes-jobs
1034             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
1035               <<: *functest-kubernetes-jobs
1036             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run'
1037               <<: *functest-kubernetes-jobs
1038             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_scheduling_serial-run'
1039               <<: *functest-kubernetes-jobs
1040             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
1041               <<: *functest-kubernetes-jobs
1042             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage_serial-run'
1043               <<: *functest-kubernetes-jobs
1044       - multijob:
1045           name: opnfv/functest-kubernetes-security:{tag}
1046           projects:
1047             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
1048               <<: *functest-kubernetes-jobs
1049             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
1050               <<: *functest-kubernetes-jobs
1051             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
1052               <<: *functest-kubernetes-jobs
1053       - multijob:
1054           name: opnfv/functest-kubernetes-benchmarking:{tag}
1055           projects:
1056             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
1057               <<: *functest-kubernetes-jobs
1058             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-netperf-run'
1059               <<: *functest-kubernetes-jobs
1060       - multijob:
1061           name: opnfv/functest-kubernetes-cnf:{tag}
1062           projects:
1063             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
1064               <<: *functest-kubernetes-jobs
1065             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
1066               <<: *functest-kubernetes-jobs
1067             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_testsuite-run'
1068               <<: *functest-kubernetes-jobs
1069     publishers:
1070       - email-ext:
1071           failure: false
1072           first-failure: true
1073           fixed: true
1074           recipients: cedric.ollivier@orange.com
1075
1076 - project:
1077     name: 'functest-kubernetes-review'
1078     <<: *functest-kubernetes-params
1079     jobs:
1080       - 'functest-kubernetes-{tag}-review'
1081
1082 - view:
1083     name: functest-kubernetes-review
1084     view-type: list
1085     columns:
1086       - status
1087       - weather
1088       - job
1089       - last-success
1090       - last-failure
1091       - last-duration
1092     regex: ^functest-kubernetes-[a-z0-9.]+-review$
1093
1094 - view:
1095     name: functest-kubernetes-tox
1096     view-type: list
1097     columns:
1098       - status
1099       - weather
1100       - job
1101       - last-success
1102       - last-failure
1103       - last-duration
1104     regex: ^functest-kubernetes-[a-z0-9.]+-tox$
1105
1106 - builder:
1107     name: functest-kubernetes-push-containers
1108     builders:
1109       - shell: |
1110           set +x
1111           if [ "{repo}" = "_" ]; then
1112             image={container}:{tag}
1113           elif [ "{port}" = "None" ]; then
1114             image={repo}/{container}:{tag}
1115           else
1116             image={repo}:{port}/{container}:{tag}
1117           fi
1118           docker push $image
1119
1120 - trigger:
1121     name: functest-kubernetes-commit
1122     triggers:
1123       - pollscm:
1124           cron: "*/30 * * * *"
1125
1126 - job-template:
1127     name: 'functest-kubernetes-{repo}-{container}-{tag}-build'
1128     parameters:
1129       - functest-kubernetes-slave:
1130           slave: '{slave}'
1131     scm:
1132       - functest-kubernetes-scm:
1133           ref: '{branch}'
1134     builders:
1135       - functest-kubernetes-build-containers:
1136           <<: *functest-kubernetes-build-containers
1137           ref: '{branch}'
1138           build_args: '{build_args}'
1139       - functest-kubernetes-push-containers:
1140           <<: *functest-kubernetes-build-containers
1141           ref: '{branch}'
1142
1143 - project:
1144     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build
1145     <<: *functest-kubernetes-params
1146     container: functest-kubernetes-core
1147     ref_arg: BRANCH
1148     path: docker/core
1149     jobs:
1150       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1151
1152 - project:
1153     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build
1154     <<: *functest-kubernetes-params
1155     container: functest-kubernetes-healthcheck
1156     ref_arg:
1157     path: docker/healthcheck
1158     jobs:
1159       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1160
1161 - project:
1162     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build
1163     <<: *functest-kubernetes-params
1164     container: functest-kubernetes-cnf
1165     ref_arg: BRANCH
1166     path: docker/cnf
1167     jobs:
1168       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1169
1170 - project:
1171     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build
1172     <<: *functest-kubernetes-params
1173     container: functest-kubernetes-security
1174     ref_arg: BRANCH
1175     path: docker/security
1176     jobs:
1177       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1178
1179 - project:
1180     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build
1181     <<: *functest-kubernetes-params
1182     container: functest-kubernetes-smoke
1183     ref_arg:
1184     path: docker/smoke
1185     jobs:
1186       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1187
1188 - project:
1189     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build
1190     <<: *functest-kubernetes-params
1191     container: functest-kubernetes-benchmarking
1192     ref_arg:
1193     path: docker/benchmarking
1194     jobs:
1195       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1196
1197 - job-template:
1198     name: 'functest-kubernetes-{tag}-docker'
1199     project-type: multijob
1200     triggers:
1201       - functest-kubernetes-commit
1202     scm:
1203       - functest-kubernetes-scm:
1204           ref: '{branch}'
1205     parameters:
1206       - functest-kubernetes-slave:
1207           slave: '{slave}'
1208     # PyYAML and yamllint differ here
1209     # see https://github.com/yaml/pyyaml/issues/234
1210     # yamllint disable rule:indentation
1211     properties:
1212       - build-blocker:
1213           blocking-jobs:
1214           - ^functest-kubernetes-(pi-)*{tag}-(daily|docker|review)$
1215     # yamllint enable rule:indentation
1216     builders:
1217       - multijob:
1218           name: remove dependency
1219           projects:
1220             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
1221               <<: *functest-kubernetes-jobs
1222       - multijob:
1223           name: pull dependency
1224           projects:
1225             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
1226               <<: *functest-kubernetes-jobs
1227       - multijob:
1228           name: build opnfv/functest-kubernetes-core
1229           projects:
1230             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build'
1231               <<: *functest-kubernetes-jobs
1232       - multijob:
1233           name: build containers
1234           projects:
1235             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build'
1236               <<: *functest-kubernetes-jobs
1237             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build'
1238               <<: *functest-kubernetes-jobs
1239             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build'
1240               <<: *functest-kubernetes-jobs
1241       - multijob:
1242           name: build opnfv/functest-kubernetes-smoke
1243           projects:
1244             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build'
1245               <<: *functest-kubernetes-jobs
1246       - multijob:
1247           name: build opnfv/functest-kubernetes-benchmarking
1248           projects:
1249             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build'
1250               <<: *functest-kubernetes-jobs
1251     publishers:
1252       - email-ext:
1253           failure: false
1254           first-failure: true
1255           fixed: true
1256           recipients: cedric.ollivier@orange.com
1257
1258 - builder:
1259     name: functest-kubernetes-trivy
1260     builders:
1261       - shell: |
1262           apt-get -o DPkg::Lock::Timeout=300 update && \
1263           DEBIAN_FRONTEND=noninteractive apt-get \
1264             -o DPkg::Lock::Timeout=300 install curl -y
1265
1266           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b .
1267           if [ "{repo}" = "_" ]; then
1268             image={container}:{tag}
1269           elif [ "{port}" = "None" ]; then
1270             image={repo}/{container}:{tag}
1271           else
1272             image={repo}:{port}/{container}:{tag}
1273           fi
1274           ./trivy image --exit-code 1 $image
1275
1276 - job-template:
1277     name: 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1278     triggers:
1279       - timed: '@weekly'
1280     parameters:
1281       - functest-kubernetes-slave:
1282           slave: '{slave}'
1283     builders:
1284       - functest-kubernetes-trivy:
1285           <<: *functest-kubernetes-containers
1286     publishers:
1287       - email-ext:
1288           failure: false
1289           first-failure: true
1290           fixed: true
1291           recipients: cedric.ollivier@orange.com
1292
1293 - project:
1294     name: 'functest-kubernetes-opnfv-functest-kubernetes-core-trivy'
1295     <<: *functest-kubernetes-params
1296     container: 'functest-kubernetes-core'
1297     jobs:
1298       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1299
1300 - project:
1301     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-trivy'
1302     <<: *functest-kubernetes-params
1303     container: 'functest-kubernetes-healthcheck'
1304     jobs:
1305       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1306
1307 - project:
1308     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-trivy'
1309     <<: *functest-kubernetes-params
1310     container: 'functest-kubernetes-cnf'
1311     jobs:
1312       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1313
1314 - project:
1315     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-trivy'
1316     <<: *functest-kubernetes-params
1317     container: 'functest-kubernetes-security'
1318     jobs:
1319       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1320
1321 - project:
1322     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-trivy'
1323     <<: *functest-kubernetes-params
1324     container: 'functest-kubernetes-smoke'
1325     jobs:
1326       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1327
1328 - project:
1329     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-trivy'
1330     <<: *functest-kubernetes-params
1331     container: 'functest-kubernetes-benchmarking'
1332     jobs:
1333       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1334
1335 - builder:
1336     name: functest-kubernetes-grype
1337     builders:
1338       - shell: |
1339           apt-get -o DPkg::Lock::Timeout=300 update && \
1340           DEBIAN_FRONTEND=noninteractive apt-get \
1341             -o DPkg::Lock::Timeout=300 install curl -y
1342
1343           curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b .
1344           if [ "{repo}" = "_" ]; then
1345             image={container}:{tag}
1346           elif [ "{port}" = "None" ]; then
1347             image={repo}/{container}:{tag}
1348           else
1349             image={repo}:{port}/{container}:{tag}
1350           fi
1351           ./grype -q $image
1352
1353 - job-template:
1354     name: 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1355     triggers:
1356       - timed: '@weekly'
1357     parameters:
1358       - functest-kubernetes-slave:
1359           slave: '{slave}'
1360     builders:
1361       - functest-kubernetes-grype:
1362           <<: *functest-kubernetes-containers
1363     publishers:
1364       - email-ext:
1365           failure: false
1366           first-failure: true
1367           fixed: true
1368           recipients: cedric.ollivier@orange.com
1369
1370 - project:
1371     name: 'functest-kubernetes-opnfv-functest-kubernetes-core-grype'
1372     <<: *functest-kubernetes-params
1373     container: 'functest-kubernetes-core'
1374     jobs:
1375       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1376
1377 - project:
1378     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-grype'
1379     <<: *functest-kubernetes-params
1380     container: 'functest-kubernetes-healthcheck'
1381     jobs:
1382       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1383
1384 - project:
1385     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-grype'
1386     <<: *functest-kubernetes-params
1387     container: 'functest-kubernetes-cnf'
1388     jobs:
1389       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1390
1391 - project:
1392     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-grype'
1393     <<: *functest-kubernetes-params
1394     container: 'functest-kubernetes-security'
1395     jobs:
1396       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1397
1398 - project:
1399     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-grype'
1400     <<: *functest-kubernetes-params
1401     container: 'functest-kubernetes-smoke'
1402     jobs:
1403       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1404
1405 - project:
1406     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-grype'
1407     <<: *functest-kubernetes-params
1408     container: 'functest-kubernetes-benchmarking'
1409     jobs:
1410       - 'functest-kubernetes-{repo}-{container}-{tag}-grype'
1411
1412 - project:
1413     name: 'functest-kubernetes'
1414     <<: *functest-kubernetes-params
1415     jobs:
1416       - 'functest-kubernetes-{tag}-docker'
1417
1418 - view:
1419     name: functest-kubernetes-docker
1420     view-type: list
1421     columns:
1422       - status
1423       - weather
1424       - job
1425       - last-success
1426       - last-failure
1427       - last-duration
1428     regex: ^functest-kubernetes-[a-z0-9.]+-docker$
1429
1430 - view:
1431     name: functest-kubernetes-trivy
1432     view-type: list
1433     columns:
1434       - status
1435       - weather
1436       - job
1437       - last-success
1438       - last-failure
1439       - last-duration
1440     regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-trivy$
1441
1442 - view:
1443     name: functest-kubernetes-grype
1444     view-type: list
1445     columns:
1446       - status
1447       - weather
1448       - job
1449       - last-success
1450       - last-failure
1451       - last-duration
1452     regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-grype$