From 8e0331271dd8d1dd6cb8b6c5b67bee7497b6a673 Mon Sep 17 00:00:00 2001 From: Nicholas Randon Date: Mon, 21 Jul 2014 16:43:38 +0100 Subject: [PATCH] Add specific pass-through config for each role 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 | 5 +++++ nova-compute-instance.yaml | 16 ++++++++++++++++ overcloud-source.yaml | 38 +++++++++++++++++++++++++++++++++++--- 3 files changed, 56 insertions(+), 3 deletions(-) diff --git a/nova-compute-config.yaml b/nova-compute-config.yaml index cb428ea6..b74f5f10 100644 --- a/nova-compute-config.yaml +++ b/nova-compute-config.yaml @@ -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} diff --git a/nova-compute-instance.yaml b/nova-compute-instance.yaml index 86115293..1c2224ec 100644 --- a/nova-compute-instance.yaml +++ b/nova-compute-instance.yaml @@ -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} diff --git a/overcloud-source.yaml b/overcloud-source.yaml index 93a68344..20e827a5 100644 --- a/overcloud-source.yaml +++ b/overcloud-source.yaml @@ -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 -- 2.16.6