]> review.fuel-infra Code Review - tools/sustaining.git/commitdiff
Use anti-affinity group for mos slaves 24/41424/9
authorVladimir Khlyunev <vkhlyunev@mirantis.com>
Mon, 12 Aug 2019 07:39:41 +0000 (11:39 +0400)
committerVladimir Khlyunev <vkhlyunev@mirantis.com>
Tue, 13 Aug 2019 07:22:28 +0000 (11:22 +0400)
Change-Id: I1448078ac1c2303ea88971ce009ef20963030eb1

maintenance-ci/common/jobs/deploy-jenkins-swarm.yaml
maintenance-ci/common/jobs/deploy-stack.yaml
maintenance-ci/common/scripts/deploy_heat_stack.sh
maintenance-ci/mos/jobs/9.x.swarm.runner.yaml

index 09435ff598da94b11c40fc52e80a9f00d91030b4..e5eb747faebd2c7b154f49380ac5b5f4cb752362 100644 (file)
@@ -41,6 +41,7 @@
                     OPENSTACK_ENVIRONMENT=${OPENSTACK_ENVIRONMENT}
                     HEAT_STACK_TEMPLATE_NAME=${HEAT_STACK_TEMPLATE_NAME}
                     STACK_PREFIX=${STACK_PREFIX}
+                    USE_ANTIAFFINITY_GROUP=true
                     FLAVOR_NAME=mos.fuel.huge.hdd_ext
                     JENKINS_LABELS=mos.fuel.huge mos.fuel.base.hdd_ext mos.fuel.base
                     IMAGE_NAME=${IMAGE_NAME}
@@ -63,6 +64,7 @@
                     OPENSTACK_ENVIRONMENT=${OPENSTACK_ENVIRONMENT}
                     HEAT_STACK_TEMPLATE_NAME=${HEAT_STACK_TEMPLATE_NAME}
                     STACK_PREFIX=${STACK_PREFIX}
+                    USE_ANTIAFFINITY_GROUP=true
                     FLAVOR_NAME=mos.fuel.base.hdd_ext
                     JENKINS_LABELS=mos.fuel.base
                     IMAGE_NAME=${IMAGE_NAME}
index ebef35e653a1f62ec85c80d28bfa0c7f7e52a467..27e15a32e02d04338a6275cf984a4471df654990 100644 (file)
         name: CUSTOM_HEAT_STACK_YAML
         description: "Overwrites HEAT_STACK_TEMPLATE_NAME with relative path to template file. Leave empty by default"
         default: ""
+    - bool:
+        name: USE_ANTIAFFINITY_GROUP
+        description: "Add nova server group with anti-affinity policy to scheduler hints"
+        default: false
     - string:
         name: STACK_PREFIX
         description: "Stack prefix"
-        default: "swarm-slave"
+        default: "mos-slave"
     - string:
         name: FLAVOR_NAME
         default: "dev.share"
index 8bb44d46c15bcb106d7fea5e6a065239f8e78436..7168735a83cbd38130e521215ecc22bed087c894 100755 (executable)
@@ -55,10 +55,28 @@ if [[ ! -f "${TEMPLATE_FILE}" ]] ; then
   exit 1
 fi
 
+export TEMPLATE_FILE
 set +x
 source "${OPENSTACK_CLIENTS_VENV}"/bin/activate
-set -x
+ set -x
+
+  if [[ ${USE_ANTIAFFINITY_GROUP} ]] ; then
+    export GROUP_UUID="$(openstack server group show maintenance-ci-slave-group -c id -f value)"
+    if [[ -z "${GROUP_UUID}" ]] ; then
+      export GROUP_UUID="$(openstack server group create --policy anti-affinity maintenance-ci-slave-group -c id -f value)"
+    fi
+    python -c "import yaml, os
+with open(os.environ.get('TEMPLATE_FILE'), 'r') as f:
+    data = yaml.load(f)
+if data['resources']['node']['properties'].get('scheduler_hints') is None:
+    data['resources']['node']['properties']['scheduler_hints'] = {}
+data['resources']['node']['properties']['scheduler_hints']['group'] = os.environ.get('GROUP_UUID')
+with open(os.environ.get('TEMPLATE_FILE'), 'w') as f:
+    yaml.dump(data, f, default_flow_style=False)"
+  fi
+
   echo "Using ${OS_AUTH_URL?} endpoint"
+
   openstack stack create --wait -t ${TEMPLATE_FILE} --parameter "${parameter_string}" ${STACK_NAME}
   openstack stack output show "${STACK_NAME}" --all
   cat >stack_data.sh <<EOF
index ff71ad7e1ef1f26a3e97764aab332b3c0e64fbab..0eb2fea6e07073edb83f435d459c1d13bedb7af7 100644 (file)
@@ -21,7 +21,6 @@
         default: true
         description: "Reschedule job after failure?"
     - 9x-systest-params
-    - mos-jenkins-swarm-params
 
     wrappers:
     - timeout: