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