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