---
#
# ============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 verifying cloud-infra
# engine from the tip of the master branch periodically to check the stability of it.
#
# These jobs are set to run on slaves with label vpod-deploy-ubuntu1604.
# The slaves have
#   - Ubuntu1604 as the base distro
#   - nested virtualization
#   - internet access
#   - passwordless sudo
#   - 16 CPUs/32GB RAM/200 GB Disk
#   - docker, git vim curl wget zip unzip chrony apt-transport-https ca-certificates curl
#     gnupg-agent software-properties-common docker-ce docker-ce-cli containerd.io openjdk-8-jre
#
# The slaves should not have a cloud infra scenario deployed on them.
#--------------------------------------------------------------------------------------

- project:
    name: 'cloud-infra-periodic-openstack'

    project: 'infra/engine'

    stream:
      - 'master':
          disabled: 'true'
          engine-branch: 'master'
          openstack-branch: '{stream}'
      - 'train':
          disabled: 'true'
          engine-branch: 'master'
          openstack-branch: '{stream}'
      - 'stein':
          disabled: 'false'
          engine-branch: 'master'
          openstack-branch: '{stream}'
      - 'rocky':
          disabled: 'true'
          engine-branch: 'master'
          openstack-branch: '{stream}'

    distro:
      - ubuntu1804:
          disabled: 'false'

    deploy-scenario:
      - os-nosdn-nofeature

    ci-loop:
      - daily

    type:
      - baremetal:
          pod-name: est-baremetal
          provisioner-type: bifrost
          installer-type: kolla
          slave-label: baremetal-deploy
          yardstick-dispatcher: 'influxdb'

    phase:
      - deploy:
          build-timeout: 90
      - functest:
          build-timeout: 240
      - yardstick:
          build-timeout: 120
      - promote:
          build-timeout: 5

    jobs:
      - '{deploy-scenario}-{distro}-kolla-{type}-{ci-loop}-{stream}'
      - 'openstack-{phase}-{distro}-kolla-{type}-{ci-loop}-{stream}'

- job-template:
    name: '{deploy-scenario}-{distro}-kolla-{type}-{ci-loop}-{stream}'

    project-type: multijob

    disabled: '{obj:disabled}'

    concurrent: true

    parameters:
      - project-parameters:
          project: '{project}'
          branch: '{engine-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: DISTRO
          default: '{distro}'
          description: 'Distribution to use for configuring target nodes (networking etc.)'
      - string:
          name: DEPLOY_TYPE
          default: '{type}'
          description: 'Type of the deployment'
      - string:
          name: USE_PREBUILT_DEPLOYMENT_IMAGE
          default: 'true'
          description: 'Use prebuilt deployment image while running as part of CI/CD'
      - string:
          name: OPENSTACK_VERSION
          default: '{openstack-branch}'
          description: 'OpenStack Version to deploy and test'
      - string:
          name: PROVISIONER_TYPE
          default: '{provisioner-type}'
          description: 'Provisioner to use for provisioning nodes'
      - string:
          name: INSTALLER_TYPE
          default: '{installer-type}'
          description: 'Installer to use for deploying the scenario'
      - string:
          name: DEPLOY_SCENARIO
          default: '{deploy-scenario}'
          description: 'Scenario to deploy and test'
      - string:
          name: TEST_SUITE
          default: 'smoke'
          description: 'Test suite to run'
      - string:
          name: YARDSTICK_DISPATCHER
          default: '{yardstick-dispatcher}'
          description: 'Dispatcher to use for Yardstick reporting'
      - string:
          name: CLEANUP
          default: 'true'
          description: 'Cleanup leftovers of the previous run'

    properties:
      - logrotate
      - build-blocker:
          use-build-blocker: true
          blocking-jobs:
            - 'cloud-infra-periodic-engine-.*'
            - 'k8-.*'
            - 'os-.*'
          block-level: 'NODE'
      - throttle:
          max-per-node: 1
          max-total: 3
          option: project

    wrappers:
      - build-timeout:
          timeout: 455
      - fix-workspace-permissions

    scm:
      - git-scm:
          ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
          branch: '{engine-branch}'
          refspec: ''
          wipe_workspace: true
          clean_before: false

    triggers:
      - timed: '@daily'

    builders:
      - description-setter:
          description: $PROVISIONER_TYPE | $INSTALLER_TYPE | $DEPLOY_SCENARIO
      - multijob:
          name: deploy
          condition: SUCCESSFUL
          projects:
            - name: 'openstack-deploy-{distro}-{installer-type}-{type}-{ci-loop}-{stream}'
              current-parameters: true
              predefined-parameters: |
                DISTRO=$DISTRO
                DEPLOY_TYPE=$DEPLOY_TYPE
                USE_PREBUILT_DEPLOYMENT_IMAGE=$USE_PREBUILT_DEPLOYMENT_IMAGE
                OPENSTACK_VERSION=$OPENSTACK_VERSION
                PROVISIONER_TYPE=$PROVISIONER_TYPE
                INSTALLER_TYPE=$INSTALLER_TYPE
                DEPLOY_SCENARIO=$DEPLOY_SCENARIO
                CLEANUP=$CLEANUP
              git-revision: true
              node-parameters: true
              kill-phase-on: FAILURE
              abort-all-job: true
      - multijob:
          name: functest
          condition: ALWAYS
          projects:
            - name: 'openstack-functest-{distro}-{installer-type}-{type}-{ci-loop}-{stream}'
              current-parameters: true
              predefined-parameters: |
                DISTRO=$DISTRO
                DEPLOY_TYPE=$DEPLOY_TYPE
                OPENSTACK_VERSION=$OPENSTACK_VERSION
                PROVISIONER_TYPE=$PROVISIONER_TYPE
                INSTALLER_TYPE=$INSTALLER_TYPE
                DEPLOY_SCENARIO=$DEPLOY_SCENARIO
                TEST_SUITE=$TEST_SUITE
                YARDSTICK_DISPATCHER=$YARDSTICK_DISPATCHER
                CLEANUP=$CLEANUP
              node-parameters: true
              kill-phase-on: NEVER
              abort-all-job: false
      - multijob:
          name: yardstick
          condition: ALWAYS
          projects:
            - name: 'openstack-yardstick-{distro}-{installer-type}-{type}-{ci-loop}-{stream}'
              current-parameters: true
              predefined-parameters: |
                DISTRO=$DISTRO
                DEPLOY_TYPE=$DEPLOY_TYPE
                OPENSTACK_VERSION=$OPENSTACK_VERSION
                PROVISIONER_TYPE=$PROVISIONER_TYPE
                INSTALLER_TYPE=$INSTALLER_TYPE
                DEPLOY_SCENARIO=$DEPLOY_SCENARIO
                TEST_SUITE=$TEST_SUITE
                YARDSTICK_DISPATCHER=$YARDSTICK_DISPATCHER
                CLEANUP=$CLEANUP
              node-parameters: true
              kill-phase-on: NEVER
              abort-all-job: false
      - multijob:
          name: promote
          condition: SUCCESSFUL
          projects:
            - name: 'openstack-promote-{distro}-{installer-type}-{type}-{ci-loop}-{stream}'
              current-parameters: true
              predefined-parameters: |
                DISTRO=$DISTRO
                DEPLOY_TYPE=$DEPLOY_TYPE
                OPENSTACK_VERSION=$OPENSTACK_VERSION
                PROVISIONER_TYPE=$PROVISIONER_TYPE
                INSTALLER_TYPE=$INSTALLER_TYPE
                DEPLOY_SCENARIO=$DEPLOY_SCENARIO
                TEST_SUITE=$TEST_SUITE
                YARDSTICK_DISPATCHER=$YARDSTICK_DISPATCHER
                CLEANUP=$CLEANUP
              node-parameters: true
              kill-phase-on: FAILURE
              abort-all-job: true

- job-template:
    name: 'openstack-{phase}-{distro}-kolla-{type}-{ci-loop}-{stream}'

    disabled: false

    concurrent: true

    properties:
      - logrotate

    parameters:
      - string:
          name: PROJECT
          default: $GERRIT_PROJECT
      - string:
          name: DISTRO
          default: 'ubuntu1804'
          description: 'Distribution to use for configuring target nodes (networking etc.). Overriden by upstream job.'
      - string:
          name: DEPLOY_TYPE
          default: 'virtual'
          description: 'Type of the deployment. Overriden by upstream job.'
      - string:
          name: OPENSTACK_VERSION
          default: 'stein'
          description: 'OpenStack Version to deploy and test'
      - string:
          name: USE_PREBUILT_DEPLOYMENT_IMAGE
          default: 'false'
          description: 'Use prebuilt deployment image while running as part of CI/CD'
      - string:
          name: ENGINE_ANSIBLE_PARAMS
          default: ' -v '
          description: 'Extra paramters that can be added when run the play books.'
      - string:
          name: DEPLOY_SCENARIO
          default: 'k8-calico-nofeature'
          description: 'Scenario to deploy and test'
      - string:
          name: PROVISIONER_TYPE
          default: 'bifrost'
          description: 'Provisioner to use for provisioning nodes'
      - string:
          name: INSTALLER_TYPE
          default: 'kolla'
          description: 'Installer to use for deploying the scenario'
      - string:
          name: TEST_FW
          default: '{phase}'
          description: 'Test framework to use'
      - string:
          name: TEST_SUITE
          default: 'smoke'
          description: 'Test suite to run'
      - string:
          name: TEST_REPO_URL
          default: 'https://gerrit.nordix.org/infra/test.git'
          description: 'URL to Nordix Cloud Infra test repository'
      - string:
          name: YARDSTICK_DISPATCHER
          default: 'file'
          description: 'Dispatcher to use for Yardstick reporting'
      - string:
          name: CLEANUP
          default: 'false'

    wrappers:
      - build-timeout:
          timeout: '{build-timeout}'
      - fix-workspace-permissions

    scm:
      - git-scm:
          ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
          branch: '{engine-branch}'
          refspec: ''
          wipe_workspace: true
          clean_before: false

    builders:
      - description-setter:
          description: $PROVISIONER_TYPE | $INSTALLER_TYPE | $DEPLOY_SCENARIO
      - 'scenario-{phase}-macro'

# vim: set ts=2 sw=2 expandtab:
