]> review.fuel-infra Code Review - tools/sustaining.git/commitdiff
Add cloud switcher to all related jobs 73/41073/3
authorVladimir Khlyunev <vkhlyunev@mirantis.com>
Tue, 16 Apr 2019 12:37:56 +0000 (16:37 +0400)
committerVladimir Khlyunev <vkhlyunev@mirantis.com>
Wed, 17 Apr 2019 09:24:50 +0000 (13:24 +0400)
Change-Id: I984e527c121cdfd6106b43c81cfa3f3b3b9617d5

16 files changed:
maintenance-ci/common/jobs/build-swarm-image.yaml
maintenance-ci/common/jobs/delete-stack.yaml
maintenance-ci/common/jobs/deploy-jenkins-swarm.yaml
maintenance-ci/common/jobs/deploy-stack.yaml
maintenance-ci/common/jobs/drop-create-failed.yaml
maintenance-ci/common/jobs/multijob-build-image.yaml
maintenance-ci/common/jobs/promote_staging_image.yaml
maintenance-ci/common/macroses/cloud-selector-macro-set.yaml [new file with mode: 0644]
maintenance-ci/common/macroses/mos-jenkins-swarm-params.yaml
maintenance-ci/common/macroses/openstack_creds.yaml [deleted file]
maintenance-ci/common/scripts/delete_heat_stack.sh
maintenance-ci/common/scripts/deploy_heat_stack.sh
maintenance-ci/common/scripts/deploy_jenkins_swarm.sh [deleted file]
maintenance-ci/common/scripts/drop_create_failed.sh
maintenance-ci/common/scripts/prepare_build_upload_image.sh
maintenance-ci/common/scripts/promote_staging_image.sh

index 62b421f1f73ca04f711aadb0563f3bfaee5c638c..45e8d2184e203c14a70dd85f5ae8fda3e16fffb3 100644 (file)
@@ -51,5 +51,6 @@
         timeout: 30
 
     builders:
+    - openrc-source-file-selector
     - shell:
         !include-raw: common/scripts/prepare_build_upload_image.sh
index 2a1e088d64b92c16ddb76be72dd060aa825d8834..7e4e2b9afb80cb08c5b2554b9db7024ac0e422cc 100644 (file)
@@ -7,6 +7,7 @@
     node: 'jenkins-master'
 
     parameters:
+    - openstack-cloud-selector
     - string:
         name: STACK_NAME
         default: ""
@@ -29,5 +30,6 @@
         timeout: 30
 
     builders:
+    - openrc-source-file-selector
     - shell:
         !include-raw: common/scripts/delete_heat_stack.sh
index a4c49846bef4213808445ddc0da983298309b1f9..8bb6b55e34257d04d6e28a30e509e4bd0722c2c2 100644 (file)
@@ -38,6 +38,7 @@
                 to: $CUSTOM_FLAVOR_NODE_COUNT
                 step: 1
               predefined-parameters: |
+                  OPENSTACK_ENVIRONMENT=${OPENSTACK_ENVIRONMENT}
                   HEAT_STACK_YAML=${CUSTOM_HEAT_STACK_YAML}
                   STACK_PREFIX=${STACK_PREFIX}
                   FLAVOR_NAME=${CUSTOM_FLAVOR_NAME}
@@ -59,6 +60,7 @@
                   to: $MOS_TEMPEST_NODE_COUNT
                   step: 1
               predefined-parameters: |
+                    OPENSTACK_ENVIRONMENT=${OPENSTACK_ENVIRONMENT}
                     HEAT_STACK_YAML=${HEAT_STACK_YAML}
                     STACK_PREFIX=${STACK_PREFIX}
                     FLAVOR_NAME=mos.tempest
@@ -79,6 +81,7 @@
                 to: $MOS_HUGE_NODE_COUNT
                 step: 1
               predefined-parameters: |
+                    OPENSTACK_ENVIRONMENT=${OPENSTACK_ENVIRONMENT}
                     HEAT_STACK_YAML=${HEAT_STACK_YAML}
                     STACK_PREFIX=${STACK_PREFIX}
                     FLAVOR_NAME=mos.fuel.huge
                 to: $MOS_BASE_NODE_COUNT
                 step: 1
               predefined-parameters: |
+                    OPENSTACK_ENVIRONMENT=${OPENSTACK_ENVIRONMENT}
                     HEAT_STACK_YAML=${HEAT_STACK_YAML}
                     STACK_PREFIX=${STACK_PREFIX}
                     FLAVOR_NAME=mos.fuel.base
index c2eb3f08da184b696999d6489cfff3bf970ed99f..052d8fc4b0086b6ef144d5ce519285f6d76fb7e5 100644 (file)
@@ -7,6 +7,7 @@
     node: 'jenkins-master'
 
     parameters:
+    - openstack-cloud-selector
     - choice:
         name: HEAT_STACK_YAML
         choices:
@@ -50,6 +51,7 @@
 
     builders:
     - gerrit-review-last-refspec
+    - openrc-source-file-selector
     - shell:
         !include-raw: common/scripts/deploy_heat_stack.sh
 
index c1f2a0e369978bf83aa8caed85d156daa21d5a4d..7ee19df8e8147a0de8c20fdaca5baec175f5909a 100644 (file)
@@ -7,11 +7,7 @@
     node: 'jenkins-master'
 
     parameters:
-    - bool:
-        name: ARE_YOU_SURE
-        default: false
-        description: |
-          Just stub for missclick protection
+    - openstack-cloud-selector
 
     wrappers:
     - timestamps
@@ -21,5 +17,6 @@
         timeout: 30
 
     builders:
+    - openrc-source-file-selector
     - shell:
         !include-raw: common/scripts/drop_create_failed.sh
index 819875ab309d84d21356c47a7feef5ff2880dabc..c23d092fc35f6126c10fcccd09db7008174e115c 100644 (file)
@@ -6,6 +6,7 @@
     concurrent: false
     node: 'jenkins-master'
     parameters:
+    - openstack-cloud-selector
     - string:
         name: BUILD_IMAGE_NAME
         description: "Name of image to build - used for glance"
@@ -34,6 +35,7 @@
     - trigger-builds:
         - project: "deploy-heat-stack"
           predefined-parameters: |
+            OPENSTACK_ENVIRONMENT=${OPENSTACK_ENVIRONMENT}
             HEAT_STACK_YAML=maintenance-ci/common/data/jenkins-slave.yml
             STACK_PREFIX=image-builder
             FLAVOR_NAME=dev.cmn
@@ -53,6 +55,7 @@
     - trigger-builds:
         - project: "delete-heat-stack"
           predefined-parameters: |
+            OPENSTACK_ENVIRONMENT=${OPENSTACK_ENVIRONMENT}
             STACK_PREFIX=image-builder
           block: true
 
index 7a5a0281ef14dc9a5dbe4badb52016b66efd9b22..75bc408a50af088a7da2f8edb56822e12f344f00 100644 (file)
@@ -6,6 +6,7 @@
     node: 'jenkins-master'
 
     parameters:
+    - openstack-cloud-selector
     - string:
         name: IMAGE_NAME
         description: "Name of image WITHOUT 'staging' - used for glance"
@@ -31,5 +32,6 @@
         timeout: 30
 
     builders:
+    - openrc-source-file-selector
     - shell:
         !include-raw: common/scripts/promote_staging_image.sh
diff --git a/maintenance-ci/common/macroses/cloud-selector-macro-set.yaml b/maintenance-ci/common/macroses/cloud-selector-macro-set.yaml
new file mode 100644 (file)
index 0000000..8b64d11
--- /dev/null
@@ -0,0 +1,46 @@
+- parameter:
+    name: openstack-cloud-selector
+    parameters:
+    - choice:
+        name: OPENSTACK_ENVIRONMENT
+        choices:
+            - US
+            - EU
+
+- wrapper:
+    name: openstack-creds
+    wrappers:
+    - credentials-binding:
+        - file:
+            credential-id: maintenance-ci-openrc-password-free
+            variable: OPENRC_FILE
+        - file:
+            credential-id: maintenance-team-openrc-eu-robot-no-password
+            variable: EU_OPENRC_FILE
+        - file:
+            credential-id: maintenance-team-openrc-us-robot-no-password
+            variable: US_OPENRC_FILE
+        - username-password-separated:
+            credential-id: maintenance-ci-robot-password
+            username: OS_USERNAME
+            password: OS_PASSWORD
+
+- builder:
+    name: openrc-source-file-selector
+    builders:
+    - conditional-step:
+        condition-kind: strings-match
+        condition-string1: $OPENSTACK_ENVIRONMENT
+        condition-string2: EU
+        condition-case-insensitive: true
+        steps:
+        - inject:
+            properties-file: ${EU_OPENRC_FILE}
+    - conditional-step:
+        condition-kind: strings-match
+        condition-string1: $OPENSTACK_ENVIRONMENT
+        condition-string2: US
+        condition-case-insensitive: true
+        steps:
+        - inject:
+            properties-file: ${US_OPENRC_FILE}
index c7f73241e7a7ef773f0c8c5f8fdb72d81aa5925a..e99b532b5f927e69f9ce44b1560d77024dd68bd5 100644 (file)
@@ -2,6 +2,7 @@
     name: mos-jenkins-swarm-params
 
     parameters:
+    - openstack-cloud-selector
     - string:
         name: HEAT_STACK_YAML
         description: "Stack yaml file"
diff --git a/maintenance-ci/common/macroses/openstack_creds.yaml b/maintenance-ci/common/macroses/openstack_creds.yaml
deleted file mode 100644 (file)
index 2991fa6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-- wrapper:
-    name: openstack-creds
-    wrappers:
-    - credentials-binding:
-        - file:
-            credential-id: maintenance-ci-openrc-password-free
-            variable: OPENRC_FILE
-        - username-password-separated:
-            credential-id: maintenance-ci-robot-password
-            username: OS_USERNAME
-            password: OS_PASSWORD
\ No newline at end of file
index 2386b73cda259f8dc91214e21e44547a8e56d850..fcf31cd59b0f55dba121ca3a682c046195c3f80d 100755 (executable)
@@ -14,7 +14,7 @@ fi
 function delete_stack() {
   if [[ -z "${VIRTUAL_ENV}" ]]; then
     source "${OPENSTACK_CLIENTS_VENV}"/bin/activate
-    source "${OPENRC_FILE?}"
+    echo "Using ${OS_AUTH_URL?} endpoint"
   fi
   set +e
   eval $(openstack stack output show $1 floating_ip -f shell)
@@ -25,7 +25,7 @@ function delete_stack() {
 }
 
 source "${OPENSTACK_CLIENTS_VENV}"/bin/activate
-  source "${OPENRC_FILE?}"
+  echo "Using ${OS_AUTH_URL?} endpoint"
 
   if [[ ! -z "${STACK_NAME}" ]] ; then
       delete_stack ${STACK_NAME}
index cb7594385a760f5d2fa010fc4e341f48292d58de..6ed97d9a49e0105981b063833ccdd6eefb8fa4d3 100755 (executable)
@@ -35,7 +35,7 @@ STACK_NAME="${STACK_PREFIX:-swarm_slave}-$(head -c 100 /dev/urandom | "${md5_cmd
 set +x
 source "${OPENSTACK_CLIENTS_VENV}"/bin/activate
 set -x
-  source "${OPENRC_FILE?}"
+  echo "Using ${OS_AUTH_URL?} endpoint"
   openstack stack create --wait -t ${HEAT_STACK_YAML} --parameter "${parameter_string}" ${STACK_NAME}
   openstack stack output show "${STACK_NAME}" --all
   cat >stack_data.sh <<EOF
diff --git a/maintenance-ci/common/scripts/deploy_jenkins_swarm.sh b/maintenance-ci/common/scripts/deploy_jenkins_swarm.sh
deleted file mode 100755 (executable)
index 3967cc8..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-if [ ! -z ${GERRIT_REVIEW} ] ; then
-refspec=$(curl "https://review.fuel-infra.org/changes/?q=${GERRIT_REVIEW}&o=CURRENT_REVISION" | grep '"ref":' | awk -F ": " '{print $2}' | tr -d '"')
-git fetch https://review.fuel-infra.org/tools/sustaining "${refspec}" && git cherry-pick -n FETCH_HEAD
-fi
-
-OPENSTACK_CLIENTS_VENV="${OPENSTACK_CLIENTS_VENV:-/home/jenkins/venv-openstack-clients}"
-
-if [[ ! -d "${OPENSTACK_CLIENTS_VENV}" ]] ; then
-    virtualenv "${OPENSTACK_CLIENTS_VENV}"
-    source "${OPENSTACK_CLIENTS_VENV}"/bin/activate
-    pip install openstackclient
-    deactivate
-fi
-
-function deploy_stacks() {
-    FLAVOR_NAME=$1
-    IMAGE_NAME=$2
-    JENKINS_LABELS=$3
-    parameter_string=""
-    if [[ ! -z "${FLAVOR_NAME}" ]] ; then
-      parameter_string="$parameter_string --parameter \"flavor=${FLAVOR_NAME}\""
-    fi
-    if [[ ! -z "${IMAGE_NAME}" ]] ; then
-      parameter_string="$parameter_string --parameter \"image=${IMAGE_NAME}\""
-    fi
-    if [[ ! -z "${JENKINS_LABELS}" ]] ; then
-      parameter_string="$parameter_string --parameter \"jenkins_labels=${JENKINS_LABELS}\""
-    fi
-
-    # MAC OS compatibility, for manual usage
-    if command -v md5sum ; then
-      md5_cmd="md5sum"
-    else
-      md5_cmd="md5"
-    fi
-
-    STACK_NAME="${STACK_PREFIX:-swarm_slave}_$(date +%s | "${md5_cmd}" | head -c 4)"
-
-    set +x
-    source "${OPENSTACK_CLIENTS_VENV}"/bin/activate
-    set -x
-      source "${OPENRC_FILE?}"
-      echo "openstack stack create --wait -t ${HEAT_STACK_YAML} ${parameter_string} ${STACK_NAME}" | bash -
-      openstack stack output show "${STACK_NAME}" --all
-    deactivate
-}
-
-for (( node = 0; node < ${CUSTOM_FLAVOR_NODE_COUNT}; ++node )); do
-    deploy_stacks "${CUSTOM_FLAVOR_NAME}" "${IMAGE_NAME}" "${CUSTOM_FLAVOR_JENKINS_LABELS}"
-done
-for (( node = 0; node < ${MOS_TEMPEST_NODE_COUNT}; ++node )); do
-    deploy_stacks mos.tempest "${IMAGE_NAME}" "${JENKINS_LABELS}"
-done
-for (( node = 0; node < ${MOS_HUGE_NODE_COUNT}; ++node )); do
-    deploy_stacks mos.fuel.huge "${IMAGE_NAME}" "${JENKINS_LABELS}"
-done
-for (( node = 0; node < ${MOS_BASE_NODE_COUNT}; ++node )); do
-    deploy_stacks mos.fuel.base "${IMAGE_NAME}" "${JENKINS_LABELS}"
-done
index 23e6c7a6327ad6cf1645e985d23904031b1cdcea..d8a68bd5a95934aad90159f759b6ebd865be1678 100755 (executable)
@@ -12,7 +12,7 @@ if [[ ! -d "${OPENSTACK_CLIENTS_VENV}" ]] ; then
 fi
 
 source "${OPENSTACK_CLIENTS_VENV}"/bin/activate
-  source "${OPENRC_FILE?}"
+  echo "Using ${OS_AUTH_URL?} endpoint"
 
   for stack in $(openstack stack list --property "stack_status=CREATE_FAILED" -c 'Stack Name' -f value) ; do
       openstack stack delete -y "${stack}"
index 469c4ff3e24e07b9fb133e1ccd343166462ab61c..9187bd84bd5477dcc1f35707a8dc19e2bd615049 100755 (executable)
@@ -75,7 +75,6 @@ else
 fi
 
 set +x
-source "${OPENRC_FILE?}"
 OPENSTACK_CLIENTS_VENV="${OPENSTACK_CLIENTS_VENV:-/home/jenkins/venv-openstack-clients}"
 if [[ ! -d "${OPENSTACK_CLIENTS_VENV}" ]] ; then
   pip install virtualenv
@@ -87,6 +86,7 @@ fi
 source "${OPENSTACK_CLIENTS_VENV}"/bin/activate
 
 set -x
+echo "Using ${OS_AUTH_URL?} endpoint"
 openstack image delete "${GLANCE_IMAGE_NAME}" || true
 openstack image create --min-disk 6 --disk-format qcow2 --container-format bare --file xenial-server-cloudimg-amd64-disk1.img "${GLANCE_IMAGE_NAME}"
 deactivate
\ No newline at end of file
index c95495c338f8c594e59b1d02f7cee26fd6933f27..e1accd63139726b7d963ca23be4e0b6e7be543b4 100755 (executable)
@@ -8,7 +8,8 @@ STAGING_IMAGE_NAME="${IMAGE_NAME?}-staging"
 GLANCE_IMAGE_NAME="${IMAGE_NAME?}"
 
 set +x
-source "${OPENRC_FILE?}"
+echo "Using ${OS_AUTH_URL?} endpoint"
+
 OPENSTACK_CLIENTS_VENV="${OPENSTACK_CLIENTS_VENV:-/home/jenkins/venv-openstack-clients}"
 if [[ ! -d "${OPENSTACK_CLIENTS_VENV}" ]] ; then
   pip install virtualenv