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