Browse Source

Add node_removal_policies variable to allow for scaling down

Tzu-Mainn Chen 8 years ago
parent
commit
8219f17503

+ 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
 `openstack_num_nodes` values specify the number of Master, Infra and
 App nodes to create.
 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
 The `openstack_flat_secgrp`, controls Neutron security groups creation for Heat
 stacks. Set it to true, if you experience issues with sec group rules
 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
 quotas. It trades security for number of rules, by sharing the same set

+ 1 - 0
playbooks/provisioning/openstack/provision-openstack.yml

@@ -23,6 +23,7 @@
     num_nodes: "{{ openstack_num_nodes }}"
     num_nodes: "{{ openstack_num_nodes }}"
     num_infra: "{{ openstack_num_infra }}"
     num_infra: "{{ openstack_num_infra }}"
     num_dns: "{{ openstack_num_dns | default(1) }}"
     num_dns: "{{ openstack_num_dns | default(1) }}"
+    node_removal_policies: "{{ openstack_node_removal_policies | to_yaml }}"
     master_volume_size: "{{ docker_volume_size }}"
     master_volume_size: "{{ docker_volume_size }}"
     app_volume_size: "{{ docker_volume_size }}"
     app_volume_size: "{{ docker_volume_size }}"
     infra_volume_size: "{{ docker_volume_size }}"
     infra_volume_size: "{{ docker_volume_size }}"

+ 2 - 0
playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml

@@ -12,6 +12,8 @@ openstack_num_masters: 1
 openstack_num_infra: 1
 openstack_num_infra: 1
 openstack_num_nodes: 2
 openstack_num_nodes: 2
 
 
+openstack_node_removal_policies: []
+
 docker_volume_size: "15"
 docker_volume_size: "15"
 
 
 openstack_subnet_prefix: "192.168.99"
 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_nodes: 1
 num_dns: 1
 num_dns: 1
 num_infra: 1
 num_infra: 1
+node_removal_policies: []
 etcd_volume_size: 2
 etcd_volume_size: 2

+ 2 - 0
roles/openstack-stack/templates/heat_stack.yaml.j2

@@ -620,6 +620,8 @@ resources:
     type: OS::Heat::ResourceGroup
     type: OS::Heat::ResourceGroup
     properties:
     properties:
       count: {{ num_nodes }}
       count: {{ num_nodes }}
+      removal_policies:
+      - resource_list: {{ node_removal_policies }}
       resource_def:
       resource_def:
         type: server.yaml
         type: server.yaml
         properties:
         properties: