blob: 117544c7cf70c9f42494e0c2303c93f52e75ad75 [file] [log] [blame]
Fatih Degirmencie504a2d2019-05-08 11:38:56 +02001---
2#
3# ============LICENSE_START=======================================================
4# Copyright (C) 2019 Nordix Foundation.
5# ================================================================================
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#
18# SPDX-License-Identifier: Apache-2.0
19# ============LICENSE_END=========================================================
20
21#--------------------------------------------------------------------------------------
22# The jobs declared in this JJB configuration file are used for verifying cloud-infra
23# engine from the tip of the master branch periodically to check the stability of it.
24#
25# These jobs are set to run on slaves with label vpod-deploy-ubuntu1604.
26# The slaves have
27# - Ubuntu1604 as the base distro
28# - nested virtualization
29# - internet access
30# - passwordless sudo
31# - 16 CPUs/32GB RAM/200 GB Disk
32# - docker, git vim curl wget zip unzip chrony apt-transport-https ca-certificates curl
33# gnupg-agent software-properties-common docker-ce docker-ce-cli containerd.io openjdk-8-jre
34#
35# The slaves should not have a cloud infra scenario deployed on them.
36#--------------------------------------------------------------------------------------
37
38- project:
39 name: 'cloud-infra-periodic-scenario'
40
41 project: 'infra/engine'
42
43 stream:
44 - 'master':
45 branch: '{stream}'
46 disabled: 'false'
47
48 os:
49 - ubuntu1804:
50 disabled: 'false'
51 distribution: 'ubuntu18'
52 ipa_dib_os_element: 'coreos'
53 dib_os_release: 'bionic'
54 dib_os_element: 'ubuntu-minimal'
55 - centos7:
56 disabled: 'true'
57 distribution: 'centos7'
58 ipa_dib_os_element: 'coreos'
59 dib_os_release: '7'
60 dib_os_element: 'centos-minimal'
61
62 deploy-scenario:
63 - k8-calico-nofeature:
64 installer-type: kubespray
65 - k8-flannel-nofeature:
66 installer-type: kubespray
67 - k8-canal-nofeature:
68 installer-type: kubespray
69 - k8-cilium-nofeature:
70 installer-type: kubespray
71 - k8-weave-nofeature:
72 installer-type: kubespray
Fatih Degirmencib5d81972019-05-08 18:12:42 +020073 - k8-multus-nofeature:
74 installer-type: kubespray
Fatih Degirmencie504a2d2019-05-08 11:38:56 +020075
76 type:
77 - baremetal:
78 slave-label: 'baremetal-deploy'
79 yardstick-dispatcher: 'influxdb'
80
81 phase:
82 - deploy:
83 build-timeout: 60
84 - functest:
85 build-timeout: 120
86 - yardstick:
87 build-timeout: 30
88 - promote:
89 build-timeout: 5
90
91 jobs:
92 - '{deploy-scenario}-periodic-{os}-{type}-{stream}'
93 - '{deploy-scenario}-periodic-{os}-{phase}-{type}-{stream}'
94
95- job-template:
96 name: '{deploy-scenario}-periodic-{os}-{type}-{stream}'
97
98 project-type: multijob
99
100 disabled: '{obj:disabled}'
101
102 concurrent: true
103
104 parameters:
105 - project-parameters:
106 project: '{project}'
107 branch: '{branch}'
108 - nordix-gerrit-parameters
109 - label:
110 name: SLAVE_LABEL
111 default: '{slave-label}'
112 description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
113 - string:
114 name: DISTRIBUTION
115 default: '{distribution}'
116 description: 'Distribution to use for configuring target nodes (networking etc.)'
117 - string:
118 name: DEPLOY_TYPE
119 default: '{type}'
120 description: 'Type of the deployment'
121 - string:
122 name: USE_PREBUILT_DEPLOYMENT_IMAGE
123 default: 'true'
124 description: 'Use prebuilt deployment image while running as part of CI/CD'
125 - string:
126 name: IPA_DIB_OS_ELEMENT
127 default: '{ipa_dib_os_element}'
128 description: 'DIB OS Element to use for building the ramdisk image'
129 - string:
130 name: DIB_OS_RELEASE
131 default: '{dib_os_release}'
132 description: 'DIB OS Release to use for building the deployment image to provision target nodes with'
133 - string:
134 name: DIB_OS_ELEMENT
135 default: '{dib_os_element}'
136 description: 'DIB OS Element to use for building the deployment image to provision target nodes with'
137 - string:
138 name: INSTALLER_TYPE
139 default: '{installer-type}'
140 description: 'Installer to use for deploying the scenario'
141 - string:
142 name: DEPLOY_SCENARIO
143 default: '{deploy-scenario}'
144 description: 'Scenario to deploy and test'
145 - string:
146 name: TEST_SUITE
147 default: 'smoke'
148 description: 'Test suite to run'
149 - string:
150 name: YARDSTICK_DISPATCHER
151 default: '{yardstick-dispatcher}'
152 description: 'Dispatcher to use for Yardstick reporting'
153 - string:
154 name: CLEANUP
155 default: 'true'
156 description: 'Cleanup leftovers of the previous run'
157
158 properties:
159 - logrotate
160 - build-blocker:
161 use-build-blocker: true
162 blocking-jobs:
163 - 'cloud-infra-periodic-engine-{os}-.*'
164 - 'k8-.*?-periodic-.*'
165 block-level: 'NODE'
166 - throttle:
167 max-per-node: 1
168 max-total: 3
169 option: project
170
171 wrappers:
172 - build-timeout:
173 timeout: 210
174 - fix-workspace-permissions
175
176 scm:
177 - git-scm:
178 ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
179 branch: '{branch}'
180 refspec: ''
181
182 triggers:
183 - timed: '@daily'
184
185 builders:
186 - description-setter:
187 description: $INSTALLER_TYPE
188 - multijob:
189 name: deploy
190 condition: SUCCESSFUL
191 projects:
Fatih Degirmenci3a8a7722019-05-08 18:07:55 +0200192 - name: '{deploy-scenario}-periodic-{os}-deploy-{type}-{stream}'
Fatih Degirmencie504a2d2019-05-08 11:38:56 +0200193 current-parameters: true
194 predefined-parameters: |
195 DISTRIBUTION=$DISTRIBUTION
196 DEPLOY_TYPE=$DEPLOY_TYPE
197 USE_PREBUILT_DEPLOYMENT_IMAGE=$USE_PREBUILT_DEPLOYMENT_IMAGE
198 IPA_DIB_OS_ELEMENT=$IPA_DIB_OS_ELEMENT
199 DIB_OS_RELEASE=$DIB_OS_RELEASE
200 DIB_OS_ELEMENT=$DIB_OS_ELEMENT
201 INSTALLER_TYPE=$INSTALLER_TYPE
202 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
203 CLEANUP=$CLEANUP
204 git-revision: true
205 node-parameters: true
206 kill-phase-on: FAILURE
207 abort-all-job: true
208 - multijob:
209 name: functest
210 condition: ALWAYS
211 projects:
Fatih Degirmenci3a8a7722019-05-08 18:07:55 +0200212 - name: '{deploy-scenario}-periodic-{os}-functest-{type}-{stream}'
Fatih Degirmencie504a2d2019-05-08 11:38:56 +0200213 current-parameters: true
214 predefined-parameters: |
215 DISTRIBUTION=$DISTRIBUTION
216 DEPLOY_TYPE=$DEPLOY_TYPE
217 INSTALLER_TYPE=$INSTALLER_TYPE
218 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
219 TEST_SUITE=$TEST_SUITE
220 YARDSTICK_DISPATCHER=$YARDSTICK_DISPATCHER
221 CLEANUP=$CLEANUP
222 node-parameters: true
223 kill-phase-on: FAILURE
224 abort-all-job: true
225 - multijob:
226 name: yardstick
227 condition: ALWAYS
228 projects:
Fatih Degirmenci3a8a7722019-05-08 18:07:55 +0200229 - name: '{deploy-scenario}-periodic-{os}-yardstick-{type}-{stream}'
Fatih Degirmencie504a2d2019-05-08 11:38:56 +0200230 current-parameters: true
231 predefined-parameters: |
232 DISTRIBUTION=$DISTRIBUTION
233 DEPLOY_TYPE=$DEPLOY_TYPE
234 INSTALLER_TYPE=$INSTALLER_TYPE
235 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
236 TEST_SUITE=$TEST_SUITE
237 YARDSTICK_DISPATCHER=$YARDSTICK_DISPATCHER
238 CLEANUP=$CLEANUP
239 node-parameters: true
240 kill-phase-on: FAILURE
241 abort-all-job: true
242 - multijob:
243 name: promote
244 condition: ALWAYS
245 projects:
Fatih Degirmenci3a8a7722019-05-08 18:07:55 +0200246 - name: '{deploy-scenario}-periodic-{os}-promote-{type}-{stream}'
Fatih Degirmencie504a2d2019-05-08 11:38:56 +0200247 current-parameters: true
248 predefined-parameters: |
249 DISTRIBUTION=$DISTRIBUTION
250 DEPLOY_TYPE=$DEPLOY_TYPE
251 INSTALLER_TYPE=$INSTALLER_TYPE
252 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
253 TEST_SUITE=$TEST_SUITE
254 YARDSTICK_DISPATCHER=$YARDSTICK_DISPATCHER
255 CLEANUP=$CLEANUP
256 node-parameters: true
257 kill-phase-on: FAILURE
258 abort-all-job: true
259
260- job-template:
261 name: '{deploy-scenario}-periodic-{os}-{phase}-{type}-{stream}'
262
263 disabled: false
264
265 concurrent: true
266
267 properties:
268 - logrotate
269
270 parameters:
271 - string:
272 name: PROJECT
273 default: $GERRIT_PROJECT
274 - string:
275 name: DISTRIBUTION
276 default: 'ubuntu18'
277 description: 'Distribution to use for configuring target nodes (networking etc.). Overriden by upstream job.'
278 - string:
279 name: DEPLOY_TYPE
280 default: 'virtual'
281 description: 'Type of the deployment. Overriden by upstream job.'
282 - string:
283 name: USE_PREBUILT_DEPLOYMENT_IMAGE
284 default: 'false'
285 description: 'Use prebuilt deployment image while running as part of CI/CD'
286 - string:
287 name: IPA_DIB_OS_ELEMENT
288 default: 'fedora'
289 description: 'DIB OS Element to use for building the ramdisk image. Overriden by upstream job.'
290 - string:
291 name: DIB_OS_RELEASE
292 default: 'bionic'
293 description: 'DIB OS Release to use for building the deployment image to provision target nodes with. Overriden by upstream job.'
294 - string:
295 name: DIB_OS_ELEMENT
296 default: 'ubuntu-minimal'
297 description: 'DIB OS Element to use for building the deployment image to provision target nodes with. Overriden by upstream job.'
298 - string:
299 name: ENGINE_ANSIBLE_PARAMS
300 default: ' -v '
301 description: 'Extra paramters that can be added when run the play books.'
302 - string:
303 name: DEPLOY_SCENARIO
304 default: 'k8-calico-nofeature'
305 description: 'Scenario to deploy and test'
306 - string:
307 name: INSTALLER_TYPE
308 default: 'kubespray'
309 description: 'Installer to use for deploying the scenario'
310 - string:
311 name: TEST_FW
312 default: '{phase}'
313 description: 'Test framework to use'
314 - string:
315 name: TEST_SUITE
316 default: 'smoke'
317 description: 'Test suite to run'
318 - string:
319 name: TEST_REPO_URL
320 default: 'https://gerrit.nordix.org/infra/test.git'
321 description: 'URL to Nordix Cloud Infra test repository'
322 - string:
323 name: YARDSTICK_DISPATCHER
324 default: 'file'
325 description: 'Dispatcher to use for Yardstick reporting'
326 - string:
327 name: CLEANUP
328 default: 'false'
329
330 wrappers:
331 - build-timeout:
332 timeout: '{build-timeout}'
333 - fix-workspace-permissions
334
335 scm:
336 - git-scm:
337 ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
338 branch: '{branch}'
339 refspec: ''
340
341 builders:
342 - description-setter:
343 description: $INSTALLER_TYPE - $DEPLOY_SCENARIO
344 - 'scenario-{phase}-macro'
345
346# vim: set ts=2 sw=2 expandtab: