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