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