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