blob: 3e8d9fb3ec08c97cea91ac511de48706423c7f48 [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
73
74 type:
75 - baremetal:
76 slave-label: 'baremetal-deploy'
77 yardstick-dispatcher: 'influxdb'
78
79 phase:
80 - deploy:
81 build-timeout: 60
82 - functest:
83 build-timeout: 120
84 - yardstick:
85 build-timeout: 30
86 - promote:
87 build-timeout: 5
88
89 jobs:
90 - '{deploy-scenario}-periodic-{os}-{type}-{stream}'
91 - '{deploy-scenario}-periodic-{os}-{phase}-{type}-{stream}'
92
93- job-template:
94 name: '{deploy-scenario}-periodic-{os}-{type}-{stream}'
95
96 project-type: multijob
97
98 disabled: '{obj:disabled}'
99
100 concurrent: true
101
102 parameters:
103 - project-parameters:
104 project: '{project}'
105 branch: '{branch}'
106 - nordix-gerrit-parameters
107 - label:
108 name: SLAVE_LABEL
109 default: '{slave-label}'
110 description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
111 - string:
112 name: DISTRIBUTION
113 default: '{distribution}'
114 description: 'Distribution to use for configuring target nodes (networking etc.)'
115 - string:
116 name: DEPLOY_TYPE
117 default: '{type}'
118 description: 'Type of the deployment'
119 - string:
120 name: USE_PREBUILT_DEPLOYMENT_IMAGE
121 default: 'true'
122 description: 'Use prebuilt deployment image while running as part of CI/CD'
123 - string:
124 name: IPA_DIB_OS_ELEMENT
125 default: '{ipa_dib_os_element}'
126 description: 'DIB OS Element to use for building the ramdisk image'
127 - string:
128 name: DIB_OS_RELEASE
129 default: '{dib_os_release}'
130 description: 'DIB OS Release to use for building the deployment image to provision target nodes with'
131 - string:
132 name: DIB_OS_ELEMENT
133 default: '{dib_os_element}'
134 description: 'DIB OS Element to use for building the deployment image to provision target nodes with'
135 - string:
136 name: INSTALLER_TYPE
137 default: '{installer-type}'
138 description: 'Installer to use for deploying the scenario'
139 - string:
140 name: DEPLOY_SCENARIO
141 default: '{deploy-scenario}'
142 description: 'Scenario to deploy and test'
143 - string:
144 name: TEST_SUITE
145 default: 'smoke'
146 description: 'Test suite to run'
147 - string:
148 name: YARDSTICK_DISPATCHER
149 default: '{yardstick-dispatcher}'
150 description: 'Dispatcher to use for Yardstick reporting'
151 - string:
152 name: CLEANUP
153 default: 'true'
154 description: 'Cleanup leftovers of the previous run'
155
156 properties:
157 - logrotate
158 - build-blocker:
159 use-build-blocker: true
160 blocking-jobs:
161 - 'cloud-infra-periodic-engine-{os}-.*'
162 - 'k8-.*?-periodic-.*'
163 block-level: 'NODE'
164 - throttle:
165 max-per-node: 1
166 max-total: 3
167 option: project
168
169 wrappers:
170 - build-timeout:
171 timeout: 210
172 - fix-workspace-permissions
173
174 scm:
175 - git-scm:
176 ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
177 branch: '{branch}'
178 refspec: ''
179
180 triggers:
181 - timed: '@daily'
182
183 builders:
184 - description-setter:
185 description: $INSTALLER_TYPE
186 - multijob:
187 name: deploy
188 condition: SUCCESSFUL
189 projects:
Fatih Degirmenci3a8a7722019-05-08 18:07:55 +0200190 - name: '{deploy-scenario}-periodic-{os}-deploy-{type}-{stream}'
Fatih Degirmencie504a2d2019-05-08 11:38:56 +0200191 current-parameters: true
192 predefined-parameters: |
193 DISTRIBUTION=$DISTRIBUTION
194 DEPLOY_TYPE=$DEPLOY_TYPE
195 USE_PREBUILT_DEPLOYMENT_IMAGE=$USE_PREBUILT_DEPLOYMENT_IMAGE
196 IPA_DIB_OS_ELEMENT=$IPA_DIB_OS_ELEMENT
197 DIB_OS_RELEASE=$DIB_OS_RELEASE
198 DIB_OS_ELEMENT=$DIB_OS_ELEMENT
199 INSTALLER_TYPE=$INSTALLER_TYPE
200 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
201 CLEANUP=$CLEANUP
202 git-revision: true
203 node-parameters: true
204 kill-phase-on: FAILURE
205 abort-all-job: true
206 - multijob:
207 name: functest
208 condition: ALWAYS
209 projects:
Fatih Degirmenci3a8a7722019-05-08 18:07:55 +0200210 - name: '{deploy-scenario}-periodic-{os}-functest-{type}-{stream}'
Fatih Degirmencie504a2d2019-05-08 11:38:56 +0200211 current-parameters: true
212 predefined-parameters: |
213 DISTRIBUTION=$DISTRIBUTION
214 DEPLOY_TYPE=$DEPLOY_TYPE
215 INSTALLER_TYPE=$INSTALLER_TYPE
216 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
217 TEST_SUITE=$TEST_SUITE
218 YARDSTICK_DISPATCHER=$YARDSTICK_DISPATCHER
219 CLEANUP=$CLEANUP
220 node-parameters: true
221 kill-phase-on: FAILURE
222 abort-all-job: true
223 - multijob:
224 name: yardstick
225 condition: ALWAYS
226 projects:
Fatih Degirmenci3a8a7722019-05-08 18:07:55 +0200227 - name: '{deploy-scenario}-periodic-{os}-yardstick-{type}-{stream}'
Fatih Degirmencie504a2d2019-05-08 11:38:56 +0200228 current-parameters: true
229 predefined-parameters: |
230 DISTRIBUTION=$DISTRIBUTION
231 DEPLOY_TYPE=$DEPLOY_TYPE
232 INSTALLER_TYPE=$INSTALLER_TYPE
233 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
234 TEST_SUITE=$TEST_SUITE
235 YARDSTICK_DISPATCHER=$YARDSTICK_DISPATCHER
236 CLEANUP=$CLEANUP
237 node-parameters: true
238 kill-phase-on: FAILURE
239 abort-all-job: true
240 - multijob:
241 name: promote
242 condition: ALWAYS
243 projects:
Fatih Degirmenci3a8a7722019-05-08 18:07:55 +0200244 - name: '{deploy-scenario}-periodic-{os}-promote-{type}-{stream}'
Fatih Degirmencie504a2d2019-05-08 11:38:56 +0200245 current-parameters: true
246 predefined-parameters: |
247 DISTRIBUTION=$DISTRIBUTION
248 DEPLOY_TYPE=$DEPLOY_TYPE
249 INSTALLER_TYPE=$INSTALLER_TYPE
250 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
251 TEST_SUITE=$TEST_SUITE
252 YARDSTICK_DISPATCHER=$YARDSTICK_DISPATCHER
253 CLEANUP=$CLEANUP
254 node-parameters: true
255 kill-phase-on: FAILURE
256 abort-all-job: true
257
258- job-template:
259 name: '{deploy-scenario}-periodic-{os}-{phase}-{type}-{stream}'
260
261 disabled: false
262
263 concurrent: true
264
265 properties:
266 - logrotate
267
268 parameters:
269 - string:
270 name: PROJECT
271 default: $GERRIT_PROJECT
272 - string:
273 name: DISTRIBUTION
274 default: 'ubuntu18'
275 description: 'Distribution to use for configuring target nodes (networking etc.). Overriden by upstream job.'
276 - string:
277 name: DEPLOY_TYPE
278 default: 'virtual'
279 description: 'Type of the deployment. Overriden by upstream job.'
280 - string:
281 name: USE_PREBUILT_DEPLOYMENT_IMAGE
282 default: 'false'
283 description: 'Use prebuilt deployment image while running as part of CI/CD'
284 - string:
285 name: IPA_DIB_OS_ELEMENT
286 default: 'fedora'
287 description: 'DIB OS Element to use for building the ramdisk image. Overriden by upstream job.'
288 - string:
289 name: DIB_OS_RELEASE
290 default: 'bionic'
291 description: 'DIB OS Release to use for building the deployment image to provision target nodes with. Overriden by upstream job.'
292 - string:
293 name: DIB_OS_ELEMENT
294 default: 'ubuntu-minimal'
295 description: 'DIB OS Element to use for building the deployment image to provision target nodes with. Overriden by upstream job.'
296 - string:
297 name: ENGINE_ANSIBLE_PARAMS
298 default: ' -v '
299 description: 'Extra paramters that can be added when run the play books.'
300 - string:
301 name: DEPLOY_SCENARIO
302 default: 'k8-calico-nofeature'
303 description: 'Scenario to deploy and test'
304 - string:
305 name: INSTALLER_TYPE
306 default: 'kubespray'
307 description: 'Installer to use for deploying the scenario'
308 - string:
309 name: TEST_FW
310 default: '{phase}'
311 description: 'Test framework to use'
312 - string:
313 name: TEST_SUITE
314 default: 'smoke'
315 description: 'Test suite to run'
316 - string:
317 name: TEST_REPO_URL
318 default: 'https://gerrit.nordix.org/infra/test.git'
319 description: 'URL to Nordix Cloud Infra test repository'
320 - string:
321 name: YARDSTICK_DISPATCHER
322 default: 'file'
323 description: 'Dispatcher to use for Yardstick reporting'
324 - string:
325 name: CLEANUP
326 default: 'false'
327
328 wrappers:
329 - build-timeout:
330 timeout: '{build-timeout}'
331 - fix-workspace-permissions
332
333 scm:
334 - git-scm:
335 ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
336 branch: '{branch}'
337 refspec: ''
338
339 builders:
340 - description-setter:
341 description: $INSTALLER_TYPE - $DEPLOY_SCENARIO
342 - 'scenario-{phase}-macro'
343
344# vim: set ts=2 sw=2 expandtab: