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