b84514969e70a96d09e81408c4eee3ad678a5fa7
[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 - builder:
323     name: functest-kubernetes-zip
324     builders:
325       - shell: |
326           set +x
327           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true
328           if [ "{repo}" = "_" ]; then
329             image={container}:{tag}
330           elif [ "{port}" = "None" ]; then
331             image={repo}/{container}:{tag}
332           else
333             image={repo}:{port}/{container}:{tag}
334           fi
335           docker run --rm \
336             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
337             -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \
338             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \
339             -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
340             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
341             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
342             -e BUILD_TAG=$BUILD_TAG \
343             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
344             -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \
345             -e E2E_TEST_OPTS=$E2E_TEST_OPTS \
346             -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \
347             $image zip_campaign
348
349 - job-template:
350     name: 'functest-kubernetes-{tag}-zip'
351     parameters:
352       - functest-kubernetes-slave:
353           slave: '{slave}'
354       - functest-kubernetes-build_tag:
355           build_tag: ''
356       - functest-kubernetes-DEPLOY_SCENARIO:
357           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
358       - functest-kubernetes-E2E_TEST_OPTS:
359           E2E_TEST_OPTS: container-runtime:containerd
360     builders:
361       - functest-kubernetes-zip:
362           <<: *functest-kubernetes-containers
363
364 - project:
365     name: 'functest-kubernetes-{tag}-zip'
366     <<: *functest-kubernetes-params
367     container: 'functest-kubernetes-healthcheck'
368     jobs:
369       - 'functest-kubernetes-{tag}-zip'
370
371 - job-template:
372     name: 'functest-kubernetes-{tag}-daily'
373     project-type: multijob
374     triggers:
375       - timed: '@weekly'
376     parameters:
377       - functest-kubernetes-slave:
378           slave: '{slave}'
379       - functest-kubernetes-build_tag:
380           build_tag: ''
381       - functest-kubernetes-DEPLOY_SCENARIO:
382           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
383       - functest-kubernetes-E2E_TEST_OPTS:
384           E2E_TEST_OPTS: container-runtime:containerd
385     # PyYAML and yamllint differ here
386     # see https://github.com/yaml/pyyaml/issues/234
387     # yamllint disable rule:indentation
388     properties:
389       - build-blocker:
390           blocking-jobs:
391           - ^functest-kubernetes-(pi-)*{tag}-(daily|docker|review)$
392     # yamllint enable rule:indentation
393     builders:
394       - multijob:
395           name: remove former images
396           projects:
397             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
398               <<: *functest-kubernetes-jobs
399             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
400               <<: *functest-kubernetes-jobs
401             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
402               <<: *functest-kubernetes-jobs
403             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
404               <<: *functest-kubernetes-jobs
405             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
406               <<: *functest-kubernetes-jobs
407       - multijob:
408           name: pull containers
409           projects:
410             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-pull'
411               <<: *functest-kubernetes-jobs
412             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-pull'
413               <<: *functest-kubernetes-jobs
414             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-pull'
415               <<: *functest-kubernetes-jobs
416             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull'
417               <<: *functest-kubernetes-jobs
418             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-pull'
419               <<: *functest-kubernetes-jobs
420       - multijob:
421           name: opnfv/functest-kubernetes-healthcheck:{tag}
422           projects:
423             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
424               <<: *functest-kubernetes-jobs
425             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
426               <<: *functest-kubernetes-jobs
427       - multijob:
428           name: opnfv/functest-kubernetes-smoke:{tag}
429           execution-type: SEQUENTIALLY
430           projects:
431             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
432               <<: *functest-kubernetes-jobs
433             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_io-run'
434               <<: *functest-kubernetes-jobs
435             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
436               <<: *functest-kubernetes-jobs
437             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run'
438               <<: *functest-kubernetes-jobs
439             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run'
440               <<: *functest-kubernetes-jobs
441             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery_serial-run'
442               <<: *functest-kubernetes-jobs
443             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run'
444               <<: *functest-kubernetes-jobs
445             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps_serial-run'
446               <<: *functest-kubernetes-jobs
447             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run'
448               <<: *functest-kubernetes-jobs
449             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cli-run'
450               <<: *functest-kubernetes-jobs
451             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cli_serial-run'
452               <<: *functest-kubernetes-jobs
453             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run'
454               <<: *functest-kubernetes-jobs
455             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run'
456               <<: *functest-kubernetes-jobs
457             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
458               <<: *functest-kubernetes-jobs
459             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network_serial-run'
460               <<: *functest-kubernetes-jobs
461             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run'
462               <<: *functest-kubernetes-jobs
463             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_scheduling_serial-run'
464               <<: *functest-kubernetes-jobs
465             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
466               <<: *functest-kubernetes-jobs
467             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage_serial-run'
468               <<: *functest-kubernetes-jobs
469       - multijob:
470           name: opnfv/functest-kubernetes-security:{tag}
471           projects:
472             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
473               <<: *functest-kubernetes-jobs
474             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
475               <<: *functest-kubernetes-jobs
476             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
477               <<: *functest-kubernetes-jobs
478       - multijob:
479           name: opnfv/functest-kubernetes-benchmarking:{tag}
480           projects:
481             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
482               <<: *functest-kubernetes-jobs
483             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-netperf-run'
484               <<: *functest-kubernetes-jobs
485       - multijob:
486           name: opnfv/functest-kubernetes-cnf:{tag}
487           projects:
488             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
489               <<: *functest-kubernetes-jobs
490             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
491               <<: *functest-kubernetes-jobs
492             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_testsuite-run'
493               <<: *functest-kubernetes-jobs
494       - multijob:
495           name: dump all campaign data
496           projects:
497             - name: 'functest-kubernetes-{tag}-zip'
498               <<: *functest-kubernetes-jobs
499
500 - project:
501     name: 'functest-kubernetes-daily'
502     <<: *functest-kubernetes-params
503     jobs:
504       - 'functest-kubernetes-{tag}-daily'
505
506 - view:
507     name: functest-kubernetes
508     view-type: list
509     columns:
510       - status
511       - weather
512       - job
513       - last-success
514       - last-failure
515       - last-duration
516     regex: ^functest-kubernetes-[a-z0-9.]+-daily$
517
518 - functest-kubernetes-build-containers: &functest-kubernetes-build-containers
519     name: 'functest-kubernetes-build-containers'
520     <<: *functest-kubernetes-containers
521     ref_arg: '{ref_arg}'
522     path: '{path}'
523     buildargs: '{buildargs}'
524     from: '{from}'
525
526 - builder:
527     name: functest-kubernetes-build-containers
528     builders:
529       - shell: |
530           set +x
531           if [ "{repo}" = "_" ]; then
532             image={container}:{tag}
533           elif [ "{port}" = "None" ]; then
534             image={repo}/{container}:{tag}
535           else
536             image={repo}:{port}/{container}:{tag}
537           fi
538           build_args=""
539           if [ "{buildargs}" != "None" ]; then
540             build_args="{buildargs}"
541           fi
542           if [ "{ref_arg}" != "None" ]; then
543             build_args="$build_args --build-arg {ref_arg}={ref}"
544           fi
545           cd {path}
546           if [ "{from}" != "None" ]; then
547               sed -i {from} Dockerfile
548           fi
549           docker build $build_args \
550             --pull=false --no-cache --force-rm=true \
551             -t $image .
552
553 - scm:
554     name: functest-kubernetes-scm
555     scm:
556       - git:
557           url: 'https://gerrit.opnfv.org/gerrit/functest-kubernetes'
558           refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
559           branches:
560             - '{ref}'
561
562 - functest-kubernetes-dep: &functest-kubernetes-dep
563     name: 'functest-kubernetes-containers'
564     repo: '{repo}'
565     port: '{port}'
566     tag: '{tag}'
567     dependency: '{dependency}'
568
569 - builder:
570     name: functest-kubernetes-pull-dep-images
571     builders:
572       - shell: |
573           set +x
574           if [ "_" = "_" ]; then
575             image=alpine:{dependency}
576           elif [ "None" = "None" ]; then
577             image=_/alpine:{dependency}
578           else
579             image=_:/alpine:{dependency}
580           fi
581           docker pull $image || true
582
583 - builder:
584     name: functest-kubernetes-remove-dep-images
585     builders:
586       - shell: |
587           set +x
588           if [ "_" = "_" ]; then
589             image=alpine:{dependency}
590           elif [ "" = "None" ]; then
591             image=_/alpine:{dependency}
592           else
593             image=_:/alpine:{dependency}
594           fi
595           docker rmi $image || true
596
597 - job-template:
598     name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
599     parameters:
600       - functest-kubernetes-slave:
601           slave: '{slave}'
602     builders:
603       - functest-kubernetes-pull-dep-images:
604           <<: *functest-kubernetes-dep
605
606 - project:
607     name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
608     <<: *functest-kubernetes-params
609     jobs:
610       - 'functest-kubernetes-{repo}-{tag}-dep-pull'
611
612 - job-template:
613     name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
614     parameters:
615       - functest-kubernetes-slave:
616           slave: '{slave}'
617     builders:
618       - functest-kubernetes-remove-dep-images:
619           <<: *functest-kubernetes-dep
620
621 - project:
622     name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
623     <<: *functest-kubernetes-params
624     jobs:
625       - 'functest-kubernetes-{repo}-{tag}-dep-rmi'
626
627 - builder:
628     name: functest-kubernetes-tox
629     builders:
630       - shell: |
631           set +x
632           apt-get update && apt-get install \
633             software-properties-common gpg -y
634           add-apt-repository -y ppa:deadsnakes/ppa
635           apt-get update && apt-get install python3.8 \
636             python3.8-dev python3.8-distutils \
637             python3.7 python3.7-dev python3.6 python3.6-dev \
638             python python-dev python3-pip enchant -y
639           pip3 install tox tox-pip-version
640
641           tox
642
643 - job-template:
644     name: 'functest-kubernetes-{tag}-tox'
645     scm:
646       - functest-kubernetes-scm:
647           ref: $GERRIT_REFSPEC
648     triggers:
649       - functest-kubernetes-patchset-created:
650           branch: '{branch}'
651     parameters:
652       - functest-kubernetes-slave:
653           slave: '{slave}'
654     builders:
655       - functest-kubernetes-tox:
656
657 - project:
658     name: functest-kubernetes-tox
659     <<: *functest-kubernetes-params
660     jobs:
661       - 'functest-kubernetes-{tag}-tox'
662
663 - job-template:
664     name: 'functest-kubernetes-{repo}-{container}-{tag}-gate'
665     parameters:
666       - functest-kubernetes-slave:
667           slave: '{slave}'
668     scm:
669       - functest-kubernetes-scm:
670           ref: $GERRIT_REFSPEC
671     builders:
672       - functest-kubernetes-build-containers:
673           <<: *functest-kubernetes-build-containers
674           ref: $GERRIT_REFSPEC
675           buildargs: '{buildargs}'
676
677 - project:
678     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate
679     <<: *functest-kubernetes-params
680     container: functest-kubernetes-core
681     ref_arg: BRANCH
682     path: docker/core
683     jobs:
684       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
685
686 - project:
687     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate
688     <<: *functest-kubernetes-params
689     container: functest-kubernetes-healthcheck
690     ref_arg:
691     path: docker/healthcheck
692     jobs:
693       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
694
695 - project:
696     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate
697     <<: *functest-kubernetes-params
698     container: functest-kubernetes-cnf
699     ref_arg: BRANCH
700     path: docker/cnf
701     jobs:
702       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
703
704 - project:
705     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate
706     <<: *functest-kubernetes-params
707     container: functest-kubernetes-security
708     ref_arg: BRANCH
709     path: docker/security
710     jobs:
711       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
712
713 - project:
714     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate
715     <<: *functest-kubernetes-params
716     container: functest-kubernetes-smoke
717     ref_arg:
718     path: docker/smoke
719     jobs:
720       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
721
722 - project:
723     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate
724     <<: *functest-kubernetes-params
725     container: functest-kubernetes-benchmarking
726     ref_arg:
727     path: docker/benchmarking
728     jobs:
729       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
730
731 - trigger:
732     name: functest-kubernetes-patchset-created
733     triggers:
734       - gerrit:
735           trigger-on:
736             - patchset-created-event
737             - comment-added-contains-event:
738                 comment-contains-value: 'recheck'
739             - comment-added-contains-event:
740                 comment-contains-value: 'reverify'
741           projects:
742             - project-compare-type: 'ANT'
743               project-pattern: 'functest-kubernetes'
744               branches:
745                 - branch-compare-type: 'ANT'
746                   branch-pattern: '**/{branch}'
747
748 - job-template:
749     name: 'functest-kubernetes-{tag}-review'
750     project-type: multijob
751     triggers:
752       - functest-kubernetes-patchset-created:
753           branch: '{branch}'
754     parameters:
755       - functest-kubernetes-slave:
756           slave: '{slave}'
757       - functest-kubernetes-build_tag:
758           build_tag: ''
759       - functest-kubernetes-DEPLOY_SCENARIO:
760           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
761       - functest-kubernetes-E2E_TEST_OPTS:
762           E2E_TEST_OPTS: container-runtime:containerd
763     # PyYAML and yamllint differ here
764     # see https://github.com/yaml/pyyaml/issues/234
765     # yamllint disable rule:indentation
766     properties:
767       - build-blocker:
768           blocking-jobs:
769           - ^functest-kubernetes-(pi-)*{tag}-(daily|docker|review)$
770     # yamllint enable rule:indentation
771     builders:
772       - multijob:
773           name: remove former images
774           projects:
775             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
776               <<: *functest-kubernetes-jobs
777             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
778               <<: *functest-kubernetes-jobs
779             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
780               <<: *functest-kubernetes-jobs
781             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
782               <<: *functest-kubernetes-jobs
783             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
784               <<: *functest-kubernetes-jobs
785       - multijob:
786           name: remove dependency
787           projects:
788             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
789               <<: *functest-kubernetes-jobs
790       - multijob:
791           name: pull dependency
792           projects:
793             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
794               <<: *functest-kubernetes-jobs
795       - multijob:
796           name: build opnfv/functest-kubernetes-core
797           projects:
798             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate'
799               <<: *functest-kubernetes-jobs
800       - multijob:
801           name: build containers
802           projects:
803             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate'
804               <<: *functest-kubernetes-jobs
805             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate'
806               <<: *functest-kubernetes-jobs
807             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate'
808               <<: *functest-kubernetes-jobs
809       - multijob:
810           name: build opnfv/functest-kubernetes-smoke
811           projects:
812             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate'
813               <<: *functest-kubernetes-jobs
814       - multijob:
815           name: build opnfv/functest-kubernetes-benchmarking
816           projects:
817             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate'
818               <<: *functest-kubernetes-jobs
819       - multijob:
820           name: opnfv/functest-kubernetes-healthcheck:{tag}
821           projects:
822             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
823               <<: *functest-kubernetes-jobs
824             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
825               <<: *functest-kubernetes-jobs
826       - multijob:
827           name: opnfv/functest-kubernetes-smoke:{tag}
828           execution-type: SEQUENTIALLY
829           projects:
830             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
831               <<: *functest-kubernetes-jobs
832             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_io-run'
833               <<: *functest-kubernetes-jobs
834             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
835               <<: *functest-kubernetes-jobs
836             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run'
837               <<: *functest-kubernetes-jobs
838             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run'
839               <<: *functest-kubernetes-jobs
840             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery_serial-run'
841               <<: *functest-kubernetes-jobs
842             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run'
843               <<: *functest-kubernetes-jobs
844             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps_serial-run'
845               <<: *functest-kubernetes-jobs
846             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run'
847               <<: *functest-kubernetes-jobs
848             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cli-run'
849               <<: *functest-kubernetes-jobs
850             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cli_serial-run'
851               <<: *functest-kubernetes-jobs
852             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run'
853               <<: *functest-kubernetes-jobs
854             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run'
855               <<: *functest-kubernetes-jobs
856             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
857               <<: *functest-kubernetes-jobs
858             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network_serial-run'
859               <<: *functest-kubernetes-jobs
860             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run'
861               <<: *functest-kubernetes-jobs
862             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_scheduling_serial-run'
863               <<: *functest-kubernetes-jobs
864             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
865               <<: *functest-kubernetes-jobs
866             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage_serial-run'
867               <<: *functest-kubernetes-jobs
868       - multijob:
869           name: opnfv/functest-kubernetes-security:{tag}
870           projects:
871             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
872               <<: *functest-kubernetes-jobs
873             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
874               <<: *functest-kubernetes-jobs
875             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
876               <<: *functest-kubernetes-jobs
877       - multijob:
878           name: opnfv/functest-kubernetes-benchmarking:{tag}
879           projects:
880             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
881               <<: *functest-kubernetes-jobs
882             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-netperf-run'
883               <<: *functest-kubernetes-jobs
884       - multijob:
885           name: opnfv/functest-kubernetes-cnf:{tag}
886           projects:
887             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
888               <<: *functest-kubernetes-jobs
889             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
890               <<: *functest-kubernetes-jobs
891             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_testsuite-run'
892               <<: *functest-kubernetes-jobs
893
894 - project:
895     name: 'functest-kubernetes-review'
896     <<: *functest-kubernetes-params
897     jobs:
898       - 'functest-kubernetes-{tag}-review'
899
900 - view:
901     name: functest-kubernetes-review
902     view-type: list
903     columns:
904       - status
905       - weather
906       - job
907       - last-success
908       - last-failure
909       - last-duration
910     regex: ^functest-kubernetes-[a-z0-9.]+-review$
911
912 - view:
913     name: functest-kubernetes-tox
914     view-type: list
915     columns:
916       - status
917       - weather
918       - job
919       - last-success
920       - last-failure
921       - last-duration
922     regex: ^functest-kubernetes-[a-z0-9.]+-tox$
923
924 - builder:
925     name: functest-kubernetes-push-containers
926     builders:
927       - shell: |
928           set +x
929           if [ "{repo}" = "_" ]; then
930             image={container}:{tag}
931           elif [ "{port}" = "None" ]; then
932             image={repo}/{container}:{tag}
933           else
934             image={repo}:{port}/{container}:{tag}
935           fi
936           docker push $image
937
938 - trigger:
939     name: functest-kubernetes-commit
940     triggers:
941       - pollscm:
942           cron: "*/30 * * * *"
943
944 - job-template:
945     name: 'functest-kubernetes-{repo}-{container}-{tag}-build'
946     parameters:
947       - functest-kubernetes-slave:
948           slave: '{slave}'
949     scm:
950       - functest-kubernetes-scm:
951           ref: '{branch}'
952     builders:
953       - functest-kubernetes-build-containers:
954           <<: *functest-kubernetes-build-containers
955           ref: '{branch}'
956           buildargs: '{buildargs}'
957       - functest-kubernetes-push-containers:
958           <<: *functest-kubernetes-build-containers
959           ref: '{branch}'
960
961 - project:
962     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build
963     <<: *functest-kubernetes-params
964     container: functest-kubernetes-core
965     ref_arg: BRANCH
966     path: docker/core
967     jobs:
968       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
969
970 - project:
971     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build
972     <<: *functest-kubernetes-params
973     container: functest-kubernetes-healthcheck
974     ref_arg:
975     path: docker/healthcheck
976     jobs:
977       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
978
979 - project:
980     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build
981     <<: *functest-kubernetes-params
982     container: functest-kubernetes-cnf
983     ref_arg: BRANCH
984     path: docker/cnf
985     jobs:
986       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
987
988 - project:
989     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build
990     <<: *functest-kubernetes-params
991     container: functest-kubernetes-security
992     ref_arg: BRANCH
993     path: docker/security
994     jobs:
995       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
996
997 - project:
998     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build
999     <<: *functest-kubernetes-params
1000     container: functest-kubernetes-smoke
1001     ref_arg:
1002     path: docker/smoke
1003     jobs:
1004       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1005
1006 - project:
1007     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build
1008     <<: *functest-kubernetes-params
1009     container: functest-kubernetes-benchmarking
1010     ref_arg:
1011     path: docker/benchmarking
1012     jobs:
1013       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1014
1015 - job-template:
1016     name: 'functest-kubernetes-{tag}-docker'
1017     project-type: multijob
1018     triggers:
1019       - functest-kubernetes-commit
1020     scm:
1021       - functest-kubernetes-scm:
1022           ref: '{branch}'
1023     parameters:
1024       - functest-kubernetes-slave:
1025           slave: '{slave}'
1026     # PyYAML and yamllint differ here
1027     # see https://github.com/yaml/pyyaml/issues/234
1028     # yamllint disable rule:indentation
1029     properties:
1030       - build-blocker:
1031           blocking-jobs:
1032           - ^functest-kubernetes-(pi-)*{tag}-(daily|docker|review)$
1033     # yamllint enable rule:indentation
1034     builders:
1035       - multijob:
1036           name: remove dependency
1037           projects:
1038             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
1039               <<: *functest-kubernetes-jobs
1040       - multijob:
1041           name: pull dependency
1042           projects:
1043             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
1044               <<: *functest-kubernetes-jobs
1045       - multijob:
1046           name: build opnfv/functest-kubernetes-core
1047           projects:
1048             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build'
1049               <<: *functest-kubernetes-jobs
1050       - multijob:
1051           name: build containers
1052           projects:
1053             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build'
1054               <<: *functest-kubernetes-jobs
1055             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build'
1056               <<: *functest-kubernetes-jobs
1057             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build'
1058               <<: *functest-kubernetes-jobs
1059       - multijob:
1060           name: build opnfv/functest-kubernetes-smoke
1061           projects:
1062             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build'
1063               <<: *functest-kubernetes-jobs
1064       - multijob:
1065           name: build opnfv/functest-kubernetes-benchmarking
1066           projects:
1067             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build'
1068               <<: *functest-kubernetes-jobs
1069
1070 - builder:
1071     name: functest-kubernetes-trivy
1072     builders:
1073       - shell: |
1074           apt-get update && apt-get install curl -y
1075
1076           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b .
1077           if [ "{repo}" = "_" ]; then
1078             image={container}:{tag}
1079           elif [ "{port}" = "None" ]; then
1080             image={repo}/{container}:{tag}
1081           else
1082             image={repo}:{port}/{container}:{tag}
1083           fi
1084           ./trivy --exit-code 1 $image
1085
1086 - job-template:
1087     name: 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1088     triggers:
1089       - timed: '@weekly'
1090     parameters:
1091       - functest-kubernetes-slave:
1092           slave: '{slave}'
1093     builders:
1094       - functest-kubernetes-trivy:
1095           <<: *functest-kubernetes-containers
1096
1097 - project:
1098     name: 'functest-kubernetes-opnfv-functest-kubernetes-core-trivy'
1099     <<: *functest-kubernetes-params
1100     container: 'functest-kubernetes-core'
1101     jobs:
1102       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1103
1104 - project:
1105     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-trivy'
1106     <<: *functest-kubernetes-params
1107     container: 'functest-kubernetes-healthcheck'
1108     jobs:
1109       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1110
1111 - project:
1112     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-trivy'
1113     <<: *functest-kubernetes-params
1114     container: 'functest-kubernetes-cnf'
1115     jobs:
1116       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1117
1118 - project:
1119     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-trivy'
1120     <<: *functest-kubernetes-params
1121     container: 'functest-kubernetes-security'
1122     jobs:
1123       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1124
1125 - project:
1126     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-trivy'
1127     <<: *functest-kubernetes-params
1128     container: 'functest-kubernetes-smoke'
1129     jobs:
1130       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1131
1132 - project:
1133     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-trivy'
1134     <<: *functest-kubernetes-params
1135     container: 'functest-kubernetes-benchmarking'
1136     jobs:
1137       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1138
1139 - project:
1140     name: 'functest-kubernetes'
1141     <<: *functest-kubernetes-params
1142     jobs:
1143       - 'functest-kubernetes-{tag}-docker'
1144
1145 - view:
1146     name: functest-kubernetes-docker
1147     view-type: list
1148     columns:
1149       - status
1150       - weather
1151       - job
1152       - last-success
1153       - last-failure
1154       - last-duration
1155     regex: ^functest-kubernetes-[a-z0-9.]+-docker$
1156
1157 - view:
1158     name: functest-kubernetes-trivy
1159     view-type: list
1160     columns:
1161       - status
1162       - weather
1163       - job
1164       - last-success
1165       - last-failure
1166       - last-duration
1167     regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-trivy$