Parameterize DIB OS variables and move to Ubuntu1804
[infra/cicd.git] / jjb / cloud-infra / cloud-infra-verify-jobs.yaml
index 13a5dbdabf2db6159709f65ca22d26d39cc13cf8..41dc3c40688184492b8e7266b60b649ef8471c85 100644 (file)
           branch: '{stream}'
           disabled: 'false'
 
-    distro:
-      - ubuntu1604
+    os:
+      - ubuntu1604:
+          disabled: 'true'
+          distribution: 'ubuntu16'
+          ipa_dib_os_element: 'fedora'
+          dib_os_release: 'xenial'
+          dib_os_element: 'ubuntu-minimal'
+      - ubuntu1804:
+          disabled: 'false'
+          distribution: 'ubuntu18'
+          ipa_dib_os_element: 'fedora'
+          dib_os_release: 'bionic'
+          dib_os_element: 'ubuntu-minimal'
+      - centos7:
+          disabled: 'true'
+          distribution: 'centos7'
+          ipa_dib_os_element: 'fedora'
+          dib_os_release: '7'
+          dib_os_element: 'centos-minimal'
 
     type:
       - virtual
       - test
 
     jobs:
-      - 'cloud-infra-verify-{distro}-{type}-{stream}'
-      - 'cloud-infra-verify-{distro}-{phase}-{type}-{stream}'
+      - 'cloud-infra-verify-{os}-{type}-{stream}'
+      - 'cloud-infra-verify-{os}-{phase}-{type}-{stream}'
 
 - job-template:
-    name: 'cloud-infra-verify-{distro}-{type}-{stream}'
+    name: 'cloud-infra-verify-{os}-{type}-{stream}'
 
     project-type: multijob
 
       - nordix-gerrit-parameters
       - label:
           name: SLAVE_LABEL
-          default: 'cloud-infra-vpod'
-          all-nodes: false
-          node-eligibility: 'ignore-offline'
+          default: 'vpod-deploy-{os}'
+          description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
+      - string:
+          name: DISTRIBUTION
+          default: '{distribution}'
+          description: 'Distribution to use for configuring target nodes (networking etc.)'
+      - string:
+          name: IPA_DIB_OS_ELEMENT
+          default: '{ipa_dib_os_element}'
+          description: 'DIB OS Element to use for building the ramdisk image'
+      - string:
+          name: DIB_OS_RELEASE
+          default: '{dib_os_release}'
+          description: 'DIB OS Release to use for building the deployment image to provision target nodes with'
+      - string:
+          name: DIB_OS_ELEMENT
+          default: '{dib_os_element}'
+          description: 'DIB OS Element to use for building the deployment image to provision target nodes with'
       - string:
-          name: DISTRO
-          default: '{distro}'
+          name: CLEANUP
+          default: 'true'
+          description: 'Cleanup leftovers of the previous run'
 
     properties:
       - logrotate
       - build-blocker:
           use-build-blocker: true
           blocking-jobs:
-            - 'cloud-infra-verify-{distro}-.*'
+            - 'cloud-infra-verify-{os}-.*'
             - 'cloud-infra-os-.*'
             - 'cloud-infra-k8-.*'
-          blocking-level: 'NODE'
+          block-level: 'NODE'
       - throttle:
           max-per-node: 1
-          max-total: 2
+          max-total: 3
           option: project
 
     wrappers:
       - build-timeout:
           timeout: 120
       - fix-workspace-permissions
+      - openstack:
+          single-use: True
 
     scm:
       - git-scm-gerrit:
           name: deploy
           condition: SUCCESSFUL
           projects:
-            - name: 'cloud-infra-verify-{distro}-deploy-{type}-{stream}'
+            - name: 'cloud-infra-verify-{os}-deploy-{type}-{stream}'
               current-parameters: true
               predefined-parameters: |
-                DISTRO={distro}
+                DISTRIBUTION=$DISTRIBUTION
+                IPA_DIB_OS_ELEMENT=$IPA_DIB_OS_ELEMENT
+                DIB_OS_RELEASE=$DIB_OS_RELEASE
+                DIB_OS_ELEMENT=$DIB_OS_ELEMENT
+                CLEANUP=$CLEANUP
                 GERRIT_PROJECT=$GERRIT_PROJECT
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
           name: test
           condition: SUCCESSFUL
           projects:
-            - name: 'cloud-infra-verify-{distro}-test-{type}-{stream}'
+            - name: 'cloud-infra-verify-{os}-test-{type}-{stream}'
               current-parameters: true
               predefined-parameters: |
-                DISTRO={distro}
+                DISTRIBUTION=$DISTRIBUTION
+                IPA_DIB_OS_ELEMENT=$IPA_DIB_OS_ELEMENT
+                DIB_OS_RELEASE=$DIB_OS_RELEASE
+                DIB_OS_ELEMENT=$DIB_OS_ELEMENT
+                CLEANUP=$CLEANUP
                 GERRIT_PROJECT=$GERRIT_PROJECT
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
               abort-all-job: true
 
 - job-template:
-    name: 'cloud-infra-verify-{distro}-{phase}-{type}-{stream}'
+    name: 'cloud-infra-verify-{os}-{phase}-{type}-{stream}'
 
     disabled: false
 
           name: PROJECT
           default: $GERRIT_PROJECT
       - string:
-          name: DISTRO
-          default: 'ubuntu1604'
+          name: DISTRIBUTION
+          default: 'ubuntu18'
+          description: 'Distribution to use for configuring target nodes (networking etc.). Overriden by upstream job.'
+      - string:
+          name: IPA_DIB_OS_ELEMENT
+          default: 'fedora'
+          description: 'DIB OS Element to use for building the ramdisk image. Overriden by upstream job.'
+      - string:
+          name: DIB_OS_RELEASE
+          default: 'bionic'
+          description: 'DIB OS Release to use for building the deployment image to provision target nodes with. Overriden by upstream job.'
+      - string:
+          name: DIB_OS_ELEMENT
+          default: 'ubuntu-minimal'
+          description: 'DIB OS Element to use for building the deployment image to provision target nodes with. Overriden by upstream job.'
+      - string:
+          name: CLEANUP
+          default: 'false'
 
     wrappers:
       - build-timeout:
 - builder:
     name: 'cloud-infra-verify-deploy-macro'
     builders:
+      - shell: |
+          #!/bin/bash
+
+          # it takes some time before the OpenStack slave becomes fully operational
+          # so we give it some more time before doing anything
+          sleep 30
       - shell:
           !include-raw: ./cloud-infra-deploy.sh