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