---
#
# ============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:
