Merge "Fix Functest K8s v1.26 jobs"
[releng.git] / jjb / cntt / ri2.yaml
1 ---
2 - ri2-containers: &ri2-containers
3     name: 'ri2-containers'
4     repo: '{repo}'
5     port: '{port}'
6     container: '{container}'
7     tag: '{tag}'
8
9 - ri2-params: &ri2-params
10     name: 'ri2-params'
11     repo: 'opnfv'
12     port:
13     tag:
14       - v1.21:
15           slave: ri2
16
17 - ri2-jobs: &ri2-jobs
18     name: 'ri2-jobs'
19     current-parameters: true
20
21 - parameter:
22     name: ri2-slave
23     parameters:
24       - label:
25           name: slave
26           default: '{slave}'
27
28 - parameter:
29     name: ri2-build_tag
30     parameters:
31       - random-string:
32           name: build_tag
33
34 - parameter:
35     name: ri2-DEPLOY_SCENARIO
36     parameters:
37       - string:
38           name: DEPLOY_SCENARIO
39           default: k8-nosdn-nofeature-noha
40
41 - ri2-run-containers: &ri2-run-containers
42     name: 'ri2-run-containers'
43     <<: *ri2-containers
44     test: '{test}'
45     privileged: '{privileged}'
46     volumes: '{volumes}'
47     env: '{env}'
48     network: '{network}'
49     uid: '{uid}'
50     gid: '{gid}'
51     published_ports: '{published_ports}'
52
53 - builder:
54     name: ri2-pull-containers
55     builders:
56       - shell: |
57           set +x
58           if [ "{repo}" = "_" ]; then
59             image={container}:{tag}
60           elif [ "{port}" = "None" ]; then
61             image={repo}/{container}:{tag}
62           else
63             image={repo}:{port}/{container}:{tag}
64           fi
65           sudo docker pull $image
66
67 - builder:
68     name: ri2-run-containers
69     builders:
70       - shell: |
71           set +x
72           volumes=;
73           if [ "{volumes}" != "None" ]; then
74             for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
75               do volumes="-v $i $volumes"; done
76           fi
77           env=;
78           if [ "{env}" != "None" ]; then
79             for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
80               do env="-e $i $env"; done
81           fi
82           published_ports=;
83           if [ "{published_ports}" != "None" ]; then
84             for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
85               do published_ports="-p $i $published_ports"; done
86           fi
87           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
88           if [ "{repo}" = "_" ]; then
89             image={container}:{tag}
90           elif [ "{port}" = "None" ]; then
91             image={repo}/{container}:{tag}
92           else
93             image={repo}:{port}/{container}:{tag}
94           fi
95           sudo mkdir -p $WORKSPACE/results
96           sudo chown {uid}:{gid} $WORKSPACE/results
97           sudo docker run --rm \
98             --privileged={privileged} \
99             --network={network} \
100             $volumes \
101             $env \
102             $published_ports \
103             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
104             -e S3_DST_URL=s3://artifacts.opnfv.org/ri2/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
105             -e HTTP_DST_URL=http://artifacts.opnfv.org/ri2/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
106             -v /home/opnfv/ri2/.boto:/etc/boto.cfg \
107             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
108             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
109             -e NODE_NAME=$slave \
110             -e BUILD_TAG=$BUILD_TAG \
111             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
112             $image run_tests -t {test} -p -r
113
114 - builder:
115     name: ri2-remove-images
116     builders:
117       - shell: |
118           set +x
119           if [ "{repo}" = "_" ]; then
120             image={container}:{tag}
121           elif [ "{port}" = "None" ]; then
122             image={repo}/{container}:{tag}
123           else
124             image={repo}:{port}/{container}:{tag}
125           fi
126           sudo docker rmi $image || true
127
128 - job-template:
129     name: 'ri2-{repo}-{container}-{tag}-pull'
130     parameters:
131       - ri2-slave:
132           slave: '{slave}'
133     builders:
134       - ri2-pull-containers:
135           <<: *ri2-containers
136
137 - project:
138     name: 'ri2-opnfv-functest-kubernetes-healthcheck-pull'
139     <<: *ri2-params
140     container: 'functest-kubernetes-healthcheck'
141     jobs:
142       - 'ri2-{repo}-{container}-{tag}-pull'
143
144 - project:
145     name: 'ri2-opnfv-functest-kubernetes-smoke-pull'
146     <<: *ri2-params
147     container: 'functest-kubernetes-smoke'
148     jobs:
149       - 'ri2-{repo}-{container}-{tag}-pull'
150
151 - project:
152     name: 'ri2-opnfv-functest-kubernetes-security-pull'
153     <<: *ri2-params
154     container: 'functest-kubernetes-security'
155     jobs:
156       - 'ri2-{repo}-{container}-{tag}-pull'
157
158 - project:
159     name: 'ri2-opnfv-functest-kubernetes-benchmarking-pull'
160     <<: *ri2-params
161     container: 'functest-kubernetes-benchmarking'
162     jobs:
163       - 'ri2-{repo}-{container}-{tag}-pull'
164
165 - project:
166     name: 'ri2-opnfv-functest-kubernetes-cnf-pull'
167     <<: *ri2-params
168     container: 'functest-kubernetes-cnf'
169     jobs:
170       - 'ri2-{repo}-{container}-{tag}-pull'
171
172 - job-template:
173     name: 'ri2-{repo}-{container}-{tag}-rmi'
174     parameters:
175       - ri2-slave:
176           slave: '{slave}'
177     builders:
178       - ri2-remove-images:
179           <<: *ri2-containers
180
181 - project:
182     name: 'ri2-opnfv-functest-kubernetes-healthcheck-rmi'
183     <<: *ri2-params
184     container: 'functest-kubernetes-healthcheck'
185     jobs:
186       - 'ri2-{repo}-{container}-{tag}-rmi'
187
188 - project:
189     name: 'ri2-opnfv-functest-kubernetes-smoke-rmi'
190     <<: *ri2-params
191     container: 'functest-kubernetes-smoke'
192     jobs:
193       - 'ri2-{repo}-{container}-{tag}-rmi'
194
195 - project:
196     name: 'ri2-opnfv-functest-kubernetes-security-rmi'
197     <<: *ri2-params
198     container: 'functest-kubernetes-security'
199     jobs:
200       - 'ri2-{repo}-{container}-{tag}-rmi'
201
202 - project:
203     name: 'ri2-opnfv-functest-kubernetes-benchmarking-rmi'
204     <<: *ri2-params
205     container: 'functest-kubernetes-benchmarking'
206     jobs:
207       - 'ri2-{repo}-{container}-{tag}-rmi'
208
209 - project:
210     name: 'ri2-opnfv-functest-kubernetes-cnf-rmi'
211     <<: *ri2-params
212     container: 'functest-kubernetes-cnf'
213     jobs:
214       - 'ri2-{repo}-{container}-{tag}-rmi'
215
216 - job-template:
217     name: 'ri2-opnfv-functest-kubernetes-healthcheck-{tag}-{test}-run'
218     parameters:
219       - ri2-slave:
220           slave: '{slave}'
221       - ri2-build_tag:
222           build_tag: ''
223       - ri2-DEPLOY_SCENARIO:
224           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
225     builders:
226       - ri2-run-containers:
227           <<: *ri2-run-containers
228
229 - project:
230     name: 'ri2-opnfv-functest-kubernetes-healthcheck'
231     <<: *ri2-params
232     volumes:
233       - /home/ri2/.kube/config:/root/.kube/config
234     env:
235       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
236     published_ports:
237     container: 'functest-kubernetes-healthcheck'
238     test:
239       - k8s_quick
240       - k8s_smoke
241     privileged: 'false'
242     network: bridge
243     uid: 1000
244     gid: 1000
245     jobs:
246       - 'ri2-opnfv-functest-kubernetes-healthcheck-{tag}-{test}-run'
247
248 - job-template:
249     name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-{test}-run'
250     parameters:
251       - ri2-slave:
252           slave: '{slave}'
253       - ri2-build_tag:
254           build_tag: ''
255       - ri2-DEPLOY_SCENARIO:
256           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
257     builders:
258       - ri2-run-containers:
259           <<: *ri2-run-containers
260
261 - project:
262     name: 'ri2-opnfv-functest-kubernetes-smoke'
263     <<: *ri2-params
264     volumes:
265       - /home/ri2/.kube/config:/root/.kube/config
266     env:
267       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
268     published_ports:
269     container: 'functest-kubernetes-smoke'
270     test:
271       - xrally_kubernetes
272       - k8s_conformance
273       - k8s_conformance_serial
274       - sig_api_machinery
275       - sig_api_machinery_serial
276       - sig_apps
277       - sig_apps_serial
278       - sig_auth
279       - sig_cluster_lifecycle
280       - sig_instrumentation
281       - sig_network
282       - sig_node
283       - sig_scheduling_serial
284       - sig_storage
285       - sig_storage_serial
286     privileged: 'false'
287     network: bridge
288     uid: 1000
289     gid: 1000
290     jobs:
291       - 'ri2-opnfv-functest-kubernetes-smoke-{tag}-{test}-run'
292
293 - job-template:
294     name: 'ri2-opnfv-functest-kubernetes-security-{tag}-{test}-run'
295     parameters:
296       - ri2-slave:
297           slave: '{slave}'
298       - ri2-build_tag:
299           build_tag: ''
300       - ri2-DEPLOY_SCENARIO:
301           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
302     builders:
303       - ri2-run-containers:
304           <<: *ri2-run-containers
305
306 - project:
307     name: 'ri2-opnfv-functest-kubernetes-security'
308     <<: *ri2-params
309     volumes:
310       - /home/ri2/.kube/config:/root/.kube/config
311     env:
312       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
313     published_ports:
314     container: 'functest-kubernetes-security'
315     test:
316       - kube_hunter
317       - kube_bench_master
318       - kube_bench_node
319     privileged: 'false'
320     network: bridge
321     uid: 1000
322     gid: 1000
323     jobs:
324       - 'ri2-opnfv-functest-kubernetes-security-{tag}-{test}-run'
325
326 - job-template:
327     name: 'ri2-opnfv-functest-kubernetes-benchmarking-{tag}-{test}-run'
328     parameters:
329       - ri2-slave:
330           slave: '{slave}'
331       - ri2-build_tag:
332           build_tag: ''
333       - ri2-DEPLOY_SCENARIO:
334           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
335     builders:
336       - ri2-run-containers:
337           <<: *ri2-run-containers
338
339 - project:
340     name: 'ri2-opnfv-functest-kubernetes-benchmarking'
341     <<: *ri2-params
342     volumes:
343       - /home/ri2/.kube/config:/root/.kube/config
344     env:
345       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
346     published_ports:
347     container: 'functest-kubernetes-benchmarking'
348     test:
349       - xrally_kubernetes_full
350       - netperf
351     privileged: 'false'
352     network: bridge
353     uid: 1000
354     gid: 1000
355     jobs:
356       - 'ri2-opnfv-functest-kubernetes-benchmarking-{tag}-{test}-run'
357
358 - job-template:
359     name: 'ri2-opnfv-functest-kubernetes-cnf-{tag}-{test}-run'
360     parameters:
361       - ri2-slave:
362           slave: '{slave}'
363       - ri2-build_tag:
364           build_tag: ''
365       - ri2-DEPLOY_SCENARIO:
366           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
367     builders:
368       - ri2-run-containers:
369           <<: *ri2-run-containers
370
371 - project:
372     name: 'ri2-opnfv-functest-kubernetes-cnf'
373     <<: *ri2-params
374     volumes:
375       - /home/ri2/.kube/config:/root/.kube/config
376     env:
377       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
378     published_ports:
379     container: 'functest-kubernetes-cnf'
380     test:
381       - k8s_vims
382       - helm_vims
383       - cnf_testsuite
384     privileged: 'false'
385     network: bridge
386     uid: 1000
387     gid: 1000
388     jobs:
389       - 'ri2-opnfv-functest-kubernetes-cnf-{tag}-{test}-run'
390
391 - builder:
392     name: ri2-zip
393     builders:
394       - shell: |
395           set +x
396           volumes=;
397           if [ "{volumes}" != "None" ]; then
398             for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
399               do volumes="-v $i $volumes"; done
400           fi
401           env=;
402           if [ "{env}" != "None" ]; then
403             for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
404               do env="-e $i $env"; done
405           fi
406           published_ports=;
407           if [ "{published_ports}" != "None" ]; then
408             for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
409               do published_ports="-p $i $published_ports"; done
410           fi
411           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
412           if [ "{repo}" = "_" ]; then
413             image={container}:{tag}
414           elif [ "{port}" = "None" ]; then
415             image={repo}/{container}:{tag}
416           else
417             image={repo}:{port}/{container}:{tag}
418           fi
419           sudo mkdir -p $WORKSPACE/results
420           sudo chown {uid}:{gid} $WORKSPACE/results
421           sudo docker run --rm \
422             $volumes \
423             $env \
424             $published_ports \
425             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
426             -e S3_DST_URL=s3://artifacts.opnfv.org/ri2 \
427             -e HTTP_DST_URL=http://artifacts.opnfv.org/ri2 \
428             -v /home/opnfv/ri2/.boto:/etc/boto.cfg \
429             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
430             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
431             -e BUILD_TAG=$BUILD_TAG \
432             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
433             $image zip_campaign
434
435 - job-template:
436     name: 'ri2-{tag}-zip'
437     parameters:
438       - ri2-slave:
439           slave: '{slave}'
440       - ri2-build_tag:
441           build_tag: ''
442       - ri2-DEPLOY_SCENARIO:
443           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
444     builders:
445       - ri2-zip:
446           <<: *ri2-containers
447           volumes: '{volumes}'
448           env: '{env}'
449           uid: '{uid}'
450           gid: '{gid}'
451           published_ports: '{published_ports}'
452
453 - project:
454     name: 'ri2-{tag}-zip'
455     <<: *ri2-params
456     volumes:
457       - /home/ri2/.kube/config:/root/.kube/config
458     env:
459       - DEPLOY_SCENARIO=$DEPLOY_SCENARIO
460     published_ports:
461     container: 'functest-kubernetes-healthcheck'
462     uid: 1000
463     gid: 1000
464     jobs:
465       - 'ri2-{tag}-zip'
466
467 - job-template:
468     name: 'ri2-{tag}-daily'
469     project-type: multijob
470     triggers:
471       - timed: '@weekly'
472     parameters:
473       - ri2-slave:
474           slave: '{slave}'
475       - ri2-build_tag:
476           build_tag: ''
477       - ri2-DEPLOY_SCENARIO:
478           DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
479     # PyYAML and yamllint differ here
480     # see https://github.com/yaml/pyyaml/issues/234
481     # yamllint disable rule:indentation
482     properties:
483       - build-blocker:
484           blocking-jobs:
485           - ^ri2-{tag}-(daily|docker|review)$
486     # yamllint enable rule:indentation
487     builders:
488       - multijob:
489           name: remove former images
490           projects:
491             - name: 'ri2-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
492               <<: *ri2-jobs
493             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-rmi'
494               <<: *ri2-jobs
495             - name: 'ri2-opnfv-functest-kubernetes-security-{tag}-rmi'
496               <<: *ri2-jobs
497             - name: 'ri2-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
498               <<: *ri2-jobs
499             - name: 'ri2-opnfv-functest-kubernetes-cnf-{tag}-rmi'
500               <<: *ri2-jobs
501       - multijob:
502           name: pull containers
503           projects:
504             - name: 'ri2-opnfv-functest-kubernetes-healthcheck-{tag}-pull'
505               <<: *ri2-jobs
506             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-pull'
507               <<: *ri2-jobs
508             - name: 'ri2-opnfv-functest-kubernetes-security-{tag}-pull'
509               <<: *ri2-jobs
510             - name: 'ri2-opnfv-functest-kubernetes-benchmarking-{tag}-pull'
511               <<: *ri2-jobs
512             - name: 'ri2-opnfv-functest-kubernetes-cnf-{tag}-pull'
513               <<: *ri2-jobs
514       - multijob:
515           name: opnfv/functest-kubernetes-healthcheck:{tag}
516           projects:
517             - name: 'ri2-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
518               <<: *ri2-jobs
519             - name: 'ri2-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
520               <<: *ri2-jobs
521       - multijob:
522           name: opnfv/functest-kubernetes-smoke:{tag}
523           execution-type: SEQUENTIALLY
524           projects:
525             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
526               <<: *ri2-jobs
527             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
528               <<: *ri2-jobs
529             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run'
530               <<: *ri2-jobs
531             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run'
532               <<: *ri2-jobs
533             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery_serial-run'
534               <<: *ri2-jobs
535             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run'
536               <<: *ri2-jobs
537             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_apps_serial-run'
538               <<: *ri2-jobs
539             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run'
540               <<: *ri2-jobs
541             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run'
542               <<: *ri2-jobs
543             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run'
544               <<: *ri2-jobs
545             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
546               <<: *ri2-jobs
547             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run'
548               <<: *ri2-jobs
549             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_scheduling_serial-run'
550               <<: *ri2-jobs
551             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
552               <<: *ri2-jobs
553             - name: 'ri2-opnfv-functest-kubernetes-smoke-{tag}-sig_storage_serial-run'
554               <<: *ri2-jobs
555       - multijob:
556           name: opnfv/functest-kubernetes-security:{tag}
557           projects:
558             - name: 'ri2-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
559               <<: *ri2-jobs
560             - name: 'ri2-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
561               <<: *ri2-jobs
562             - name: 'ri2-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
563               <<: *ri2-jobs
564       - multijob:
565           name: opnfv/functest-kubernetes-benchmarking:{tag}
566           projects:
567             - name: 'ri2-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
568               <<: *ri2-jobs
569             - name: 'ri2-opnfv-functest-kubernetes-benchmarking-{tag}-netperf-run'
570               <<: *ri2-jobs
571       - multijob:
572           name: opnfv/functest-kubernetes-cnf:{tag}
573           projects:
574             - name: 'ri2-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
575               <<: *ri2-jobs
576             - name: 'ri2-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
577               <<: *ri2-jobs
578             - name: 'ri2-opnfv-functest-kubernetes-cnf-{tag}-cnf_testsuite-run'
579               <<: *ri2-jobs
580       - multijob:
581           name: dump all campaign data
582           projects:
583             - name: 'ri2-{tag}-zip'
584               <<: *ri2-jobs
585     publishers:
586       - email-ext:
587           failure: false
588           first-failure: true
589           fixed: true
590           recipients: cedric.ollivier@orange.com
591
592 - project:
593     name: 'ri2-daily'
594     <<: *ri2-params
595     jobs:
596       - 'ri2-{tag}-daily'
597
598 - view:
599     name: ri2
600     view-type: list
601     columns:
602       - status
603       - weather
604       - job
605       - last-success
606       - last-failure
607       - last-duration
608     regex: ^ri2-[a-z0-9.]+-daily$