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