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