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