Add specific pass-through config for each role
authorNicholas Randon <nicholas.randon@hp.com>
Mon, 21 Jul 2014 15:43:38 +0000 (16:43 +0100)
committerAlexis Lee <alexisl@hp.com>
Mon, 1 Sep 2014 14:03:36 +0000 (15:03 +0100)
Supplement ExtraConfig with specific versions - ControllerExtraConfig and
NovaComputeExtraConfig. This allows the user to specify different
configurations for each role.

Change-Id: Ieaee80e414130504a5e40e878a5a4ca1c196ca2b

nova-compute-config.yaml
nova-compute-instance.yaml
overcloud-source.yaml

index cb428ea..b74f5f1 100644 (file)
@@ -59,3 +59,8 @@ resources:
     properties:
       group: os-apply-config
       config: {get_input: passthrough_config}
+  NovaComputePassthroughSpecific:
+    type: OS::Heat::StructuredConfig
+    properties:
+      group: os-apply-config
+      config: {get_input: passthrough_config_specific}
index 8611529..1c2224e 100644 (file)
@@ -7,6 +7,7 @@ parameters:
     type: string
     hidden: true
   ExtraConfig:
+    default: {}
     description: |
       Additional configuration to inject into the cluster. The JSON should have
       the following structure:
@@ -43,6 +44,12 @@ parameters:
           }
         }
     type: json
+  NovaComputeExtraConfig:
+    default: {}
+    description: |
+      NovaCompute specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
   KeyName:
     description: Name of an existing EC2 KeyPair to enable SSH access to the instances
     type: string
@@ -243,3 +250,12 @@ resources:
       signal_transport: NO_SIGNAL
       input_values:
         passthrough_config: {get_param: ExtraConfig}
+  NovaCompute0PassthroughSpecific:
+    depends_on: [NovaCompute0Passthrough]
+    type: OS::Heat::StructuredDeployment
+    properties:
+      config: {get_resource: NovaComputePassthroughSpecific}
+      server: {get_resource: NovaCompute0}
+      signal_transport: NO_SIGNAL
+      input_values:
+        passthrough_config_specific: {get_param: NovaComputeExtraConfig}
index 93a6834..20e827a 100644 (file)
@@ -63,6 +63,18 @@ parameters:
           }
         }
     type: json
+  controllerExtraConfig:
+    default: {}
+    description: |
+      Controller specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
+  NovaComputeExtraConfig:
+    default: {}
+    description: |
+      NovaCompute specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
   OvercloudControlFlavor:
     default: baremetal
     description: Flavor for control nodes to request when deploying.
@@ -353,16 +365,22 @@ resources:
     SubKey: resources.NovaCompute0AllNodesDeployment
     parameters:
         AllNodesConfig: {get_resource: allNodesConfig}
+  NovaCompute0:
+    type: FileInclude
+    Path: nova-compute-instance.yaml
+    SubKey: resources.NovaCompute0
   NovaCompute0Passthrough:
     type: FileInclude
     Path: nova-compute-instance.yaml
     SubKey: resources.NovaCompute0Passthrough
     parameters:
         passthrough_config: {get_param: ExtraConfig}
-  NovaCompute0:
+  NovaCompute0PassthroughSpecific:
     type: FileInclude
     Path: nova-compute-instance.yaml
-    SubKey: resources.NovaCompute0
+    SubKey: resources.NovaCompute0PassthroughSpecific
+    parameters:
+        passthrough_config_specific: {get_param: NovaComputeExtraConfig}
   controllerConfig:
     type: OS::Heat::StructuredConfig
     properties:
@@ -668,6 +686,11 @@ resources:
     properties:
       group: os-apply-config
       config: {get_input: passthrough_config}
+  controllerPassthroughSpecific:
+    type: OS::Heat::StructuredConfig
+    properties:
+      group: os-apply-config
+      config: {get_input: passthrough_config_specific}
   controller0:
     type: OS::Nova::Server
     properties:
@@ -683,7 +706,7 @@ resources:
         - network: ctlplane
       user_data_format: SOFTWARE_CONFIG
   controller0AllNodesDeployment:
-    depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough]
+    depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0PassthroughSpecific]
     type: OS::Heat::StructuredDeployment
     properties:
       config: {get_resource: allNodesConfig}
@@ -800,6 +823,15 @@ resources:
       signal_transport: NO_SIGNAL
       input_values:
         passthrough_config: {get_param: ExtraConfig}
+  controller0PassthroughSpecific:
+    depends_on: [controller0Passthrough]
+    type: OS::Heat::StructuredDeployment
+    properties:
+      config: {get_resource: controllerPassthroughSpecific}
+      server: {get_resource: controller0}
+      signal_transport: NO_SIGNAL
+      input_values:
+        passthrough_config_specific: {get_param: controllerExtraConfig}
 outputs:
   KeystoneURL:
     description: URL for the Overcloud Keystone service