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