From 8219f17503e16620b4881faefc78023c696ed2e5 Mon Sep 17 00:00:00 2001 From: Tzu-Mainn Chen Date: Wed, 21 Jun 2017 18:01:48 -0400 Subject: Add node_removal_policies variable to allow for scaling down --- playbooks/provisioning/openstack/README.md | 3 +++ playbooks/provisioning/openstack/provision-openstack.yml | 1 + playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml | 2 ++ roles/openstack-stack/defaults/main.yml | 1 + roles/openstack-stack/templates/heat_stack.yaml.j2 | 2 ++ 5 files changed, 9 insertions(+) diff --git a/playbooks/provisioning/openstack/README.md b/playbooks/provisioning/openstack/README.md index 423d57113..4686dfc08 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_node_removal_policies` allows you to specify which App nodes to +remove. + 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 c7ad782c9..b983f6652 100644 --- a/playbooks/provisioning/openstack/provision-openstack.yml +++ b/playbooks/provisioning/openstack/provision-openstack.yml @@ -23,6 +23,7 @@ num_nodes: "{{ openstack_num_nodes }}" num_infra: "{{ openstack_num_infra }}" num_dns: "{{ openstack_num_dns | default(1) }}" + node_removal_policies: "{{ openstack_node_removal_policies | 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 047923253..0e128265c 100644 --- a/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml +++ b/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml @@ -12,6 +12,8 @@ openstack_num_masters: 1 openstack_num_infra: 1 openstack_num_nodes: 2 +openstack_node_removal_policies: [] + 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..4f859585f 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 +node_removal_policies: [] 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 c750865a5..3916eec02 100644 --- a/roles/openstack-stack/templates/heat_stack.yaml.j2 +++ b/roles/openstack-stack/templates/heat_stack.yaml.j2 @@ -620,6 +620,8 @@ resources: type: OS::Heat::ResourceGroup properties: count: {{ num_nodes }} + removal_policies: + - resource_list: {{ node_removal_policies }} resource_def: type: server.yaml properties: -- cgit v1.2.3 From 2fa7c112561eca54e0980902bda6920506c96f92 Mon Sep 17 00:00:00 2001 From: Tzu-Mainn Chen Date: Fri, 23 Jun 2017 15:47:17 -0400 Subject: rename node_removal_policies, add some comments and defaults --- playbooks/provisioning/openstack/README.md | 4 ++-- playbooks/provisioning/openstack/provision-openstack.yml | 2 +- playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml | 3 ++- roles/openstack-stack/defaults/main.yml | 2 +- roles/openstack-stack/templates/heat_stack.yaml.j2 | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/playbooks/provisioning/openstack/README.md b/playbooks/provisioning/openstack/README.md index 4686dfc08..37868b2ea 100644 --- a/playbooks/provisioning/openstack/README.md +++ b/playbooks/provisioning/openstack/README.md @@ -67,8 +67,8 @@ 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_node_removal_policies` allows you to specify which App nodes to -remove. +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 diff --git a/playbooks/provisioning/openstack/provision-openstack.yml b/playbooks/provisioning/openstack/provision-openstack.yml index b983f6652..628044de6 100644 --- a/playbooks/provisioning/openstack/provision-openstack.yml +++ b/playbooks/provisioning/openstack/provision-openstack.yml @@ -23,7 +23,7 @@ num_nodes: "{{ openstack_num_nodes }}" num_infra: "{{ openstack_num_infra }}" num_dns: "{{ openstack_num_dns | default(1) }}" - node_removal_policies: "{{ openstack_node_removal_policies | to_yaml }}" + 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 0e128265c..ff9aaab63 100644 --- a/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml +++ b/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml @@ -12,7 +12,8 @@ openstack_num_masters: 1 openstack_num_infra: 1 openstack_num_nodes: 2 -openstack_node_removal_policies: [] +# # Numerical index of nodes to remove +# openstack_nodes_to_remove: [] docker_volume_size: "15" diff --git a/roles/openstack-stack/defaults/main.yml b/roles/openstack-stack/defaults/main.yml index 4f859585f..4831d6bc4 100644 --- a/roles/openstack-stack/defaults/main.yml +++ b/roles/openstack-stack/defaults/main.yml @@ -9,5 +9,5 @@ num_masters: 1 num_nodes: 1 num_dns: 1 num_infra: 1 -node_removal_policies: [] +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 3916eec02..32ea5ec1d 100644 --- a/roles/openstack-stack/templates/heat_stack.yaml.j2 +++ b/roles/openstack-stack/templates/heat_stack.yaml.j2 @@ -621,7 +621,7 @@ resources: properties: count: {{ num_nodes }} removal_policies: - - resource_list: {{ node_removal_policies }} + - resource_list: {{ nodes_to_remove }} resource_def: type: server.yaml properties: -- cgit v1.2.3