From: Vladimir Khlyunev Date: Mon, 12 Aug 2019 07:39:41 +0000 (+0400) Subject: Use anti-affinity group for mos slaves X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=f3510b35c5e39296e7f6ba816b8cbd9e6d7c81a8;p=tools%2Fsustaining.git Use anti-affinity group for mos slaves Change-Id: I1448078ac1c2303ea88971ce009ef20963030eb1 --- diff --git a/maintenance-ci/common/jobs/deploy-jenkins-swarm.yaml b/maintenance-ci/common/jobs/deploy-jenkins-swarm.yaml index 09435ff..e5eb747 100644 --- a/maintenance-ci/common/jobs/deploy-jenkins-swarm.yaml +++ b/maintenance-ci/common/jobs/deploy-jenkins-swarm.yaml @@ -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} diff --git a/maintenance-ci/common/jobs/deploy-stack.yaml b/maintenance-ci/common/jobs/deploy-stack.yaml index ebef35e..27e15a3 100644 --- a/maintenance-ci/common/jobs/deploy-stack.yaml +++ b/maintenance-ci/common/jobs/deploy-stack.yaml @@ -18,10 +18,14 @@ 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" diff --git a/maintenance-ci/common/scripts/deploy_heat_stack.sh b/maintenance-ci/common/scripts/deploy_heat_stack.sh index 8bb44d4..7168735 100755 --- a/maintenance-ci/common/scripts/deploy_heat_stack.sh +++ b/maintenance-ci/common/scripts/deploy_heat_stack.sh @@ -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 <