Add RemovalPolicies param for resource groups
authorJan Provaznik <jprovazn@redhat.com>
Wed, 8 Jul 2015 13:51:44 +0000 (15:51 +0200)
committerJan Provaznik <jprovazn@redhat.com>
Wed, 8 Jul 2015 14:02:13 +0000 (16:02 +0200)
This allows to specify particular nodes when scaling down
number of nodes in a resource group.

Change-Id: Idc3682ed430f351d533b990b44e8038866434e42

overcloud-without-mergepy.yaml

index 14e2ac2..9d5b32d 100644 (file)
@@ -621,6 +621,39 @@ parameters:
       Setting to a previously unused value during stack-update will trigger
       package update on all nodes
 
+  # If you want to remove a specific node from a resource group, you can pass
+  # the node name or id as a <Group>RemovalPolicies parameter, for example:
+  # ComputeRemovalPolicies: [{'resource_list': ['0']}]
+  ControllerRemovalPolicies:
+    default: []
+    type: json
+    description: >
+      List of resources to be removed from ControllerResourceGroup when
+      doing an update which requires removal of specific resources.
+  ComputeRemovalPolicies:
+    default: []
+    type: json
+    description: >
+      List of resources to be removed from ComputeResourceGroup when
+      doing an update which requires removal of specific resources.
+  BlockStorageRemovalPolicies:
+    default: []
+    type: json
+    description: >
+      List of resources to be removed from BlockStorageResourceGroup when
+      doing an update which requires removal of specific resources.
+  ObjectStorageRemovalPolicies:
+    default: []
+    type: json
+    description: >
+      List of resources to be removed from ObjectStorageResourceGroup when
+      doing an update which requires removal of specific resources.
+  CephStorageRemovalPolicies:
+    default: []
+    type: json
+    description: >
+      List of resources to be removed from CephStorageResourceGroup when
+      doing an update which requires removal of specific resources.
 
 
 resources:
@@ -643,6 +676,7 @@ resources:
     depends_on: Networks
     properties:
       count: {get_param: ControllerCount}
+      removal_policies: {get_param: ControllerRemovalPolicies}
       resource_def:
         type: OS::TripleO::Controller
         properties:
@@ -747,6 +781,7 @@ resources:
     depends_on: Networks
     properties:
       count: {get_param: ComputeCount}
+      removal_policies: {get_param: ComputeRemovalPolicies}
       resource_def:
         type: OS::TripleO::Compute
         properties:
@@ -810,6 +845,7 @@ resources:
     depends_on: Networks
     properties:
       count: {get_param: BlockStorageCount}
+      removal_policies: {get_param: BlockStorageRemovalPolicies}
       resource_def:
         type: OS::TripleO::BlockStorage
         properties:
@@ -845,6 +881,7 @@ resources:
     depends_on: Networks
     properties:
       count: {get_param: ObjectStorageCount}
+      removal_policies: {get_param: ObjectStorageRemovalPolicies}
       resource_def:
         type: OS::TripleO::ObjectStorage
         properties:
@@ -870,6 +907,7 @@ resources:
     depends_on: Networks
     properties:
       count: {get_param: CephStorageCount}
+      removal_policies: {get_param: CephStorageRemovalPolicies}
       resource_def:
         type: OS::TripleO::CephStorage
         properties: