summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Sedovic <tomas@sedovic.cz>2017-06-26 16:35:44 +0200
committerGitHub <noreply@github.com>2017-06-26 16:35:44 +0200
commit6cf54ba9e0d3b499a39f334d689a0f62e2e6dad4 (patch)
tree57147019c94e76d2100fe58a8ab793fe0e915e30
parentfd219cab05c810dea2422d14bfebede4419f515d (diff)
parent2fa7c112561eca54e0980902bda6920506c96f92 (diff)
downloadopenshift-6cf54ba9e0d3b499a39f334d689a0f62e2e6dad4.tar.gz
openshift-6cf54ba9e0d3b499a39f334d689a0f62e2e6dad4.tar.bz2
openshift-6cf54ba9e0d3b499a39f334d689a0f62e2e6dad4.tar.xz
openshift-6cf54ba9e0d3b499a39f334d689a0f62e2e6dad4.zip
Merge pull request #491 from tzumainn/openstack-heat-stack-update
Add node_removal_policies variable to openstack provisioning to allow for scaling down
-rw-r--r--playbooks/provisioning/openstack/README.md3
-rw-r--r--playbooks/provisioning/openstack/provision-openstack.yml1
-rw-r--r--playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml3
-rw-r--r--roles/openstack-stack/defaults/main.yml1
-rw-r--r--roles/openstack-stack/templates/heat_stack.yaml.j22
5 files changed, 10 insertions, 0 deletions
diff --git a/playbooks/provisioning/openstack/README.md b/playbooks/provisioning/openstack/README.md
index df00e5507..a542e1493 100644
--- a/playbooks/provisioning/openstack/README.md
+++ b/playbooks/provisioning/openstack/README.md
@@ -67,6 +67,9 @@ The `openstack_num_masters`, `openstack_num_infra` and
`openstack_num_nodes` values specify the number of Master, Infra and
App nodes to create.
+The `openstack_nodes_to_remove` allows you to specify the numerical indexes
+of App nodes that should be removed; for example, ['0', '2'],
+
The `openstack_flat_secgrp`, controls Neutron security groups creation for Heat
stacks. Set it to true, if you experience issues with sec group rules
quotas. It trades security for number of rules, by sharing the same set
diff --git a/playbooks/provisioning/openstack/provision-openstack.yml b/playbooks/provisioning/openstack/provision-openstack.yml
index a2cf7b110..feea15d5d 100644
--- a/playbooks/provisioning/openstack/provision-openstack.yml
+++ b/playbooks/provisioning/openstack/provision-openstack.yml
@@ -24,6 +24,7 @@
num_nodes: "{{ openstack_num_nodes }}"
num_infra: "{{ openstack_num_infra }}"
num_dns: "{{ openstack_num_dns | default(1) }}"
+ nodes_to_remove: "{{ openstack_nodes_to_remove | default([]) | to_yaml }}"
master_volume_size: "{{ docker_volume_size }}"
app_volume_size: "{{ docker_volume_size }}"
infra_volume_size: "{{ docker_volume_size }}"
diff --git a/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml b/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml
index 4ed329dd3..7c9033828 100644
--- a/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml
+++ b/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml
@@ -12,6 +12,9 @@ openstack_num_masters: 1
openstack_num_infra: 1
openstack_num_nodes: 2
+# # Numerical index of nodes to remove
+# openstack_nodes_to_remove: []
+
docker_volume_size: "15"
openstack_subnet_prefix: "192.168.99"
diff --git a/roles/openstack-stack/defaults/main.yml b/roles/openstack-stack/defaults/main.yml
index 2a4ef3a45..4831d6bc4 100644
--- a/roles/openstack-stack/defaults/main.yml
+++ b/roles/openstack-stack/defaults/main.yml
@@ -9,4 +9,5 @@ num_masters: 1
num_nodes: 1
num_dns: 1
num_infra: 1
+nodes_to_remove: []
etcd_volume_size: 2
diff --git a/roles/openstack-stack/templates/heat_stack.yaml.j2 b/roles/openstack-stack/templates/heat_stack.yaml.j2
index cba03e2ca..7fa7133ea 100644
--- a/roles/openstack-stack/templates/heat_stack.yaml.j2
+++ b/roles/openstack-stack/templates/heat_stack.yaml.j2
@@ -602,6 +602,8 @@ resources:
type: OS::Heat::ResourceGroup
properties:
count: {{ num_nodes }}
+ removal_policies:
+ - resource_list: {{ nodes_to_remove }}
resource_def:
type: server.yaml
properties: