7d916e4e724f5b6e8ef5e642cee24f1eb4ef612d
[infra/cicd.git] / jjb / cloud-infra / cloud-infra-periodic-onap.yaml
1 ---
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-onap'
40
41     project: 'infra/engine'
42
43     onap-branch:
44       - 'dublin':
45           nordix-branch: master
46           onap-version: 4.0.0-ONAP
47           onap-flavor: full
48           engine-version: master
49           engine-refspec: master
50           deploy-scenario-version: master
51           deploy-scenario-refspec: master
52           disabled: false
53       - 'master':
54           nordix-branch: master
55           onap-version: master
56           onap-flavor: full
57           engine-version: master
58           engine-refspec: master
59           deploy-scenario-version: master
60           deploy-scenario-refspec: master
61           disabled: true
62
63     distro:
64       - ubuntu1804
65
66     deploy-scenario:
67       - onap-oom-nofeature
68
69     type:
70       - cloud:
71           provisioner-type: heat
72           installer-type: kubespray
73           slave-label: 'jumphost-onap-ubuntu1804'
74
75     phase:
76       - onap-deploy:
77           build-timeout: 150
78       - oom-healthcheck:
79           build-timeout: 30
80       - onap-healthcheck:
81           build-timeout: 30
82       - promote-onap:
83           build-timeout: 5
84
85     jobs:
86       - '{deploy-scenario}-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
87       - '{phase}-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
88
89 - job-template:
90     name: '{deploy-scenario}-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
91
92     project-type: multijob
93
94     disabled: '{obj:disabled}'
95
96     concurrent: true
97
98     parameters:
99       - project-parameters:
100           project: '{project}'
101           branch: '{nordix-branch}'
102       - nordix-gerrit-parameters
103       - label:
104           name: SLAVE_LABEL
105           default: '{slave-label}'
106           description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
107       - string:
108           name: DISTRO
109           default: '{distro}'
110           description: 'Distribution to use for configuring target nodes (networking etc.)'
111       - string:
112           name: PROVISIONER_TYPE
113           default: '{provisioner-type}'
114           description: 'Provisioner to use for provisioning nodes'
115       - string:
116           name: INSTALLER_TYPE
117           default: '{installer-type}'
118           description: 'Installer to use for deploying the scenario'
119       - string:
120           name: DEPLOY_SCENARIO
121           default: '{deploy-scenario}'
122           description: 'Scenario to deploy and test'
123       - string:
124           name: HEAT_ENVIRONMENT_FILE
125           default: "file://$WORKSPACE/.cache/repos/swconfig/scenarios/$DEPLOY_SCENARIO/$INSTALLER_TYPE/role/$DEPLOY_SCENARIO/files/heat-environment-full.yaml"
126           description: 'Type of the deployment'
127       - string:
128           name: DEPLOY_TYPE
129           default: '{type}'
130           description: 'Type of the deployment'
131       - string:
132           name: ONAP_VERSION
133           default: '{onap-version}'
134           description: 'ONAP version to deploy'
135       - string:
136           name: ONAP_FLAVOR
137           default: '{onap-flavor}'
138           description: 'ONAP flavor to deploy - could be core, small, medium, full. Also used for xtesting as run_type.'
139       - string:
140           name: ENGINE_REPO_URL
141           default: 'https://gerrit.nordix.org/infra/engine.git'
142           description: 'URL to Nordix cloud-infra/engine repository'
143       - string:
144           name: ENGINE_VERSION
145           default: '{engine-version}'
146           description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying ONAP. Could be sha, branch'
147       - string:
148           name: ENGINE_REFSPEC
149           default: '{engine-refspec}'
150           description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying ONAP. Must be refspec.'
151       - string:
152           name: DEPLOY_SCENARIO_VERSION
153           default: '{deploy-scenario-version}'
154           description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying ONAP. Depends on DEPLOY_SCENARIO_REFSPEC and could be sha, branch.'
155       - string:
156           name: DEPLOY_SCENARIO_REFSPEC
157           default: '{deploy-scenario-refspec}'
158           description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying ONAP. Depends on DEPLOY_SCENARIO_VERSION and must be refspec.'
159       - string:
160           name: XTESTING_REPO_URL
161           default: 'https://gerrit.nordix.org/opnfv/xtesting-onap.git'
162           description: 'URL to Nordix xtesting-onap repository'
163       - string:
164           name: ENGINE_ANSIBLE_PARAMS
165           default: ''
166           description: 'Extra parameters that can be added when run the play books.'
167       - string:
168           name: CLEANUP
169           default: 'true'
170           description: 'Cleanup leftovers of the previous run'
171
172     properties:
173       - logrotate
174       - build-blocker:
175           use-build-blocker: true
176           blocking-jobs:
177             - 'cloud-infra-periodic-engine-.*'
178             - 'onap-.*'
179             - 'k8-.*'
180           block-level: 'NODE'
181       - throttle:
182           max-per-node: 1
183           max-total: 3
184           option: project
185
186     wrappers:
187       - build-timeout:
188           timeout: 220
189       - fix-workspace-permissions
190
191     scm:
192       - git-scm:
193           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
194           branch: '{nordix-branch}'
195           refspec: ''
196           wipe_workspace: true
197           clean_before: false
198
199     builders:
200       - description-setter:
201           description: $INSTALLER_TYPE | $DEPLOY_SCENARIO
202       - multijob:
203           name: Deploy ONAP
204           condition: SUCCESSFUL
205           projects:
206             - name: 'onap-deploy-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
207               current-parameters: true
208               predefined-parameters: |
209                 DISTRO=$DISTRO
210                 DEPLOY_TYPE=$DEPLOY_TYPE
211                 PROVISIIONER_TYPE=$PROVISIIONER_TYPE
212                 INSTALLER_TYPE=$INSTALLER_TYPE
213                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
214                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
215                 ONAP_VERSION=$ONAP_VERSION
216                 ONAP_FLAVOR=$ONAP_FLAVOR
217                 ENGINE_VERSION=$ENGINE_VERSION
218                 ENGINE_REFSPEC=$ENGINE_REFSPEC
219                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
220                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
221                 XTESTING_REPO_URL=$XTESTING_REPO_URL
222                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
223                 CLEANUP=$CLEANUP
224               git-revision: true
225               node-parameters: true
226               kill-phase-on: FAILURE
227               abort-all-job: true
228       - multijob:
229           name: OOM Healthcheck
230           condition: SUCCESSFUL
231           projects:
232             - name: 'oom-healthcheck-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
233               current-parameters: true
234               predefined-parameters: |
235                 DISTRO=$DISTRO
236                 DEPLOY_TYPE=$DEPLOY_TYPE
237                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
238                 PROVISIIONER_TYPE=$PROVISIIONER_TYPE
239                 INSTALLER_TYPE=$INSTALLER_TYPE
240                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
241                 ONAP_VERSION=$ONAP_VERSION
242                 ONAP_FLAVOR=$ONAP_FLAVOR
243                 ENGINE_VERSION=$ENGINE_VERSION
244                 ENGINE_REFSPEC=$ENGINE_REFSPEC
245                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
246                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
247                 XTESTING_REPO_URL=$XTESTING_REPO_URL
248                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
249                 CLEANUP=$CLEANUP
250               node-parameters: true
251               kill-phase-on: NEVER
252               abort-all-job: false
253       - multijob:
254           name: ONAP Healthcheck
255           condition: SUCCESSFUL
256           projects:
257             - name: 'onap-healthcheck-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
258               current-parameters: true
259               predefined-parameters: |
260                 DISTRO=$DISTRO
261                 DEPLOY_TYPE=$DEPLOY_TYPE
262                 PROVISIIONER_TYPE=$PROVISIIONER_TYPE
263                 INSTALLER_TYPE=$INSTALLER_TYPE
264                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
265                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
266                 ONAP_VERSION=$ONAP_VERSION
267                 ONAP_FLAVOR=$ONAP_FLAVOR
268                 ENGINE_VERSION=$ENGINE_VERSION
269                 ENGINE_REFSPEC=$ENGINE_REFSPEC
270                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
271                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
272                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
273                 XTESTING_REPO_URL=$XTESTING_REPO_URL
274                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
275                 CLEANUP=$CLEANUP
276               node-parameters: true
277               kill-phase-on: NEVER
278               abort-all-job: false
279       - multijob:
280           name: Promote ONAP
281           condition: SUCCESSFUL
282           projects:
283             - name: 'promote-onap-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
284               current-parameters: true
285               predefined-parameters: |
286                 DISTRO=$DISTRO
287                 DEPLOY_TYPE=$DEPLOY_TYPE
288                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
289                 INSTALLER_TYPE=$INSTALLER_TYPE
290                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
291                 ONAP_VERSION=$ONAP_VERSION
292                 ONAP_FLAVOR=$ONAP_FLAVOR
293                 ENGINE_VERSION=$ENGINE_VERSION
294                 ENGINE_REFSPEC=$ENGINE_REFSPEC
295                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
296                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
297                 XTESTING_REPO_URL=$XTESTING_REPO_URL
298                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
299                 CLEANUP=$CLEANUP
300               node-parameters: true
301               kill-phase-on: NEVER
302               abort-all-job: false
303
304 - job-template:
305     name: '{phase}-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
306
307     disabled: false
308
309     concurrent: true
310
311     properties:
312       - logrotate
313
314     parameters:
315       - project-parameters:
316           project: '{project}'
317           branch: '{nordix-branch}'
318       - nordix-gerrit-parameters
319       - label:
320           name: SLAVE_LABEL
321           default: 'jumphost-onap-ubuntu1804'
322           description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
323       - string:
324           name: DISTRO
325           default: 'ubuntu1804'
326           description: 'Distribution to use for configuring target nodes (networking etc.). Overriden by upstream job.'
327       - string:
328           name: PROVISIONER_TYPE
329           default: 'heat'
330           description: 'Provisioner to use for provisioning nodes'
331       - string:
332           name: INSTALLER_TYPE
333           default: 'kubespray'
334           description: 'Installer to use for deploying the scenario'
335       - string:
336           name: DEPLOY_SCENARIO
337           default: 'onap-oom-nofeature'
338           description: 'Scenario to deploy and test'
339       - string:
340           name: HEAT_ENVIRONMENT_FILE
341           default: "file://$WORKSPACE/.cache/repos/swconfig/scenarios/$DEPLOY_SCENARIO/$INSTALLER_TYPE/role/$DEPLOY_SCENARIO/files/heat-environment-full.yaml"
342           description: 'Type of the deployment'
343       - string:
344           name: DEPLOY_TYPE
345           default: 'cloud'
346           description: 'Type of the deployment. Overriden by upstream job.'
347       - string:
348           name: ONAP_VERSION
349           default: 'master'
350           description: 'ONAP version to deploy'
351       - string:
352           name: ONAP_FLAVOR
353           default: '{onap-flavor}'
354           description: 'ONAP flavor to deploy - could be core, small, medium, full. Also used for xtesting as run_type.'
355       - string:
356           name: ENGINE_VERSION
357           default: 'master'
358           description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying ONAP. Could be sha, branch'
359       - string:
360           name: ENGINE_REFSPEC
361           default: 'master'
362           description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying ONAP. Must be refspec.'
363       - string:
364           name: DEPLOY_SCENARIO_VERSION
365           default: 'master'
366           description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying ONAP. Depends on DEPLOY_SCENARIO_REFSPEC and could be sha, branch.'
367       - string:
368           name: DEPLOY_SCENARIO_REFSPEC
369           default: 'master'
370           description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying ONAP. Depends on DEPLOY_SCENARIO_VERSION and must be refspec.'
371       - string:
372           name: XTESTING_REPO_URL
373           default: 'https://gerrit.nordix.org/opnfv/xtesting-onap.git'
374           description: 'URL to Nordix xtesting-onap repository'
375       - string:
376           name: ENGINE_ANSIBLE_PARAMS
377           default: ''
378           description: 'Extra parameters that can be added when run the play books.'
379       - string:
380           name: CLEANUP
381           default: 'true'
382
383     wrappers:
384       - build-timeout:
385           timeout: '{build-timeout}'
386       - fix-workspace-permissions
387
388     scm:
389       - git-scm:
390           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
391           branch: '{nordix-branch}'
392           refspec: ''
393           wipe_workspace: true
394           clean_before: false
395
396     builders:
397       - description-setter:
398           description: $INSTALLER_TYPE - $DEPLOY_SCENARIO
399       - '{phase}-macro'
400
401 # vim: set ts=2 sw=2 expandtab: