engine: Refactor kubernetes release jobs
[infra/cicd.git] / jjb / engine / kubernetes-jobs / kubernetes-release-jobs.yaml
similarity index 53%
rename from jjb/engine/kubernetes-periodic-jobs/kubernetes-offline-release-jobs.yaml
rename to jjb/engine/kubernetes-jobs/kubernetes-release-jobs.yaml
index 0bfd4fb96e70a343bda2c690636c03c1de956719..9aad833d8a31cf95ca184b606bc70d52ba22aa7a 100644 (file)
 # ============LICENSE_END=========================================================
 
 - project:
-    name: 'kubernetes-release-offline'
+    name: 'kubernetes-release'
 
-    project: 'kubernetes-release-offline'
+    project: 'kubernetes-release'
+
+    stream:
+      - 'master':
+          branch: 'master'
+          deploy-scenario: 'k8-multus-plugins'
+          promote-stack: 'false'
+      - '1_17':
+          branch: '1.17'
+          deploy-scenario: 'k8-multus-plugins'
+          promote-stack: 'true'
+      - '1_16':
+          branch: '1.16'
+          deploy-scenario: 'k8-calico-nofeature'
+          promote-stack: 'true'
+      - '1_15':
+          branch: '1.15'
+          deploy-scenario: 'k8-calico-nofeature'
+          promote-stack: 'true'
 
     environment-type:
       - offline:
           openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-cicd'
 
     jobs:
-      - 'kubernetes-periodic-release-{environment-type}-{distro}'
-      - 'kubernetes-periodic-package-{distro}'
-      - 'kubernetes-periodic-promote-{distro}'
+      - 'kubernetes-release-{distro}-{stream}'
+      - 'kubernetes-package-{distro}-{stream}'
+      - 'kubernetes-promote-{distro}-{stream}'
 
 - job-template:
-    name: 'kubernetes-periodic-release-{environment-type}-{distro}'
+    name: 'kubernetes-release-{distro}-{stream}'
 
     project-type: multijob
 
     disabled: '{obj:disabled}'
 
+    node: 'engine-package-{distro}-fra'
+
     concurrent: false
 
     parameters:
       - string:
-          name: EXECUTION_MODE
-          default: '{execution-mode}'
-          description: 'Engine execution mode - online-deployment or offline-deployment - default is online-deployment'
+          name: BRANCH
+          default: '{branch}'
+          description: 'Branch the job is created for. DO NOT MODIFY!'
       - string:
           name: DISTRO
           default: '{distro}'
-          description: 'Distribution to use for configuring target nodes (networking etc.)'
-      - string:
-          name: INSTALLER_TYPE
-          default: 'kubespray'
-          description: 'Installer type to use'
+          description: 'Distribution to provision and configre target nodes with. DO NOT MODIFY!'
       - string:
           name: DEPLOY_SCENARIO
-          default: 'k8-multus-plugins'
-          description: 'Scenario to deploy and test'
+          default: '{deploy-scenario}'
+          description: 'Scenario to test change with. This depends on the branch of the stack.'
+      - string:
+          name: CI_LOOP
+          default: 'release'
+          description: 'CI loop type. DO NOT MODIFY!'
       - string:
           name: VERBOSITY
-          default: 'true'
-          description: 'Verbosity setting for the engine - true or false - default is false'
+          default: 'false'
+          description: 'Engine verbosity'
       - string:
-          name: ARTIFACTS_TO_UPLOAD
-          default: "k8s-installer-ubuntu1804.bsx offline-package.tgz"
-          description: 'Artifacts to upload'
+          name: NORDIX_ENGINE_VERSION
+          default: 'master'
+          description: 'Engine version of engine to package, deploy, test, release'
       - string:
-          name: ARTIFACT_TO_DOWNLOAD
-          default: "k8s-installer-ubuntu1804.bsx"
-          description: 'Artifact to download'
+          name: STACK_TYPE
+          default: 'kubernetes'
+          description: 'Stack to package, deploy, test, release'
       - string:
-          name: NORDIX_ARM_PUBLIC_IP
-          default: '91.106.198.25'
-          description: 'Public IP of Nordix Artifactory. Offline deployments can not resolve domain name'
+          name: STACK_VERSION
+          default: '{branch}'
+          description: 'Stack version of engine to package, deploy, test, release'
       - string:
-          name: NORDIX_ARM_HTTPS_URL
-          default: 'https://artifactory.nordix.org/artifactory'
-          description: 'URL to Nordix Artifactory'
+          name: NORDIX_KUBESPRAY_VERSION
+          default: '{branch}'
+          description: 'Kubespray version of engine to package, deploy, test, release'
       - string:
-          name: NORDIX_ARM_REPO
-          default: 'nordix-kubernetes'
-          description: 'Name of the repository to upload and download artifact to/from. Depends on the stack'
+          name: NORDIX_BIFROST_VERSION
+          default: 'master'
+          description: 'Bifrost version of engine to package, deploy, test, release'
       - string:
-          name: CI_LOOP
-          default: 'periodic'
-          description: 'CI loop type'
-      - label:
-          name: SLAVE_LABEL
-          default: 'engine-package-ubuntu1804-fra'
-          description: 'Slave label to schedule this job on.'
+          name: NORDIX_HEAT_VERSION
+          default: 'master'
+          description: 'Heat version of engine to package, deploy, test, release'
+      - string:
+          name: PROMOTE_STACK
+          default: '{promote-stack}'
+          description: 'Heat version of engine to package, deploy, test, release'
 
     properties:
       - logrotate
-      - build-blocker:
-          use-build-blocker: true
-          blocking-jobs:
-            - 'engine-verify-package-.*'
-            - 'onap-sdc-periodic-release-offline-.*'
-            - 'onap-so-periodic-release-offline-.*'
-            - 'kubernetes-periodic-release-offline-.*'
-          block-level: 'NODE'
+      # NOTE (fdegir): throttle categories are controlled in jenkins global configuration
+      - throttle:
+          enabled: true
+          max-per-node: 1
+          max-total: 1
+          option: category
+          categories:
+            - engine-verify-package
 
     wrappers:
       - build-timeout:
           timeout: 600
       - mask-passwords
       - fix-workspace-permissions
+      - openstack:
+          single-use: True
 
     triggers:
       - pollscm:
-          cron: "H 0,8,16 * * *"
+          cron: "#H 0,8,16 * * *"
 
     scm:
       - git:
           wipe-workspace: true
 
     builders:
+      - 'generate-release-metadata-macro'
+      - inject:
+          properties-file: "$WORKSPACE/release.properties"
       - 'generate-ssh-keypair-macro'
-      - 'generate-build-metadata-macro'
       - 'wait-pkg-mgr-macro'
       - multijob:
-          name: package
+          name: Packaging
           condition: SUCCESSFUL
           execution-type: PARALLEL
           projects:
-            - name: 'kubernetes-periodic-package-{distro}'
-              current-parameters: true
+            - name: 'kubernetes-package-{distro}-{stream}'
+              current-parameters: false
               git-revision: true
               node-parameters: true
-              property-file: "$WORKSPACE/build.properties"
+              property-file: "$WORKSPACE/release.properties"
               kill-phase-on: FAILURE
               abort-all-job: true
       - multijob:
-          name: release test k8-multus-plugins
+          name: Release Test {deploy-scenario}
           condition: SUCCESSFUL
           execution-type: PARALLEL
           projects:
-            - name: 'k8-multus-plugins-offline-{distro}-baremetal-periodic'
+            - name: 'kubernetes-release-offline-deploy-test-{distro}-baremetal-{stream}'
               current-parameters: false
-              git-revision: false
+              git-revision: true
               node-parameters: false
-              property-file: "$WORKSPACE/build.properties"
-              predefined-parameters: |
-                EXECUTION_MODE=$EXECUTION_MODE
-                NORDIX_ARM_PUBLIC_IP=$NORDIX_ARM_PUBLIC_IP
-                ARTIFACT_TO_DOWNLOAD=$ARTIFACT_TO_DOWNLOAD
-                VERBOSITY=$VERBOSITY
+              property-file: "$WORKSPACE/release.properties"
               kill-phase-on: FAILURE
               abort-all-job: true
       - multijob:
-          name: promotion
+          name: Promotion
           condition: SUCCESSFUL
           execution-type: PARALLEL
           projects:
-            - name: 'kubernetes-periodic-promote-{distro}'
-              current-parameters: true
+            - name: 'kubernetes-promote-{distro}-{stream}'
+              current-parameters: false
               git-revision: true
               node-parameters: true
-              property-file: "$WORKSPACE/build.properties"
+              property-file: "$WORKSPACE/release.properties"
               kill-phase-on: FAILURE
               abort-all-job: true
 
 - job-template:
-    name: 'kubernetes-periodic-package-{distro}'
+    name: 'kubernetes-package-{distro}-{stream}'
 
     disabled: '{obj:disabled}'
 
     concurrent: false
 
+    parameters:
+      - string:
+          name: EXECUTION_MODE
+          default: 'packaging'
+          description: 'Execution mode to run engine'
+
     properties:
       - logrotate
 
       - 'upload-artifact-macro'
 
 - job-template:
-    name: 'kubernetes-periodic-promote-{distro}'
+    name: 'kubernetes-promote-{distro}-{stream}'
 
     disabled: '{obj:disabled}'