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