Fix container name when dumping K8s logs
[releng.git] / jjb / functest / functest-kubernetes.yaml
1 ---
2 - functest-kubernetes-jobs: &functest-kubernetes-jobs
3     name: 'functest-kubernetes-jobs'
4     current-parameters: true
5
6 - functest-kubernetes-params: &functest-kubernetes-params
7     name: 'functest-kubernetes-params'
8     repo: 'opnfv'
9     port:
10     tag:
11       - latest:
12           branch: master
13           slave: lf-virtual8
14       - jerma:
15           branch: stable/jerma
16           slave: lf-virtual8
17       - iruya:
18           branch: stable/iruya
19           slave: lf-virtual7
20       - hunter:
21           branch: stable/hunter
22           slave: lf-virtual5
23
24 - parameter:
25     name: functest-kubernetes-slave
26     parameters:
27       - label:
28           name: slave
29           default: '{slave}'
30
31 - parameter:
32     name: functest-kubernetes-build_tag
33     parameters:
34       - random-string:
35           name: build_tag
36
37 - parameter:
38     name: functest-kubernetes-branch
39     parameters:
40       - string:
41           name: branch
42           default: '{branch}'
43
44 - functest-kubernetes-containers: &functest-kubernetes-containers
45     name: 'functest-kubernetes-containers'
46     repo: '{repo}'
47     port: '{port}'
48     container: '{container}'
49     tag: '{tag}'
50
51 - functest-kubernetes-run-containers: &functest-kubernetes-run-containers
52     name: 'functest-kubernetes-build-containers'
53     <<: *functest-kubernetes-containers
54     test: '{test}'
55
56 - functest-kubernetes-build-containers: &functest-kubernetes-build-containers
57     name: 'functest-kubernetes-build-containers'
58     <<: *functest-kubernetes-containers
59     ref_arg: '{ref_arg}'
60     path: '{path}'
61
62 - builder:
63     name: functest-kubernetes-pull-containers
64     builders:
65       - shell: |
66           set +x
67           if [ "{repo}" = "_" ]; then
68             image={container}:{tag}
69           elif [ "{port}" = "None" ]; then
70             image={repo}/{container}:{tag}
71           else
72             image={repo}:{port}/{container}:{tag}
73           fi
74           docker pull $image
75
76 - builder:
77     name: functest-kubernetes-build-containers
78     builders:
79       - shell: |
80           set +x
81           if [ "{repo}" = "_" ]; then
82             image={container}:{tag}
83           elif [ "{port}" = "None" ]; then
84             image={repo}/{container}:{tag}
85           else
86             image={repo}:{port}/{container}:{tag}
87           fi
88           if [ "{ref_arg}" = "None" ]; then
89             build_arg=""
90           else
91             build_arg="--build-arg {ref_arg}={ref}"
92           fi
93           cd {path}
94           docker build $build_arg \
95             --pull=false --no-cache --force-rm=true \
96             -t $image .
97
98 - builder:
99     name: functest-kubernetes-run-containers
100     builders:
101       - shell: |
102           set +ex
103           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true
104           if [ "{repo}" = "_" ]; then
105             image={container}:{tag}
106           elif [ "{port}" = "None" ]; then
107             image={repo}/{container}:{tag}
108           else
109             image={repo}:{port}/{container}:{tag}
110           fi
111           docker run --rm \
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             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
116             -e NODE_NAME=$slave \
117             -e BUILD_TAG=$BUILD_TAG \
118             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
119             -e DEPLOY_SCENARIO=k8-nosdn-nofeature-noha \
120             -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \
121             -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
122             $image run_tests -t {test} -r -p
123
124 - builder:
125     name: functest-kubernetes-remove-images
126     builders:
127       - shell: |
128           set +x
129           if [ "{repo}" = "_" ]; then
130             image={container}:{tag}
131           elif [ "{port}" = "None" ]; then
132             image={repo}/{container}:{tag}
133           else
134             image={repo}:{port}/{container}:{tag}
135           fi
136           docker rmi $image || true
137
138 - scm:
139     name: functest-kubernetes-scm
140     scm:
141       - git:
142           url: https://gerrit.opnfv.org/gerrit/functest-kubernetes
143           refspec: '+refs/changes/*:refs/changes/*'
144           branches:
145             - '{ref}'
146
147 - job-template:
148     name: 'functest-kubernetes-{repo}-{container}-{tag}-pull'
149     parameters:
150       - functest-kubernetes-slave:
151           slave: '{slave}'
152     builders:
153       - functest-kubernetes-pull-containers:
154           <<: *functest-kubernetes-containers
155
156 - project:
157     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-pull'
158     <<: *functest-kubernetes-params
159     container: 'functest-kubernetes-healthcheck'
160     jobs:
161       - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
162
163 - project:
164     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-pull'
165     <<: *functest-kubernetes-params
166     container: 'functest-kubernetes-smoke'
167     jobs:
168       - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
169
170 - job-template:
171     name: 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
172     parameters:
173       - functest-kubernetes-slave:
174           slave: '{slave}'
175     builders:
176       - functest-kubernetes-remove-images:
177           <<: *functest-kubernetes-containers
178
179 - project:
180     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-rmi'
181     <<: *functest-kubernetes-params
182     container: 'functest-kubernetes-healthcheck'
183     jobs:
184       - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
185
186 - project:
187     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-rmi'
188     <<: *functest-kubernetes-params
189     container: 'functest-kubernetes-smoke'
190     jobs:
191       - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
192
193 - job-template:
194     name: 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
195     parameters:
196       - functest-kubernetes-slave:
197           slave: '{slave}'
198       - functest-kubernetes-build_tag:
199           build_tag: ''
200     builders:
201       - functest-kubernetes-run-containers:
202           <<: *functest-kubernetes-run-containers
203
204 - project:
205     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck'
206     <<: *functest-kubernetes-params
207     container: 'functest-kubernetes-healthcheck'
208     test:
209       - k8s_smoke
210     jobs:
211       - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
212
213 - project:
214     name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke'
215     <<: *functest-kubernetes-params
216     container: 'functest-kubernetes-smoke'
217     test:
218       - xrally_kubernetes
219       - k8s_conformance
220     jobs:
221       - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
222     exclude:
223       - tag: iruya
224         test: xrally_kubernetes
225       - tag: hunter
226         test: xrally_kubernetes
227
228 - builder:
229     name: functest-kubernetes-zip
230     builders:
231       - shell: |
232           set +x
233           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true
234           if [ "{repo}" = "_" ]; then
235             image={container}:{tag}
236           elif [ "{port}" = "None" ]; then
237             image={repo}/{container}:{tag}
238           else
239             image={repo}:{port}/{container}:{tag}
240           fi
241           docker run --rm \
242             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
243             -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \
244             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \
245             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
246             -e BUILD_TAG=$BUILD_TAG \
247             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
248             -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
249             $image zip_campaign
250
251 - job-template:
252     name: 'functest-kubernetes-{tag}-zip'
253     parameters:
254       - functest-kubernetes-build_tag:
255           build_tag: ''
256     builders:
257       - functest-kubernetes-zip:
258           <<: *functest-kubernetes-containers
259
260 - project:
261     name: 'functest-kubernetes-{tag}-zip'
262     <<: *functest-kubernetes-params
263     container: 'functest-kubernetes-healthcheck'
264     jobs:
265       - 'functest-kubernetes-{tag}-zip'
266
267 - job-template:
268     name: 'functest-kubernetes-{tag}-daily'
269     project-type: multijob
270     triggers:
271       - timed: '@daily'
272     parameters:
273       - functest-kubernetes-slave:
274           slave: '{slave}'
275       - functest-kubernetes-build_tag:
276           build_tag: ''
277     properties:
278       - build-blocker:
279           use-build-blocker: true
280           blocking-level: 'NODE'
281           blocking-jobs:
282             - '^functest-kubernetes-{tag}-(daily|check|gate)$'
283     builders:
284       - multijob:
285           name: remove former images
286           projects:
287             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
288               <<: *functest-kubernetes-jobs
289             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
290               <<: *functest-kubernetes-jobs
291       - multijob:
292           name: pull containers
293           projects:
294             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-pull'
295               <<: *functest-kubernetes-jobs
296             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-pull'
297               <<: *functest-kubernetes-jobs
298       - multijob:
299           name: opnfv/functest-kubernetes-healthcheck:{tag}
300           projects:
301             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
302               <<: *functest-kubernetes-jobs
303       - multijob:
304           name: opnfv/functest-kubernetes-smoke:{tag}
305           execution-type: SEQUENTIALLY
306           projects:
307             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
308               <<: *functest-kubernetes-jobs
309             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
310               <<: *functest-kubernetes-jobs
311       - multijob:
312           name: dump all campaign data
313           projects:
314             - name: 'functest-kubernetes-{tag}-zip'
315               <<: *functest-kubernetes-jobs
316
317 - job-template:
318     name: 'functest-kubernetes-{repo}-{container}-{tag}-gate'
319     parameters:
320       - functest-kubernetes-slave:
321           slave: '{slave}'
322     scm:
323       - functest-kubernetes-scm:
324           ref: $GERRIT_REFSPEC
325     builders:
326       - functest-kubernetes-build-containers:
327           <<: *functest-kubernetes-build-containers
328           ref: $GERRIT_REFSPEC
329
330 - job-template:
331     name: 'functest-kubernetes-{repo}-{container}-{tag}-check'
332     parameters:
333       - functest-kubernetes-slave:
334           slave: '{slave}'
335       - functest-kubernetes-branch:
336           branch: '{branch}'
337     scm:
338       - functest-kubernetes-scm:
339           ref: $branch
340     builders:
341       - functest-kubernetes-build-containers:
342           <<: *functest-kubernetes-build-containers
343           ref: $branch
344
345 - project:
346     name: 'functest-kubernetes-_-golang-1.12-alpine3.10-rmi'
347     repo: _
348     port:
349     container: golang
350     tag: '1.12-alpine3.10'
351     slave: master
352     jobs:
353       - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
354
355 - project:
356     name: 'functest-kubernetes-_-golang-1.12-alpine3.10-pull'
357     repo: _
358     port:
359     container: golang
360     tag: '1.12-alpine3.10'
361     slave: master
362     jobs:
363       - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
364
365 - project:
366     name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build
367     <<: *functest-kubernetes-params
368     container: functest-kubernetes-core
369     ref_arg: BRANCH
370     path: docker/core
371     jobs:
372       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
373       - 'functest-kubernetes-{repo}-{container}-{tag}-check'
374
375 - project:
376     name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build
377     <<: *functest-kubernetes-params
378     container: functest-kubernetes-healthcheck
379     ref_arg:
380     path: docker/healthcheck
381     jobs:
382       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
383       - 'functest-kubernetes-{repo}-{container}-{tag}-check'
384
385 - project:
386     name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build
387     <<: *functest-kubernetes-params
388     container: functest-kubernetes-smoke
389     ref_arg:
390     path: docker/smoke
391     jobs:
392       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
393       - 'functest-kubernetes-{repo}-{container}-{tag}-check'
394
395 - job-template:
396     name: 'functest-kubernetes-{tag}-check'
397     project-type: multijob
398     parameters:
399       - functest-kubernetes-slave:
400           slave: '{slave}'
401       - functest-kubernetes-build_tag:
402           build_tag: ''
403       - functest-kubernetes-branch:
404           branch: '{branch}'
405     properties:
406       - build-blocker:
407           use-build-blocker: true
408           blocking-level: 'NODE'
409           blocking-jobs:
410             - '^functest-kubernetes-{tag}-(daily|check|gate)$'
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       - multijob:
420           name: remove dependencies
421           projects:
422             - name: 'functest-kubernetes-_-golang-1.12-alpine3.10-rmi'
423               <<: *functest-kubernetes-jobs
424       - multijob:
425           name: pull dependencies
426           projects:
427             - name: 'functest-kubernetes-_-golang-1.12-alpine3.10-pull'
428               <<: *functest-kubernetes-jobs
429       - multijob:
430           name: build opnfv/functest-kubernetes-core
431           projects:
432             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-check'
433               <<: *functest-kubernetes-jobs
434       - multijob:
435           name: build opnfv/functest-kubernetes-healthcheck
436           projects:
437             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-check'
438               <<: *functest-kubernetes-jobs
439       - multijob:
440           name: build containers
441           projects:
442             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-check'
443               <<: *functest-kubernetes-jobs
444       - multijob:
445           name: opnfv/functest-kubernetes-healthcheck:{tag}
446           projects:
447             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
448               <<: *functest-kubernetes-jobs
449       - multijob:
450           name: opnfv/functest-kubernetes-smoke:{tag}
451           execution-type: SEQUENTIALLY
452           projects:
453             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
454               <<: *functest-kubernetes-jobs
455             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
456               <<: *functest-kubernetes-jobs
457
458 - trigger:
459     name: functest-kubernetes-patchset-created
460     triggers:
461       - gerrit:
462           server-name: 'gerrit.opnfv.org'
463           trigger-on:
464             - patchset-created-event
465             - comment-added-contains-event:
466                 comment-contains-value: 'recheck'
467             - comment-added-contains-event:
468                 comment-contains-value: 'reverify'
469           projects:
470             - project-compare-type: 'ANT'
471               project-pattern: 'functest-kubernetes'
472               branches:
473                 - branch-compare-type: 'ANT'
474                   branch-pattern: '**/{branch}'
475           skip-vote:
476             successful: false
477             failed: false
478             unstable: false
479             notbuilt: false
480
481 - job-template:
482     name: 'functest-kubernetes-{tag}-gate'
483     project-type: multijob
484     triggers:
485       - functest-kubernetes-patchset-created:
486           branch: '{branch}'
487     parameters:
488       - functest-kubernetes-slave:
489           slave: '{slave}'
490       - functest-kubernetes-build_tag:
491           build_tag: ''
492     properties:
493       - build-blocker:
494           use-build-blocker: true
495           blocking-level: 'NODE'
496           blocking-jobs:
497             - '^functest-kubernetes-{tag}-(daily|check|gate)$'
498     builders:
499       - multijob:
500           name: remove former images
501           projects:
502             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
503               <<: *functest-kubernetes-jobs
504             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
505               <<: *functest-kubernetes-jobs
506       - multijob:
507           name: remove dependencies
508           projects:
509             - name: 'functest-kubernetes-_-golang-1.12-alpine3.10-rmi'
510               <<: *functest-kubernetes-jobs
511       - multijob:
512           name: pull dependencies
513           projects:
514             - name: 'functest-kubernetes-_-golang-1.12-alpine3.10-pull'
515               <<: *functest-kubernetes-jobs
516       - multijob:
517           name: build opnfv/functest-kubernetes-core
518           projects:
519             - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate'
520               <<: *functest-kubernetes-jobs
521       - multijob:
522           name: build opnfv/functest-kubernetes-healthcheck
523           projects:
524             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate'
525               <<: *functest-kubernetes-jobs
526       - multijob:
527           name: build containers
528           projects:
529             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate'
530               <<: *functest-kubernetes-jobs
531       - multijob:
532           name: opnfv/functest-kubernetes-healthcheck:{tag}
533           projects:
534             - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
535               <<: *functest-kubernetes-jobs
536       - multijob:
537           name: opnfv/functest-kubernetes-smoke:{tag}
538           execution-type: SEQUENTIALLY
539           projects:
540             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
541               <<: *functest-kubernetes-jobs
542             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
543               <<: *functest-kubernetes-jobs
544
545 - project:
546     name: 'functest-kubernetes'
547     <<: *functest-kubernetes-params
548     jobs:
549       - 'functest-kubernetes-{tag}-daily'
550       - 'functest-kubernetes-{tag}-check'
551       - 'functest-kubernetes-{tag}-gate'
552
553 - view:
554     name: functest-kubernetes
555     view-type: list
556     columns:
557       - status
558       - weather
559       - job
560       - last-success
561       - last-failure
562       - last-duration
563     regex: ^functest-kubernetes-[a-z]+-(daily|check|gate)$