From 71e9426f195cf3c17fc11adf17f14d41caa7cf30 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Wed, 15 Jul 2015 11:04:13 -0400 Subject: 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 --- puppet/controller-puppet.yaml | 45 +++++++++---------------------------------- 1 file changed, 9 insertions(+), 36 deletions(-) (limited to 'puppet/controller-puppet.yaml') 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: -- cgit 1.2.3-korg