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