Browse Source

Merge pull request #491 from tzumainn/openstack-heat-stack-update

Add node_removal_policies variable to openstack provisioning to allow for scaling down
Tomas Sedovic 7 years ago
parent
commit
6cf54ba9e0

+ 3 - 0
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

+ 1 - 0
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 }}"

+ 3 - 0
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"

+ 1 - 0
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

+ 2 - 0
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: