bd8ce618f3ad5eaa81811c59a3d50029c20e2d9e
[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: functest_k8s_leguer
25           dependency: 3.12
26       - kali:
27           from:
28           buildargs:
29           branch: stable/kali
30           slave: functest_k8s_kali
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       - k8s_conformance_serial
260       - sig_api_machinery
261       - sig_apps
262       - sig_auth
263       - sig_cli
264       - sig_cluster_lifecycle
265       - sig_instrumentation
266       - sig_network
267       - sig_network_features
268       - sig_node
269       - sig_storage
270     privileged: 'false'
271     network: bridge
272     exclude:
273       - {'tag': 'jerma', 'test': 'k8s_conformance_serial'}
274       - {'tag': 'jerma', 'test': 'sig_api_machinery'}
275       - {'tag': 'jerma', 'test': 'sig_apps'}
276       - {'tag': 'jerma', 'test': 'sig_auth'}
277       - {'tag': 'jerma', 'test': 'sig_cli'}
278       - {'tag': 'jerma', 'test': 'sig_cluster_lifecycle'}
279       - {'tag': 'jerma', 'test': 'sig_instrumentation'}
280       - {'tag': 'jerma', 'test': 'sig_network'}
281       - {'tag': 'jerma', 'test': 'sig_network_features'}
282       - {'tag': 'jerma', 'test': 'sig_node'}
283       - {'tag': 'jerma', 'test': 'sig_storage'}
284       - {'tag': 'iruya', 'test': 'k8s_conformance_serial'}
285       - {'tag': 'iruya', 'test': 'sig_api_machinery'}
286       - {'tag': 'iruya', 'test': 'sig_apps'}
287       - {'tag': 'iruya', 'test': 'sig_auth'}
288       - {'tag': 'iruya', 'test': 'sig_cli'}
289       - {'tag': 'iruya', 'test': 'sig_cluster_lifecycle'}
290       - {'tag': 'iruya', 'test': 'sig_instrumentation'}
291       - {'tag': 'iruya', 'test': 'sig_network'}
292       - {'tag': 'iruya', 'test': 'sig_network_features'}
293       - {'tag': 'iruya', 'test': 'sig_node'}
294       - {'tag': 'iruya', 'test': 'sig_storage'}
295       - {'tag': 'hunter', 'test': 'k8s_conformance_serial'}
296       - {'tag': 'hunter', 'test': 'sig_api_machinery'}
297       - {'tag': 'hunter', 'test': 'sig_apps'}
298       - {'tag': 'hunter', 'test': 'sig_auth'}
299       - {'tag': 'hunter', 'test': 'sig_cli'}
300       - {'tag': 'hunter', 'test': 'sig_cluster_lifecycle'}
301       - {'tag': 'hunter', 'test': 'sig_instrumentation'}
302       - {'tag': 'hunter', 'test': 'sig_network'}
303       - {'tag': 'hunter', 'test': 'sig_network_features'}
304       - {'tag': 'hunter', 'test': 'sig_node'}
305       - {'tag': 'hunter', 'test': 'sig_storage'}
306     jobs:
307       - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
308
309 - project:
310     name: 'functest-kubernetes-opnfv-functest-kubernetes-security'
311     <<: *functest-kubernetes-params
312     container: 'functest-kubernetes-security'
313     test:
314       - kube_hunter
315       - kube_bench_master
316       - kube_bench_node
317     privileged: 'false'
318     network: bridge
319     jobs:
320       - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
321
322 - project:
323     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking'
324     <<: *functest-kubernetes-params
325     container: 'functest-kubernetes-benchmarking'
326     test:
327       - xrally_kubernetes_full
328     privileged: 'false'
329     network: bridge
330     jobs:
331       - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
332
333 - project:
334     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf'
335     <<: *functest-kubernetes-params
336     container: 'functest-kubernetes-cnf'
337     test:
338       - k8s_vims
339       - helm_vims
340       - cnf_conformance
341     privileged: 'false'
342     network: bridge
343     jobs:
344       - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
345
346
347 - builder:
348     name: functest-kubernetes-zip
349     builders:
350       - shell: |
351           set +x
352           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true
353           if [ "{repo}" = "_" ]; then
354             image={container}:{tag}
355           elif [ "{port}" = "None" ]; then
356             image={repo}/{container}:{tag}
357           else
358             image={repo}:{port}/{container}:{tag}
359           fi
360           docker run --rm \
361             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
362             -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \
363             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \
364             -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
365             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
366             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
367             -e BUILD_TAG=$BUILD_TAG \
368             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
369             -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \
370             -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \
371             $image zip_campaign
372
373 - job-template:
374     name: 'functest-kubernetes-{tag}-zip'
375     parameters:
376       - functest-kubernetes-slave:
377           slave: '{slave}'
378       - functest-kubernetes-build_tag:
379           build_tag: ''
380       - functest-kubernetes-DEPLOY_SCENARIO:
381           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
382     builders:
383       - functest-kubernetes-zip:
384           <<: *functest-kubernetes-containers
385
386 - project:
387     name: 'functest-kubernetes-{tag}-zip'
388     <<: *functest-kubernetes-params
389     container: 'functest-kubernetes-healthcheck'
390     jobs:
391       - 'functest-kubernetes-{tag}-zip'
392
393 - job-template:
394     name: 'functest-kubernetes-{tag}-daily'
395     project-type: multijob
396     triggers:
397       - timed: '@weekly'
398     parameters:
399       - functest-kubernetes-slave:
400           slave: '{slave}'
401       - functest-kubernetes-build_tag:
402           build_tag: ''
403       - functest-kubernetes-DEPLOY_SCENARIO:
404           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
405     properties:
406       - build-blocker:
407           use-build-blocker: true
408           blocking-level: 'NODE'
409           blocking-jobs:
410             - '^functest-kubernetes-{tag}-(daily|docker|review)$'
411     builders:
412       - multijob:
413           name: remove former images
414           projects:
415             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
416               <<: *functest-kubernetes-jobs
417             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
418               <<: *functest-kubernetes-jobs
419             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
420               <<: *functest-kubernetes-jobs
421             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
422               <<: *functest-kubernetes-jobs
423             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
424               <<: *functest-kubernetes-jobs
425       - multijob:
426           name: pull containers
427           projects:
428             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-pull'
429               <<: *functest-kubernetes-jobs
430             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-pull'
431               <<: *functest-kubernetes-jobs
432             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-pull'
433               <<: *functest-kubernetes-jobs
434             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull'
435               <<: *functest-kubernetes-jobs
436             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-pull'
437               <<: *functest-kubernetes-jobs
438       - multijob:
439           name: opnfv/functest-kubernetes-healthcheck:{tag}
440           projects:
441             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
442               <<: *functest-kubernetes-jobs
443             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
444               <<: *functest-kubernetes-jobs
445       - multijob:
446           name: opnfv/functest-kubernetes-smoke:{tag}
447           execution-type: SEQUENTIALLY
448           projects:
449             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
450               <<: *functest-kubernetes-jobs
451             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
452               <<: *functest-kubernetes-jobs
453             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run'
454               <<: *functest-kubernetes-jobs
455             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run'
456               <<: *functest-kubernetes-jobs
457             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run'
458               <<: *functest-kubernetes-jobs
459             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run'
460               <<: *functest-kubernetes-jobs
461             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cli-run'
462               <<: *functest-kubernetes-jobs
463             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run'
464               <<: *functest-kubernetes-jobs
465             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run'
466               <<: *functest-kubernetes-jobs
467             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
468               <<: *functest-kubernetes-jobs
469             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network_features-run'
470               <<: *functest-kubernetes-jobs
471             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run'
472               <<: *functest-kubernetes-jobs
473             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
474               <<: *functest-kubernetes-jobs
475       - multijob:
476           name: opnfv/functest-kubernetes-security:{tag}
477           projects:
478             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
479               <<: *functest-kubernetes-jobs
480             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
481               <<: *functest-kubernetes-jobs
482             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
483               <<: *functest-kubernetes-jobs
484       - multijob:
485           name: opnfv/functest-kubernetes-benchmarking:{tag}
486           projects:
487             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
488               <<: *functest-kubernetes-jobs
489       - multijob:
490           name: opnfv/functest-kubernetes-cnf:{tag}
491           projects:
492             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
493               <<: *functest-kubernetes-jobs
494             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
495               <<: *functest-kubernetes-jobs
496             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run'
497               <<: *functest-kubernetes-jobs
498       - multijob:
499           name: dump all campaign data
500           projects:
501             - name: 'functest-kubernetes-{tag}-zip'
502               <<: *functest-kubernetes-jobs
503
504 - project:
505     name: 'functest-kubernetes-daily'
506     <<: *functest-kubernetes-params
507     jobs:
508       - 'functest-kubernetes-{tag}-daily'
509
510 - view:
511     name: functest-kubernetes
512     view-type: list
513     columns:
514       - status
515       - weather
516       - job
517       - last-success
518       - last-failure
519       - last-duration
520     regex: ^functest-kubernetes-[a-z0-9.]+-daily$
521
522 - functest-kubernetes-build-containers: &functest-kubernetes-build-containers
523     name: 'functest-kubernetes-build-containers'
524     <<: *functest-kubernetes-containers
525     ref_arg: '{ref_arg}'
526     path: '{path}'
527     buildargs: '{buildargs}'
528     from: '{from}'
529
530 - builder:
531     name: functest-kubernetes-build-containers
532     builders:
533       - shell: |
534           set +x
535           if [ "{repo}" = "_" ]; then
536             image={container}:{tag}
537           elif [ "{port}" = "None" ]; then
538             image={repo}/{container}:{tag}
539           else
540             image={repo}:{port}/{container}:{tag}
541           fi
542           build_args=""
543           if [ "{buildargs}" != "None" ]; then
544             build_args="{buildargs}"
545           fi
546           if [ "{ref_arg}" != "None" ]; then
547             build_args="$build_args --build-arg {ref_arg}={ref}"
548           fi
549           cd {path}
550           if [ "{from}" != "None" ]; then
551               sed -i {from} Dockerfile
552           fi
553           docker build $build_args \
554             --pull=false --no-cache --force-rm=true \
555             -t $image .
556
557 - scm:
558     name: functest-kubernetes-scm
559     scm:
560       - git:
561           url: 'https://gerrit.opnfv.org/gerrit/functest-kubernetes'
562           refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
563           branches:
564             - '{ref}'
565
566 - functest-kubernetes-dep: &functest-kubernetes-dep
567     name: 'functest-kubernetes-containers'
568     repo: '{repo}'
569     port: '{port}'
570     tag: '{tag}'
571     dependency: '{dependency}'
572
573 - builder:
574     name: functest-kubernetes-pull-dep-images
575     builders:
576       - shell: |
577           set +x
578           if [ "_" = "_" ]; then
579             image=alpine:{dependency}
580           elif [ "None" = "None" ]; then
581             image=_/alpine:{dependency}
582           else
583             image=_:/alpine:{dependency}
584           fi
585           docker pull $image || true
586
587 - builder:
588     name: functest-kubernetes-remove-dep-images
589     builders:
590       - shell: |
591           set +x
592           if [ "_" = "_" ]; then
593             image=alpine:{dependency}
594           elif [ "" = "None" ]; then
595             image=_/alpine:{dependency}
596           else
597             image=_:/alpine:{dependency}
598           fi
599           docker rmi $image || true
600
601 - job-template:
602     name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
603     parameters:
604       - functest-kubernetes-slave:
605           slave: '{slave}'
606     builders:
607       - functest-kubernetes-pull-dep-images:
608           <<: *functest-kubernetes-dep
609
610 - project:
611     name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
612     <<: *functest-kubernetes-params
613     jobs:
614       - 'functest-kubernetes-{repo}-{tag}-dep-pull'
615
616 - job-template:
617     name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
618     parameters:
619       - functest-kubernetes-slave:
620           slave: '{slave}'
621     builders:
622       - functest-kubernetes-remove-dep-images:
623           <<: *functest-kubernetes-dep
624
625 - project:
626     name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
627     <<: *functest-kubernetes-params
628     jobs:
629       - 'functest-kubernetes-{repo}-{tag}-dep-rmi'
630
631 - builder:
632     name: functest-kubernetes-tox
633     builders:
634       - shell: |
635           set +x
636           apt-get update && apt-get install \
637             software-properties-common gpg -y
638           add-apt-repository -y ppa:deadsnakes/ppa
639           apt-get update && apt-get install python3.8 \
640             python3.8-dev python3.8-distutils \
641             python3.7 python3.7-dev python3.6 python3.6-dev \
642             python python-dev python3-pip enchant -y
643           pip3 install tox tox-pip-version
644
645           tox
646
647 - job-template:
648     name: 'functest-kubernetes-{tag}-tox'
649     scm:
650       - functest-kubernetes-scm:
651           ref: $GERRIT_REFSPEC
652     triggers:
653       - functest-kubernetes-patchset-created:
654           branch: '{branch}'
655     parameters:
656       - functest-kubernetes-slave:
657           slave: '{slave}'
658     builders:
659       - functest-kubernetes-tox:
660
661 - project:
662     name: functest-kubernetes-tox
663     <<: *functest-kubernetes-params
664     jobs:
665       - 'functest-kubernetes-{tag}-tox'
666
667 - job-template:
668     name: 'functest-kubernetes-{repo}-{container}-{tag}-gate'
669     parameters:
670       - functest-kubernetes-slave:
671           slave: '{slave}'
672     scm:
673       - functest-kubernetes-scm:
674           ref: $GERRIT_REFSPEC
675     builders:
676       - functest-kubernetes-build-containers:
677           <<: *functest-kubernetes-build-containers
678           ref: $GERRIT_REFSPEC
679           buildargs: '{buildargs}'
680
681 - project:
682     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate
683     <<: *functest-kubernetes-params
684     container: functest-kubernetes-core
685     ref_arg: BRANCH
686     path: docker/core
687     jobs:
688       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
689
690 - project:
691     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate
692     <<: *functest-kubernetes-params
693     container: functest-kubernetes-healthcheck
694     ref_arg:
695     path: docker/healthcheck
696     jobs:
697       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
698
699 - project:
700     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate
701     <<: *functest-kubernetes-params
702     container: functest-kubernetes-cnf
703     ref_arg: BRANCH
704     path: docker/cnf
705     jobs:
706       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
707
708 - project:
709     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate
710     <<: *functest-kubernetes-params
711     container: functest-kubernetes-security
712     ref_arg: BRANCH
713     path: docker/security
714     jobs:
715       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
716
717 - project:
718     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate
719     <<: *functest-kubernetes-params
720     container: functest-kubernetes-smoke
721     ref_arg:
722     path: docker/smoke
723     jobs:
724       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
725
726 - project:
727     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate
728     <<: *functest-kubernetes-params
729     container: functest-kubernetes-benchmarking
730     ref_arg:
731     path: docker/benchmarking
732     jobs:
733       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
734
735
736 - trigger:
737     name: functest-kubernetes-patchset-created
738     triggers:
739       - gerrit:
740           trigger-on:
741             - patchset-created-event
742             - comment-added-contains-event:
743                 comment-contains-value: 'recheck'
744             - comment-added-contains-event:
745                 comment-contains-value: 'reverify'
746           projects:
747             - project-compare-type: 'ANT'
748               project-pattern: 'functest-kubernetes'
749               branches:
750                 - branch-compare-type: 'ANT'
751                   branch-pattern: '**/{branch}'
752
753 - job-template:
754     name: 'functest-kubernetes-{tag}-review'
755     project-type: multijob
756     triggers:
757       - functest-kubernetes-patchset-created:
758           branch: '{branch}'
759     parameters:
760       - functest-kubernetes-slave:
761           slave: '{slave}'
762       - functest-kubernetes-build_tag:
763           build_tag: ''
764       - functest-kubernetes-DEPLOY_SCENARIO:
765           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
766     properties:
767       - build-blocker:
768           use-build-blocker: true
769           blocking-level: 'NODE'
770           blocking-jobs:
771             - '^functest-kubernetes-{tag}-(daily|docker|review)$'
772     builders:
773       - multijob:
774           name: remove former images
775           projects:
776             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
777               <<: *functest-kubernetes-jobs
778             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
779               <<: *functest-kubernetes-jobs
780             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
781               <<: *functest-kubernetes-jobs
782             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
783               <<: *functest-kubernetes-jobs
784             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
785               <<: *functest-kubernetes-jobs
786       - multijob:
787           name: remove dependency
788           projects:
789             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
790               <<: *functest-kubernetes-jobs
791       - multijob:
792           name: pull dependency
793           projects:
794             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
795               <<: *functest-kubernetes-jobs
796       - multijob:
797           name: build opnfv/functest-kubernetes-core
798           projects:
799             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate'
800               <<: *functest-kubernetes-jobs
801       - multijob:
802           name: build containers
803           projects:
804             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate'
805               <<: *functest-kubernetes-jobs
806             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate'
807               <<: *functest-kubernetes-jobs
808             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate'
809               <<: *functest-kubernetes-jobs
810       - multijob:
811           name: build opnfv/functest-kubernetes-smoke
812           projects:
813             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate'
814               <<: *functest-kubernetes-jobs
815       - multijob:
816           name: build opnfv/functest-kubernetes-benchmarking
817           projects:
818             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate'
819               <<: *functest-kubernetes-jobs
820       - multijob:
821           name: opnfv/functest-kubernetes-healthcheck:{tag}
822           projects:
823             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
824               <<: *functest-kubernetes-jobs
825             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
826               <<: *functest-kubernetes-jobs
827       - multijob:
828           name: opnfv/functest-kubernetes-smoke:{tag}
829           execution-type: SEQUENTIALLY
830           projects:
831             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
832               <<: *functest-kubernetes-jobs
833             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
834               <<: *functest-kubernetes-jobs
835             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run'
836               <<: *functest-kubernetes-jobs
837             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run'
838               <<: *functest-kubernetes-jobs
839             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run'
840               <<: *functest-kubernetes-jobs
841             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run'
842               <<: *functest-kubernetes-jobs
843             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cli-run'
844               <<: *functest-kubernetes-jobs
845             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run'
846               <<: *functest-kubernetes-jobs
847             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run'
848               <<: *functest-kubernetes-jobs
849             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
850               <<: *functest-kubernetes-jobs
851             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network_features-run'
852               <<: *functest-kubernetes-jobs
853             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run'
854               <<: *functest-kubernetes-jobs
855             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
856               <<: *functest-kubernetes-jobs
857       - multijob:
858           name: opnfv/functest-kubernetes-security:{tag}
859           projects:
860             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
861               <<: *functest-kubernetes-jobs
862             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
863               <<: *functest-kubernetes-jobs
864             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
865               <<: *functest-kubernetes-jobs
866       - multijob:
867           name: opnfv/functest-kubernetes-benchmarking:{tag}
868           projects:
869             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
870               <<: *functest-kubernetes-jobs
871       - multijob:
872           name: opnfv/functest-kubernetes-cnf:{tag}
873           projects:
874             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
875               <<: *functest-kubernetes-jobs
876             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
877               <<: *functest-kubernetes-jobs
878             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run'
879               <<: *functest-kubernetes-jobs
880
881 - project:
882     name: 'functest-kubernetes-review'
883     <<: *functest-kubernetes-params
884     jobs:
885       - 'functest-kubernetes-{tag}-review'
886
887 - view:
888     name: functest-kubernetes-review
889     view-type: list
890     columns:
891       - status
892       - weather
893       - job
894       - last-success
895       - last-failure
896       - last-duration
897     regex: ^functest-kubernetes-[a-z0-9.]+-review$
898
899 - view:
900     name: functest-kubernetes-tox
901     view-type: list
902     columns:
903       - status
904       - weather
905       - job
906       - last-success
907       - last-failure
908       - last-duration
909     regex: ^functest-kubernetes-[a-z0-9.]+-tox$
910
911 - builder:
912     name: functest-kubernetes-push-containers
913     builders:
914       - shell: |
915           set +x
916           if [ "{repo}" = "_" ]; then
917             image={container}:{tag}
918           elif [ "{port}" = "None" ]; then
919             image={repo}/{container}:{tag}
920           else
921             image={repo}:{port}/{container}:{tag}
922           fi
923           docker push $image
924
925 - trigger:
926     name: functest-kubernetes-commit
927     triggers:
928       - pollscm:
929           cron: "*/30 * * * *"
930
931 - job-template:
932     name: 'functest-kubernetes-{repo}-{container}-{tag}-build'
933     parameters:
934       - functest-kubernetes-slave:
935           slave: '{slave}'
936     scm:
937       - functest-kubernetes-scm:
938           ref: '{branch}'
939     builders:
940       - functest-kubernetes-build-containers:
941           <<: *functest-kubernetes-build-containers
942           ref: '{branch}'
943           buildargs: '{buildargs}'
944       - functest-kubernetes-push-containers:
945           <<: *functest-kubernetes-build-containers
946           ref: '{branch}'
947
948 - project:
949     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build
950     <<: *functest-kubernetes-params
951     container: functest-kubernetes-core
952     ref_arg: BRANCH
953     path: docker/core
954     jobs:
955       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
956
957 - project:
958     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build
959     <<: *functest-kubernetes-params
960     container: functest-kubernetes-healthcheck
961     ref_arg:
962     path: docker/healthcheck
963     jobs:
964       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
965
966 - project:
967     name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build
968     <<: *functest-kubernetes-params
969     container: functest-kubernetes-cnf
970     ref_arg: BRANCH
971     path: docker/cnf
972     jobs:
973       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
974
975 - project:
976     name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build
977     <<: *functest-kubernetes-params
978     container: functest-kubernetes-security
979     ref_arg: BRANCH
980     path: docker/security
981     jobs:
982       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
983
984 - project:
985     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build
986     <<: *functest-kubernetes-params
987     container: functest-kubernetes-smoke
988     ref_arg:
989     path: docker/smoke
990     jobs:
991       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
992
993 - project:
994     name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build
995     <<: *functest-kubernetes-params
996     container: functest-kubernetes-benchmarking
997     ref_arg:
998     path: docker/benchmarking
999     jobs:
1000       - 'functest-kubernetes-{repo}-{container}-{tag}-build'
1001
1002
1003 - job-template:
1004     name: 'functest-kubernetes-{tag}-docker'
1005     project-type: multijob
1006     triggers:
1007       - functest-kubernetes-commit
1008     scm:
1009       - functest-kubernetes-scm:
1010           ref: '{branch}'
1011     parameters:
1012       - functest-kubernetes-slave:
1013           slave: '{slave}'
1014     properties:
1015       - build-blocker:
1016           use-build-blocker: true
1017           blocking-level: 'NODE'
1018           blocking-jobs:
1019             - '^functest-kubernetes-{tag}-(daily|docker|review)$'
1020     builders:
1021       - multijob:
1022           name: remove dependency
1023           projects:
1024             - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
1025               <<: *functest-kubernetes-jobs
1026       - multijob:
1027           name: pull dependency
1028           projects:
1029             - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
1030               <<: *functest-kubernetes-jobs
1031       - multijob:
1032           name: build opnfv/functest-kubernetes-core
1033           projects:
1034             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build'
1035               <<: *functest-kubernetes-jobs
1036       - multijob:
1037           name: build containers
1038           projects:
1039             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build'
1040               <<: *functest-kubernetes-jobs
1041             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build'
1042               <<: *functest-kubernetes-jobs
1043             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build'
1044               <<: *functest-kubernetes-jobs
1045       - multijob:
1046           name: build opnfv/functest-kubernetes-smoke
1047           projects:
1048             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build'
1049               <<: *functest-kubernetes-jobs
1050       - multijob:
1051           name: build opnfv/functest-kubernetes-benchmarking
1052           projects:
1053             - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build'
1054               <<: *functest-kubernetes-jobs
1055
1056 - builder:
1057     name: functest-kubernetes-trivy
1058     builders:
1059       - shell: |
1060           apt-get update && apt-get install curl -y
1061
1062           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b .
1063           if [ "{repo}" = "_" ]; then
1064             image={container}:{tag}
1065           elif [ "{port}" = "None" ]; then
1066             image={repo}/{container}:{tag}
1067           else
1068             image={repo}:{port}/{container}:{tag}
1069           fi
1070           ./trivy --exit-code 1 $image
1071
1072 - job-template:
1073     name: 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1074     triggers:
1075       - timed: '@weekly'
1076     parameters:
1077       - functest-kubernetes-slave:
1078           slave: '{slave}'
1079     builders:
1080       - functest-kubernetes-trivy:
1081           <<: *functest-kubernetes-containers
1082
1083 - project:
1084     name: 'functest-kubernetes-opnfv-functest-kubernetes-core-trivy'
1085     <<: *functest-kubernetes-params
1086     container: 'functest-kubernetes-core'
1087     jobs:
1088       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1089
1090 - project:
1091     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-trivy'
1092     <<: *functest-kubernetes-params
1093     container: 'functest-kubernetes-healthcheck'
1094     jobs:
1095       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1096
1097 - project:
1098     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-trivy'
1099     <<: *functest-kubernetes-params
1100     container: 'functest-kubernetes-cnf'
1101     jobs:
1102       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1103
1104 - project:
1105     name: 'functest-kubernetes-opnfv-functest-kubernetes-security-trivy'
1106     <<: *functest-kubernetes-params
1107     container: 'functest-kubernetes-security'
1108     jobs:
1109       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1110
1111 - project:
1112     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-trivy'
1113     <<: *functest-kubernetes-params
1114     container: 'functest-kubernetes-smoke'
1115     jobs:
1116       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1117
1118 - project:
1119     name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-trivy'
1120     <<: *functest-kubernetes-params
1121     container: 'functest-kubernetes-benchmarking'
1122     jobs:
1123       - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
1124
1125 - project:
1126     name: 'functest-kubernetes'
1127     <<: *functest-kubernetes-params
1128     jobs:
1129       - 'functest-kubernetes-{tag}-docker'
1130
1131 - view:
1132     name: functest-kubernetes-docker
1133     view-type: list
1134     columns:
1135       - status
1136       - weather
1137       - job
1138       - last-success
1139       - last-failure
1140       - last-duration
1141     regex: ^functest-kubernetes-[a-z0-9.]+-docker$
1142
1143 - view:
1144     name: functest-kubernetes-trivy
1145     view-type: list
1146     columns:
1147       - status
1148       - weather
1149       - job
1150       - last-success
1151       - last-failure
1152       - last-duration
1153     regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-trivy$