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