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

- project:
    name: 'kubernetes-verify-deploy-test'

    project: 'kubernetes-verify-deploy-test'

    # NOTE (fdegir): dot is not an allowed character in groovy var names and also for
    # naming openstack objects so stream is used for that purpose but branch points to
    # actual branch name on gerrit
    stream:
      - 'master':
          branch: 'master'
          deploy-scenario: 'k8-multus-plugins'
      - '1_18':
          branch: '1.18'
          deploy-scenario: 'k8-multus-plugins'
      - '1_17':
          branch: '1.17'
          deploy-scenario: 'k8-multus-plugins'
      - '1_16':
          branch: '1.16'
          deploy-scenario: 'k8-calico-nofeature'
      - '1_15':
          branch: '1.15'
          deploy-scenario: 'k8-calico-nofeature'

    environment-type:
      - online:
          disabled: false
          execution-mode: online-deployment
          successful: false
          failed: false
          unstable: false
          notbuilt: false
      - offline:
          disabled: false
          execution-mode: offline-deployment
          successful: false
          failed: false
          unstable: false
          notbuilt: false

    phase:
      - deploy
      - functest

    type:
      - virtual:
          provisioner-type: 'bifrost'
          slave-type: 'vpod'
          gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
          pdf: 'https://gerrit.nordix.org/gitweb?p=infra/hwconfig.git;a=blob_plain;f=pods/nordix-vpod1-pdf.yml'
          idf: 'https://gerrit.nordix.org/gitweb?p=infra/hwconfig.git;a=blob_plain;f=pods/nordix-vpod1-idf.yml'
      - cloud:
          provisioner-type: 'heat'
          slave-type: 'jumphost'
          gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
          pdf: "https://gerrit.nordix.org/gitweb?p=infra/provisioner/heat.git;a=blob_plain;f=playbooks/roles/create-stack/files/heat-environment-ci-city-ubuntu1804.yaml"
          idf: "https://gerrit.nordix.org/gitweb?p=infra/provisioner/heat.git;a=blob_plain;f=playbooks/roles/create-stack/files/heat-idf.yaml"

    distro:
      - ubuntu1804

    cloud:
      - city:
          openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-cicd'

    dependency-jobs: 'kubernetes-verify-package-{distro}-{stream}'
    dependency-job-var: 'TRIGGER_kubernetes_verify_package_{distro}_{stream}_BUILD_RESULT'

    jobs:
      - 'kubernetes-verify-{environment-type}-deploy-test-{distro}-{cloud}-{type}-{stream}'
      - 'kubernetes-verify-{environment-type}-{phase}-{distro}-{cloud}-{type}-{stream}'

- job-template:
    name: 'kubernetes-verify-{environment-type}-deploy-test-{distro}-{cloud}-{type}-{stream}'

    project-type: multijob

    disabled: '{obj:disabled}'

    concurrent: true

    parameters:
      - string:
          name: DEPLOY_SCENARIO
          default: '{deploy-scenario}'
          description: 'Scenario to test change with. This depends on the branch of the stack'
      - string:
          name: DISTRO
          default: '{distro}'
          description: 'Distribution to use for configuring target nodes (networking etc.)'
      - label:
          name: SLAVE_LABEL
          default: 'engine-{slave-type}-{environment-type}-{distro}-fra'
          description: 'Slave label to schedule this job on.'
      - string:
          name: HW_TYPE
          default: '{type}'
          description: 'Hardware type - could be virtual, cloud, or baremetal'
      - string:
          name: EXECUTION_MODE
          default: '{execution-mode}'
          description: 'Execution mode to run in'
      - string:
          name: PDF
          default: '{pdf}'
          description: 'PDF file to use for deployment'
      - string:
          name: IDF
          default: '{idf}'
          description: 'IDF file to use for deployment'
      - string:
          name: HEAT_STACK_NAME
          default: "nordix-cicd-verify-kubernetes-{environment-type}-{distro}-$GERRIT_CHANGE_NUMBER"
          description: 'Name of the created stack'
      - string:
          name: KEYPAIR_NAME
          default: "keypair-nordix-cicd-verify-kubernetes-{environment-type}-{distro}-$GERRIT_CHANGE_NUMBER"
          description: 'Name of the created keypair'
      - string:
          name: USE_PREBUILT_DEPLOYMENT_IMAGE
          default: 'true'
          description: 'Use prebuilt deployment image while running as part of CI/CD'
      - string:
          name: TEST_REPO_URL
          default: 'https://gerrit.nordix.org/infra/test.git'
          description: 'URL to clone the test repo from'
      - string:
          name: TEST_FW
          default: 'functest'
          description: 'Test framework to use'
      - string:
          name: TEST_SUITE
          default: 'healthcheck'
          description: 'Test suite to run'
      - string:
          name: YARDSTICK_DISPATCHER
          default: 'file'
          description: 'Dispatcher to use for Yardstick reporting'
      - string:
          name: DELETE_STACK
          default: 'true'
          description: 'Delete the stack upon completion of the build'
      - string:
          name: VERBOSITY
          default: 'true'
          description: 'Verbosity setting for the engine - true or false - default is false'
      - string:
          name: CI_LOOP
          default: "verify"
          description: 'CI loop the job belongs to'
      - string:
          name: ROOK_FS
          default: 'true'
          description: 'Whether to deploy csi-cephfs storageclass.'
      - project-parameters:
          project: $GERRIT_PROJECT
          branch: '{branch}'
          description: 'The project and branch which the change is proposed for'
      - nordix-gerrit-parameters

    properties:
      - logrotate
      # NOTE (fdegir): throttle categories are controlled in jenkins global configuration
      - throttle:
          enabled: true
          max-per-node: 1
          max-total: 8
          option: category
          categories:
            - engine-verify-deploy-test

    scm:
      - git-scm-gerrit:
          ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
          branch: $GERRIT_BRANCH
          refspec: $GERRIT_REFSPEC
          wipe_workspace: true
          clean_before: false

    triggers:
      - gerrit:
          server-name: 'Nordix Gerrit'
          trigger-on:
            - patchset-created-event:
                exclude-drafts: 'false'
                exclude-trivial-rebase: 'false'
                exclude-no-code-change: 'false'
            - draft-published-event
            - comment-added-contains-event:
                comment-contains-value: 'recheck'
            - comment-added-contains-event:
                comment-contains-value: 'reverify'
          projects:
            - project-compare-type: 'REG_EXP'
              project-pattern: '{gated-projects}'
              branches:
                - branch-compare-type: 'ANT'
                  branch-pattern: '**/{branch}'
              disable-strict-forbidden-file-verification: 'true'
              forbidden-file-paths:
                - compare-type: ANT
                  pattern: 'docs/**|releasenotes/**'
          skip-vote:
            successful: '{obj:successful}'
            failed: '{obj:failed}'
            unstable: '{obj:unstable}'
            notbuilt: '{obj:notbuilt}'
          custom-url: '* $JOB_NAME $BUILD_URL'
          readable-message: 'true'
          dependency-jobs: '{dependency-jobs}'

    wrappers:
      - build-timeout:
          timeout: 180
      - credentials-binding:
          - file:
              credential-id: '{openrc-credentials-file}'
              variable: OPENRC_FILE
          - username-password-separated:
              credential-id: 'nordix-cicd-arm-credentials'
              username: NORDIX_ARM_USERNAME
              password: NORDIX_ARM_TOKEN
      - mask-passwords
      - openstack:
          single-use: True
      - pre-scm-buildstep:
          failOnError: true
          buildsteps:
            - system-groovy:
                command: |
                  def build = this.getProperty('binding').getVariable('build')
                  def listener = this.getProperty('binding').getVariable('listener')
                  if (build.getEnvironment(listener).{dependency-job-var} != "SUCCESS") {{
                    println "WARN  : Aborting build since dependent job did not succeed!"
                    throw new InterruptedException()
                  }}
            - shell: |
                #!/bin/bash
                sudo chown -R $USER:$USER $WORKSPACE || exit 1
                # offline nodes can not resolve Nordix Artifactory and Gerrit
                if [[ "$EXECUTION_MODE" == "offline-deployment" ]]; then
                  echo "Info  : Offline deployment. Adding City OpenStack Endpoint, Nordix Artifactory and Gerrit Public IP to /etc/hosts"
                  sudo sed -i 's/^search/# search/' /etc/resolv.conf
                  sudo bash -c "cat << EOF >> /etc/hosts
                # managed by engine
                91.106.198.25 artifactory.nordix.org
                91.106.198.142 gerrit.nordix.org
                86.107.242.50 fra1.citycloud.com
                # managed by engine
                EOF"
                  # we need to get rid of search domain as well
                  sudo sed -i 's/^search/# search/' /etc/resolv.conf
                fi
      - ssh-agent-credentials:
          users:
            - 'nordixinfra-nordix-gerrit-ssh'

    builders:
      - 'generate-change-metadata-macro'
      - multijob:
          name: "{environment-type} deployment on {type} instances"
          condition: SUCCESSFUL
          execution-type: PARALLEL
          projects:
            - name: 'kubernetes-verify-{environment-type}-deploy-{distro}-city-{type}-{stream}'
              current-parameters: true
              git-revision: true
              node-parameters: true
              kill-phase-on: FAILURE
              abort-all-job: false
              property-file: $WORKSPACE/change.properties
      - multijob:
          name: "{environment-type} testing on {type} instances"
          condition: SUCCESSFUL
          execution-type: PARALLEL
          projects:
            - name: 'kubernetes-verify-{environment-type}-functest-{distro}-city-{type}-{stream}'
              current-parameters: true
              git-revision: false
              node-parameters: true
              kill-phase-on: FAILURE
              abort-all-job: false
              property-file: $WORKSPACE/change.properties

    publishers:
      - postbuildscript:
          builders:
            - role: SLAVE
              build-on:
                - SUCCESS
                - FAILURE
                - ABORTED
                - NOT_BUILT
                - UNSTABLE
              build-steps:
                - 'wait-pkg-mgr-macro'
                - 'delete-stack-macro'

- job-template:
    name: 'kubernetes-verify-{environment-type}-{phase}-{distro}-{cloud}-{type}-{stream}'

    disabled: '{obj:disabled}'

    concurrent: true

    properties:
      - logrotate
      - throttle:
          max-per-node: 1
          max-total: 3
          option: project

    scm:
      - git-scm-gerrit:
          ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
          branch: $GERRIT_BRANCH
          refspec: $GERRIT_REFSPEC
          wipe_workspace: true
          clean_before: false

    wrappers:
      - build-timeout:
          timeout: 180
      - credentials-binding:
          - file:
              credential-id: '{openrc-credentials-file}'
              variable: OPENRC_FILE
          - username-password-separated:
              credential-id: 'nordix-cicd-arm-credentials'
              username: NORDIX_ARM_USERNAME
              password: NORDIX_ARM_TOKEN
      - mask-passwords
      - fix-workspace-permissions

    builders:
      - 'generate-ssh-keypair-macro'
      - 'wait-pkg-mgr-macro'
      - 'download-{phase}-artifact-macro'
      - '{phase}-macro'
