Переглянути джерело

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 8 роки тому
батько
коміт
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: