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