Wire in hieradata overrides via ExtraConfig for BlockStorage
authorSteven Hardy <shardy@redhat.com>
Thu, 16 Jul 2015 16:40:34 +0000 (17:40 +0100)
committerSteven Hardy <shardy@redhat.com>
Thu, 16 Jul 2015 16:55:48 +0000 (17:55 +0100)
Adds support for global (ExtraConfig) and role-specific
(BlockStorageExtraConfig) hiera overrides, similar to those added
for the Controller and NovaCompute roles.

Change-Id: Iaf9665b53407e6a657f56d6516469f2c88bafbdd

cinder-storage.yaml
overcloud-without-mergepy.yaml
puppet/cinder-storage-puppet.yaml

index be088d6..f65d928 100644 (file)
@@ -62,6 +62,11 @@ parameters:
           }
         }
     type: json
+  BlockStorageExtraConfig:
+    default: {}
+    description: |
+      Role specific additional configuration to inject into the cluster.
+    type: json
   Flavor:
     description: Flavor for block storage nodes to request when deploying.
     type: string
index d4dd5a1..f341672 100644 (file)
@@ -562,6 +562,12 @@ parameters:
     type: string
     constraints:
       - custom_constraint: nova.flavor
+  BlockStorageExtraConfig:
+    default: {}
+    description: |
+      BlockStorage specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
 
 # Object storage specific parameters
   ObjectStorageCount:
@@ -881,6 +887,8 @@ resources:
                 '%stackname%': {get_param: 'OS::stack_name'}
           ServiceNetMap: {get_param: ServiceNetMap}
           MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
+          ExtraConfig: {get_param: ExtraConfig}
+          BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
 
   ObjectStorage:
     type: OS::Heat::ResourceGroup
index 94a0a5c..25f6ef4 100644 (file)
@@ -31,40 +31,13 @@ parameters:
   ExtraConfig:
     default: {}
     description: |
-      Additional configuration to inject into the cluster. The JSON should have
-      the following structure:
-        {"FILEKEY":
-          {"config":
-            [{"section": "SECTIONNAME",
-              "values":
-                [{"option": "OPTIONNAME",
-                  "value": "VALUENAME"
-                 }
-                ]
-             }
-            ]
-          }
-        }
-      For instance:
-        {"nova":
-          {"config":
-            [{"section": "default",
-              "values":
-                [{"option": "force_config_drive",
-                  "value": "always"
-                 }
-                ]
-             },
-             {"section": "cells",
-              "values":
-                [{"option": "driver",
-                  "value": "nova.cells.rpc_driver.CellsRPCDriver"
-                 }
-                ]
-             }
-            ]
-          }
-        }
+      Additional hiera configuration to inject into the cluster. Note
+      that BlockStorageExtraConfig takes precedence over ExtraConfig.
+    type: json
+  BlockStorageExtraConfig:
+    default: {}
+    description: |
+      Role specific additional hiera configuration to inject into the cluster.
     type: json
   Flavor:
     description: Flavor for block storage nodes to request when deploying.
@@ -235,6 +208,8 @@ resources:
         hiera:
           hierarchy:
             - heat_config_%{::deploy_config_name}
+            - volume_extraconfig
+            - extraconfig
             - volume
             - all_nodes # provided by allNodesConfig
             - '"%{::osfamily}"'
@@ -242,6 +217,10 @@ resources:
           datafiles:
             common:
               raw_data: {get_file: hieradata/common.yaml}
+            volume_extraconfig:
+              mapped_data: {get_param: BlockStorageExtraConfig}
+            extraconfig:
+              mapped_data: {get_param: ExtraConfig}
             volume:
               raw_data: {get_file: hieradata/volume.yaml}
               mapped_data: