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