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
ExtraConfig:
default: {}
description: |
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: {}
type: json
FencingConfig:
default: {}
ControllerExtraConfig:
default: {}
description: |
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'
type: json
ControlVirtualInterface:
default: 'br-ex'
ExtraConfig:
default: {}
description: |
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: {}
type: json
FencingConfig:
default: {}
hiera:
hierarchy:
- heat_config_%{::deploy_config_name}
hiera:
hierarchy:
- heat_config_%{::deploy_config_name}
+ - controller_extraconfig
+ - extraconfig
- controller
- object
- swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
- controller
- object
- swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
- common
- cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
datafiles:
- 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:
common:
raw_data: {get_file: hieradata/common.yaml}
ceph: