aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2015-07-15 11:04:13 -0400
committerSteven Hardy <shardy@redhat.com>2015-07-15 16:33:57 +0100
commit71e9426f195cf3c17fc11adf17f14d41caa7cf30 (patch)
treeb7637c312bb16215ffa4894def70b50382936c5c
parent1ce0f9db531a40e0c3915906a24c002d8ed3eae6 (diff)
Enable hieradata ExtraConfig overrides for Controller
Wires in the ControllerExtraConfig and ExtraConfig parameters so that they may be used to specify overrides of the default hieradata. Note if this is used to override values specified via parameters rather than hard-coded values in puppet/hieradata caution should be used as the overridden values will always take precendence regardless of the parameter input, unless the parameter is provided directly to the Deployment resource applying the manifiest (e.g not the pattern currently employed in most of t-h-t) Also note that ControllerExtraConfig takes precedence over the deployment-wide ExtraConfig. For example, here's how you would pass a value which disables the heat-api-cfn service on all controllers. This would be put into an environment file, then passed to the heat stack-create via an extra -e option: parameters: controllerExtraConfig: heat::api_cfn::enabled: false Note the parameter capitalization is different in the top-level overcloud-without-mergepy template for some reason. Change-Id: I6d6e3e78460308134d95c01892bb242aba70e9ca
-rw-r--r--overcloud-without-mergepy.yaml37
-rw-r--r--puppet/controller-puppet.yaml45
2 files changed, 12 insertions, 70 deletions
diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml
index 19c65a4e..d4dd5a1f 100644
--- a/overcloud-without-mergepy.yaml
+++ b/overcloud-without-mergepy.yaml
@@ -300,40 +300,9 @@ 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 configuration to inject into the cluster. The format required
+ may be implementation specific, e.g puppet hieradata. Any role specific
+ ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
type: json
FencingConfig:
default: {}
diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml
index ad4eff10..d88e54b5 100644
--- a/puppet/controller-puppet.yaml
+++ b/puppet/controller-puppet.yaml
@@ -61,8 +61,7 @@ parameters:
ControllerExtraConfig:
default: {}
description: |
- Controller specific configuration to inject into the cluster. Same
- structure as ExtraConfig.
+ Controller specific hiera configuration data to inject into the cluster.
type: json
ControlVirtualInterface:
default: 'br-ex'
@@ -91,40 +90,8 @@ 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": "compute_manager",
- "value": "ironic.nova.compute.manager.ClusterComputeManager"
- }
- ]
- },
- {"section": "cells",
- "values":
- [{"option": "driver",
- "value": "nova.cells.rpc_driver.CellsRPCDriver"
- }
- ]
- }
- ]
- }
- }
+ Additional hieradata to inject into the cluster, note that
+ ControllerExtraConfig takes precedence over ExtraConfig.
type: json
FencingConfig:
default: {}
@@ -868,6 +835,8 @@ resources:
hiera:
hierarchy:
- heat_config_%{::deploy_config_name}
+ - controller_extraconfig
+ - extraconfig
- controller
- object
- swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
@@ -880,6 +849,10 @@ resources:
- common
- cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
datafiles:
+ controller_extraconfig:
+ mapped_data: {get_param: ControllerExtraConfig}
+ extraconfig:
+ mapped_data: {get_param: ExtraConfig}
common:
raw_data: {get_file: hieradata/common.yaml}
ceph: