43289bba4a1bf17f21a03de4d00346a7d4f2e95c
[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 python3-pip enchant -y
575           pip3 install tox tox-pip-version
576           tox
577
578 - job-template:
579     name: 'functest-kubernetes-{tag}-tox'
580     scm:
581       - functest-kubernetes-scm:
582           ref: $GERRIT_REFSPEC
583     triggers:
584       - functest-kubernetes-patchset-created:
585           branch: '{branch}'
586     parameters:
587       - functest-kubernetes-slave:
588           slave: '{slave}'
589     builders:
590       - functest-kubernetes-tox:
591
592 - project:
593     name: functest-kubernetes-tox
594     <<: *functest-kubernetes-params
595     jobs:
596       - 'functest-kubernetes-{tag}-tox'
597
598 - project:
599     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate
600     <<: *functest-kubernetes-params
601     container: functest-kubernetes-core
602     ref_arg: BRANCH
603     path: docker/core
604     jobs:
605       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
606
607 - project:
608     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate
609     <<: *functest-kubernetes-params
610     container: functest-kubernetes-healthcheck
611     ref_arg:
612     path: docker/healthcheck
613     jobs:
614       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
615
616 - project:
617     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate
618     <<: *functest-kubernetes-params
619     container: functest-kubernetes-cnf
620     ref_arg: BRANCH
621     path: docker/cnf
622     jobs:
623       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
624
625 - project:
626     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate
627     <<: *functest-kubernetes-params
628     container: functest-kubernetes-security
629     ref_arg: BRANCH
630     path: docker/security
631     jobs:
632       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
633
634 - project:
635     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate
636     <<: *functest-kubernetes-params
637     container: functest-kubernetes-smoke
638     ref_arg:
639     path: docker/smoke
640     jobs:
641       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
642
643 - project:
644     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate
645     <<: *functest-kubernetes-params
646     container: functest-kubernetes-benchmarking
647     ref_arg:
648     path: docker/benchmarking
649     jobs:
650       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
651
652
653 - job-template:
654     name: 'functest-kubernetes-{repo}-{container}-{tag}-gate'
655     parameters:
656       - functest-kubernetes-slave:
657           slave: '{slave}'
658     scm:
659       - functest-kubernetes-scm:
660           ref: $GERRIT_REFSPEC
661     builders:
662       - functest-kubernetes-build-containers:
663           <<: *functest-kubernetes-build-containers
664           ref: $GERRIT_REFSPEC
665
666 - trigger:
667     name: functest-kubernetes-patchset-created
668     triggers:
669       - gerrit:
670           trigger-on:
671             - patchset-created-event
672             - comment-added-contains-event:
673                 comment-contains-value: 'recheck'
674             - comment-added-contains-event:
675                 comment-contains-value: 'reverify'
676           projects:
677             - project-compare-type: 'ANT'
678               project-pattern: 'functest-kubernetes'
679               branches:
680                 - branch-compare-type: 'ANT'
681                   branch-pattern: '**/{branch}'
682
683 - job-template:
684     name: 'functest-kubernetes-{tag}-review'
685     project-type: multijob
686     triggers:
687       - functest-kubernetes-patchset-created:
688           branch: '{branch}'
689     parameters:
690       - functest-kubernetes-slave:
691           slave: '{slave}'
692       - functest-kubernetes-build_tag:
693           build_tag: ''
694       - functest-kubernetes-DEPLOY_SCENARIO:
695           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
696       - functest-kubernetes-DEBUG:
697           DEBUG: 'true'
698     properties:
699       - build-blocker:
700           use-build-blocker: true
701           blocking-level: 'NODE'
702           blocking-jobs:
703             - '^functest-kubernetes-{tag}-(daily|review)$'
704     builders:
705       - multijob:
706           name: remove former images
707           projects:
708             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
709               <<: *functest-kubernetes-jobs
710             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
711               <<: *functest-kubernetes-jobs
712             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
713               <<: *functest-kubernetes-jobs
714             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
715               <<: *functest-kubernetes-jobs
716             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
717               <<: *functest-kubernetes-jobs
718       - multijob:
719           name: remove dependency
720           projects:
721             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
722               <<: *functest-kubernetes-jobs
723       - multijob:
724           name: pull dependency
725           projects:
726             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
727               <<: *functest-kubernetes-jobs
728       - multijob:
729           name: build opnfv/functest-kubernetes-core
730           projects:
731             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate'
732               <<: *functest-kubernetes-jobs
733       - multijob:
734           name: build containers
735           projects:
736             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate'
737               <<: *functest-kubernetes-jobs
738             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate'
739               <<: *functest-kubernetes-jobs
740             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate'
741               <<: *functest-kubernetes-jobs
742       - multijob:
743           name: build opnfv/functest-kubernetes-smoke
744           projects:
745             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate'
746               <<: *functest-kubernetes-jobs
747       - multijob:
748           name: build opnfv/functest-kubernetes-benchmarking
749           projects:
750             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate'
751               <<: *functest-kubernetes-jobs
752       - multijob:
753           name: opnfv/functest-kubernetes-healthcheck:{tag}
754           projects:
755             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
756               <<: *functest-kubernetes-jobs
757             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
758               <<: *functest-kubernetes-jobs
759       - multijob:
760           name: opnfv/functest-kubernetes-smoke:{tag}
761           projects:
762             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
763               <<: *functest-kubernetes-jobs
764             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
765               <<: *functest-kubernetes-jobs
766             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
767               <<: *functest-kubernetes-jobs
768             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network_features-run'
769               <<: *functest-kubernetes-jobs
770             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
771               <<: *functest-kubernetes-jobs
772       - multijob:
773           name: opnfv/functest-kubernetes-security:{tag}
774           projects:
775             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
776               <<: *functest-kubernetes-jobs
777             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
778               <<: *functest-kubernetes-jobs
779             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
780               <<: *functest-kubernetes-jobs
781       - multijob:
782           name: opnfv/functest-kubernetes-benchmarking:{tag}
783           projects:
784             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
785               <<: *functest-kubernetes-jobs
786       - multijob:
787           name: opnfv/functest-kubernetes-cnf:{tag}
788           projects:
789             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
790               <<: *functest-kubernetes-jobs
791             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
792               <<: *functest-kubernetes-jobs
793             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run'
794               <<: *functest-kubernetes-jobs
795
796 - builder:
797     name: functest-kubernetes-push-containers
798     builders:
799       - shell: |
800           set +x
801           if [ "{repo}" = "_" ]; then
802             image={container}:{tag}
803           elif [ "{port}" = "None" ]; then
804             image={repo}/{container}:{tag}
805           else
806             image={repo}:{port}/{container}:{tag}
807           fi
808           docker push $image
809
810 - trigger:
811     name: functest-kubernetes-commit
812     triggers:
813       - pollscm:
814           cron: "*/30 * * * *"
815
816 - job-template:
817     name: 'functest-kubernetes-{repo}-{container}-{tag}-build'
818     parameters:
819       - functest-kubernetes-slave:
820           slave: '{slave}'
821     scm:
822       - functest-kubernetes-scm:
823           ref: '{branch}'
824     builders:
825       - functest-kubernetes-build-containers:
826           <<: *functest-kubernetes-build-containers
827           ref: '{branch}'
828       - functest-kubernetes-push-containers:
829           <<: *functest-kubernetes-build-containers
830           ref: '{branch}'
831
832 - project:
833     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build
834     <<: *functest-kubernetes-params
835     container: functest-kubernetes-core
836     ref_arg: BRANCH
837     path: docker/core
838     jobs:
839       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
840
841 - project:
842     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build
843     <<: *functest-kubernetes-params
844     container: functest-kubernetes-healthcheck
845     ref_arg:
846     path: docker/healthcheck
847     jobs:
848       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
849
850 - project:
851     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build
852     <<: *functest-kubernetes-params
853     container: functest-kubernetes-cnf
854     ref_arg: BRANCH
855     path: docker/cnf
856     jobs:
857       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
858
859 - project:
860     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build
861     <<: *functest-kubernetes-params
862     container: functest-kubernetes-security
863     ref_arg: BRANCH
864     path: docker/security
865     jobs:
866       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
867
868 - project:
869     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build
870     <<: *functest-kubernetes-params
871     container: functest-kubernetes-smoke
872     ref_arg:
873     path: docker/smoke
874     jobs:
875       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
876
877 - project:
878     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build
879     <<: *functest-kubernetes-params
880     container: functest-kubernetes-benchmarking
881     ref_arg:
882     path: docker/benchmarking
883     jobs:
884       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
885
886
887 - job-template:
888     name: 'functest-kubernetes-{tag}-docker'
889     project-type: multijob
890     triggers:
891       - functest-kubernetes-commit
892     scm:
893       - functest-kubernetes-scm:
894           ref: '{branch}'
895     parameters:
896       - functest-kubernetes-slave:
897           slave: '{slave}'
898       - functest-kubernetes-DEPLOY_SCENARIO:
899           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
900       - functest-kubernetes-DEBUG:
901           DEBUG: 'true'
902     builders:
903       - multijob:
904           name: remove dependency
905           projects:
906             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
907               <<: *functest-kubernetes-jobs
908       - multijob:
909           name: pull dependency
910           projects:
911             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
912               <<: *functest-kubernetes-jobs
913       - multijob:
914           name: build opnfv/functest-kubernetes-core
915           projects:
916             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build'
917               <<: *functest-kubernetes-jobs
918       - multijob:
919           name: build containers
920           projects:
921             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build'
922               <<: *functest-kubernetes-jobs
923             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build'
924               <<: *functest-kubernetes-jobs
925             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build'
926               <<: *functest-kubernetes-jobs
927       - multijob:
928           name: build opnfv/functest-kubernetes-smoke
929           projects:
930             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build'
931               <<: *functest-kubernetes-jobs
932       - multijob:
933           name: build opnfv/functest-kubernetes-benchmarking
934           projects:
935             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build'
936               <<: *functest-kubernetes-jobs
937
938 - builder:
939     name: functest-kubernetes-trivy
940     builders:
941       - shell: |
942           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b .
943           if [ "{repo}" = "_" ]; then
944             image={container}:{tag}
945           elif [ "{port}" = "None" ]; then
946             image={repo}/{container}:{tag}
947           else
948             image={repo}:{port}/{container}:{tag}
949           fi
950           ./trivy --exit-code 1 $image
951
952 - job-template:
953     name: 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
954     parameters:
955       - functest-kubernetes-slave:
956           slave: '{slave}'
957     builders:
958       - functest-kubernetes-trivy:
959           <<: *functest-kubernetes-containers
960
961 - project:
962     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-trivy'
963     <<: *functest-kubernetes-params
964     container: 'functest-kubernetes-healthcheck'
965     jobs:
966       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
967 - project:
968     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-trivy'
969     <<: *functest-kubernetes-params
970     container: 'functest-kubernetes-smoke'
971     jobs:
972       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
973 - project:
974     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-trivy'
975     <<: *functest-kubernetes-params
976     container: 'functest-kubernetes-security'
977     jobs:
978       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
979 - project:
980     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-trivy'
981     <<: *functest-kubernetes-params
982     container: 'functest-kubernetes-benchmarking'
983     jobs:
984       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
985 - project:
986     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-trivy'
987     <<: *functest-kubernetes-params
988     container: 'functest-kubernetes-cnf'
989     jobs:
990       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
991
992 - project:
993     name: 'functest-kubernetes'
994     <<: *functest-kubernetes-params
995     jobs:
996       - 'functest-kubernetes-{tag}-daily'
997       - 'functest-kubernetes-{tag}-review'
998       - 'functest-kubernetes-{tag}-docker'
999
1000
1001 - view:
1002     name: functest-kubernetes-daily
1003     view-type: list
1004     columns:
1005       - status
1006       - weather
1007       - job
1008       - last-success
1009       - last-failure
1010       - last-duration
1011     regex: ^functest-kubernetes-[a-z-]+-daily$
1012
1013 - view:
1014     name: functest-kubernetes-review
1015     view-type: list
1016     columns:
1017       - status
1018       - weather
1019       - job
1020       - last-success
1021       - last-failure
1022       - last-duration
1023     regex: ^functest-kubernetes-[a-z-]+-review$
1024
1025 - view:
1026     name: functest-kubernetes-tox
1027     view-type: list
1028     columns:
1029       - status
1030       - weather
1031       - job
1032       - last-success
1033       - last-failure
1034       - last-duration
1035     regex: ^functest-kubernetes-[a-z-]+-tox$
1036
1037 - view:
1038     name: functest-kubernetes-docker
1039     view-type: list
1040     columns:
1041       - status
1042       - weather
1043       - job
1044       - last-success
1045       - last-failure
1046       - last-duration
1047     regex: ^functest-kubernetes-[a-z-]+-docker$
1048
1049 - view:
1050     name: functest-kubernetes-trivy
1051     view-type: list
1052     columns:
1053       - status
1054       - weather
1055       - job
1056       - last-success
1057       - last-failure
1058       - last-duration
1059     regex: ^functest-kubernetes-[a-z-]+-trivy$