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