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