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