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