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