diff options
author | Steven Hardy <shardy@redhat.com> | 2015-07-15 11:04:13 -0400 |
---|---|---|
committer | Steven Hardy <shardy@redhat.com> | 2015-07-15 16:33:57 +0100 |
commit | 71e9426f195cf3c17fc11adf17f14d41caa7cf30 (patch) | |
tree | b7637c312bb16215ffa4894def70b50382936c5c | |
parent | 1ce0f9db531a40e0c3915906a24c002d8ed3eae6 (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.yaml | 37 | ||||
-rw-r--r-- | puppet/controller-puppet.yaml | 45 |
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: |