blob: d0669c548ba612f74bcd9e48f6d88e409bdfb1a7 [file] [log] [blame]
---
#
# ============LICENSE_START=======================================================
# Copyright (C) 2019 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
#--------------------------------------------------------------------------------------
# The jobs declared in this JJB configuration file are used for deploying and testing
# Spinnaker using k8-calico-spinnaker scenario.
#--------------------------------------------------------------------------------------
- project:
name: 'cloud-infra-periodic-spinnaker'
project: 'infra/engine'
cloud:
- city:
slave-label: 'city-jumphost-ubuntu1804'
openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-onap'
daily-trigger: '@daily'
spinnaker-branch:
- '1.16':
nordix-branch: master
engine-version: master
engine-refspec: master
deploy-scenario: 'k8-calico-spinnaker'
deploy-scenario-version: master
deploy-scenario-refspec: master
keypair-name: 'keypair-nordix-cicd-{deploy-scenario}-1_16'
disabled: false
delete-stack: 'yes'
distro:
- ubuntu1804
ci-loop:
- daily
type:
- cloud:
pod-name: est-cloud
provisioner-type: heat
installer-type: kubespray
phase:
- spinnaker-deploy:
build-timeout: 60
- spinnaker-test:
build-timeout: 60
- promote-spinnaker:
build-timeout: 60
jobs:
- 'k8-calico-spinnaker-{distro}-{installer-type}-{cloud}-{type}-{ci-loop}-{spinnaker-branch}'
- '{phase}-{distro}-{installer-type}-{type}-{ci-loop}-{spinnaker-branch}'
- job-template:
name: 'k8-calico-spinnaker-{distro}-{installer-type}-{cloud}-{type}-{ci-loop}-{spinnaker-branch}'
project-type: multijob
disabled: '{obj:disabled}'
concurrent: false
parameters:
- project-parameters:
project: '{project}'
branch: '{nordix-branch}'
- nordix-gerrit-parameters
- label:
name: SLAVE_LABEL
default: '{slave-label}'
description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
- string:
name: PROVISIONER_TYPE
default: 'heat'
description: 'Provisioner to use for provisioning nodes'
- string:
name: INSTALLER_TYPE
default: 'kubespray'
description: 'Installer to use for deploying the scenario'
- string:
name: DEPLOY_SCENARIO
default: 'k8-calico-spinnaker'
description: 'Scenario to deploy and test'
- string:
name: DEPLOY_TYPE
default: 'cloud'
description: 'Type of the deployment'
- string:
name: DISTRO
default: '{distro}'
description: 'Distribution to use for configuring target nodes (networking etc.)'
- string:
name: OPENSTACK_CLOUD_PROVIDER
default: '{cloud}'
description: 'Name of the cloud where this job is run'
- string:
name: SPINNAKER_VERSION
default: '{spinnaker-branch}'
description: 'Spinnaker version to deploy'
- string:
name: STACK_NAME
default: 'nordix-cicd-{deploy-scenario}-{spinnaker-branch}'
- string:
name: KEYPAIR_NAME
default: '{keypair-name}'
- string:
name: HEAT_ENVIRONMENT_FILENAME
default: "heat-environment-full.yaml"
description: 'Heat environment file to use for creating the stack'
- string:
name: ENGINE_VERSION
default: '{engine-version}'
description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying Spinnaker. Could be sha, branch'
- string:
name: ENGINE_REFSPEC
default: '{engine-refspec}'
description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying Spinnaker. Must be refspec.'
- string:
name: DEPLOY_SCENARIO_VERSION
default: '{deploy-scenario-version}'
description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying Spinnaker. Depends on DEPLOY_SCENARIO_REFSPEC and could be sha, branch.'
- string:
name: DEPLOY_SCENARIO_REFSPEC
default: '{deploy-scenario-refspec}'
description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying Spinnaker. Depends on DEPLOY_SCENARIO_VERSION and must be refspec.'
- string:
name: POD_NAME
default: '{pod-name}'
description: 'Development purposes only! Set to none for disabling test results DB reporting.'
- string:
name: DELETE_STACK
default: '{delete-stack}'
description: 'Development purposes only! Whether delete the stack or not. It must either be yes or no. Setting this to no will increase the cost!'
properties:
- logrotate
- build-blocker:
use-build-blocker: true
blocking-jobs:
- 'cloud-infra-verify-engine-.*'
- 'cloud-infra-verify-scenario-.*'
- 'cloud-infra-periodic-engine-.*'
- 'onap-.*'
- 'k8-.*'
- 'os-.*'
- 'nolabs-.*'
block-level: 'NODE'
- throttle:
max-per-node: 1
max-total: 1
option: project
wrappers:
- credentials-binding:
- file:
credential-id: '{openrc-credentials-file}'
variable: OPENRC_FILE
- mask-passwords
- build-timeout:
timeout: 630
- fix-workspace-permissions
- openstack:
single-use: True
triggers:
- timed: '{daily-trigger}'
scm:
- git-scm:
ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
branch: '{nordix-branch}'
refspec: ''
wipe_workspace: true
clean_before: false
builders:
- description-setter:
description: $DEPLOY_SCENARIO | Spinnaker $SPINNAKER_VERSION
- shell: |
#!/bin/bash
/bin/rm -rf /tmp/openrc && /bin/cp -f $OPENRC_FILE /tmp/openrc
- multijob:
name: Deploy Spinnaker using Helm
condition: ALWAYS
projects:
- name: 'spinnaker-deploy-{distro}-{installer-type}-{type}-{ci-loop}-{spinnaker-branch}'
current-parameters: false
predefined-parameters: |
DISTRO=$DISTRO
OPENSTACK_CLOUD_PROVIDER=$OPENSTACK_CLOUD_PROVIDER
DEPLOY_TYPE=$DEPLOY_TYPE
PROVISIONER_TYPE=$PROVISIONER_TYPE
INSTALLER_TYPE=$INSTALLER_TYPE
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
SPINNAKER_VERSION=$SPINNAKER_VERSION
POD_NAME=$POD_NAME
STACK_NAME=$STACK_NAME
HEAT_ENVIRONMENT_FILENAME=$HEAT_ENVIRONMENT_FILENAME
ENGINE_VERSION=$ENGINE_VERSION
ENGINE_REFSPEC=$ENGINE_REFSPEC
DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
git-revision: true
node-parameters: true
kill-phase-on: NEVER
abort-all-job: false
- multijob:
name: Test Spinnaker Deployment (not activated)
condition: ALWAYS
projects:
- name: 'spinnaker-test-{distro}-{installer-type}-{type}-{ci-loop}-{spinnaker-branch}'
current-parameters: false
predefined-parameters: |
DISTRO=$DISTRO
OPENSTACK_CLOUD_PROVIDER=$OPENSTACK_CLOUD_PROVIDER
DEPLOY_TYPE=$DEPLOY_TYPE
PROVISIONER_TYPE=$PROVISIONER_TYPE
INSTALLER_TYPE=$INSTALLER_TYPE
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
SPINNAKER_VERSION=$SPINNAKER_VERSION
POD_NAME=$POD_NAME
STACK_NAME=$STACK_NAME
HEAT_ENVIRONMENT_FILENAME=$HEAT_ENVIRONMENT_FILENAME
ENGINE_VERSION=$ENGINE_VERSION
ENGINE_REFSPEC=$ENGINE_REFSPEC
DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
git-revision: true
node-parameters: true
kill-phase-on: NEVER
abort-all-job: false
- multijob:
name: Promote Spinnaker (not activated)
condition: ALWAYS
projects:
- name: 'promote-spinnaker-{distro}-{installer-type}-{type}-{ci-loop}-{spinnaker-branch}'
current-parameters: false
predefined-parameters: |
DISTRO=$DISTRO
OPENSTACK_CLOUD_PROVIDER=$OPENSTACK_CLOUD_PROVIDER
DEPLOY_TYPE=$DEPLOY_TYPE
PROVISIONER_TYPE=$PROVISIONER_TYPE
INSTALLER_TYPE=$INSTALLER_TYPE
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
SPINNAKER_VERSION=$SPINNAKER_VERSION
POD_NAME=$POD_NAME
STACK_NAME=$STACK_NAME
HEAT_ENVIRONMENT_FILENAME=$HEAT_ENVIRONMENT_FILENAME
ENGINE_VERSION=$ENGINE_VERSION
ENGINE_REFSPEC=$ENGINE_REFSPEC
DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
git-revision: true
node-parameters: true
kill-phase-on: NEVER
abort-all-job: false
publishers:
- postbuildscript:
builders:
- role: SLAVE
build-on:
- SUCCESS
- FAILURE
- ABORTED
- NOT_BUILT
- UNSTABLE
build-steps:
- shell:
!include-raw-escape: ./wait-for-pkg-manager.sh
- shell:
!include-raw: ./delete-heat-stack.sh
- job-template:
name: '{phase}-{distro}-{installer-type}-{type}-{ci-loop}-{spinnaker-branch}'
disabled: false
concurrent: false
properties:
- logrotate
parameters:
- project-parameters:
project: '{project}'
branch: '{nordix-branch}'
- nordix-gerrit-parameters
- label:
name: SLAVE_LABEL
default: 'city-jumphost-ubuntu1804'
description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
- string:
name: PROVISIONER_TYPE
default: 'heat'
description: 'Provisioner to use for provisioning nodes'
- string:
name: INSTALLER_TYPE
default: 'kubespray'
description: 'Installer to use for deploying the scenario'
- string:
name: DEPLOY_SCENARIO
default: 'k8-calico-spinnaker'
description: 'Scenario to deploy and test'
- string:
name: DEPLOY_TYPE
default: 'cloud'
description: 'Type of the deployment'
- string:
name: DISTRO
default: '{distro}'
description: 'Distribution to use for configuring target nodes (networking etc.)'
- string:
name: OPENSTACK_CLOUD_PROVIDER
default: '{cloud}'
description: 'Name of the cloud where this job is run'
- string:
name: SPINNAKER_VERSION
default: '{spinnaker-branch}'
description: 'Spinnaker version to deploy'
- string:
name: STACK_NAME
default: 'nordix-cicd-{deploy-scenario}-{spinnaker-branch}'
- string:
name: HEAT_ENVIRONMENT_FILENAME
default: "heat-environment-full.yaml"
description: 'Heat environment filename to use for creating the stack'
- string:
name: HEAT_ENVIRONMENT_FILE
default: "file:///opt/engine/.cache/repos/swconfig/scenarios/$DEPLOY_SCENARIO/$INSTALLER_TYPE/role/$DEPLOY_SCENARIO/files/$HEAT_ENVIRONMENT_FILENAME"
description: 'Heat environment file location to use for creating the stack'
- string:
name: ENGINE_VERSION
default: '{engine-version}'
description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying Spinnaker. Could be sha, branch'
- string:
name: ENGINE_REFSPEC
default: '{engine-refspec}'
description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying Spinnaker. Must be refspec.'
- string:
name: DEPLOY_SCENARIO_VERSION
default: '{deploy-scenario-version}'
description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying Spinnaker. Depends on DEPLOY_SCENARIO_REFSPEC and could be sha, branch.'
- string:
name: DEPLOY_SCENARIO_REFSPEC
default: '{deploy-scenario-refspec}'
description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying Spinnaker. Depends on DEPLOY_SCENARIO_VERSION and must be refspec.'
- string:
name: POD_NAME
default: '{pod-name}'
description: 'Development purposes only! Set to none for disabling test results DB reporting.'
- string:
name: DELETE_STACK
default: '{delete-stack}'
description: 'Development purposes only! Whether delete the stack or not. It must either be yes or no. Setting this to no will increase the cost!'
wrappers:
- mask-passwords
- build-timeout:
timeout: '{build-timeout}'
- fix-workspace-permissions
- credentials-binding:
- username-password-separated:
credential-id: 'nordix-cicd-arm-credentials'
username: NORDIX_ARM_USERNAME
password: NORDIX_ARM_TOKEN
- username-password-separated:
credential-id: 'nordix-cicd-harbor-credentials'
username: NORDIX_HARBOR_USERNAME
password: NORDIX_HARBOR_PASSWORD
scm:
- git-scm:
ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
branch: '{nordix-branch}'
refspec: ''
wipe_workspace: true
clean_before: false
builders:
- description-setter:
description: $DEPLOY_SCENARIO | Spinnaker $SPINNAKER_VERSION | $OPENSTACK_CLOUD_PROVIDER
- '{phase}-macro'
# vim: set ts=2 sw=2 expandtab: