This patch splits out the SwiftDevicesAndProxy config
such that alternate implementation (puppet for example)
can implement their own SoftwareConfig's via a nested stack.
This is controlled by the standard overcloud heat environment.
For os-apply-config deployments the implementation should work the
same as before.
For puppet deployments the implementation uses hiera metadata
to configure swift devices.
Partial-bug:
1418805
Change-Id: Ibf6038460f36279ad51a04947589d4a03a553f66
OS::TripleO::Net::SoftwareConfig: net-config-bridge.yaml
OS::TripleO::CephStorage: puppet/ceph-storage-puppet.yaml
OS::TripleO::ControllerPostDeployment: puppet/controller-post-puppet.yaml
+ OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: puppet/swift-devices-and-proxy-config.yaml
# NOTE(dprince): requires a new release of python-heatclient
#default_parameters:
OS::TripleO::Net::SoftwareConfig: net-config-noop.yaml
OS::TripleO::CephStorage: ceph-storage.yaml
OS::TripleO::ControllerPostDeployment: controller-post.yaml
+ OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: swift-devices-and-proxy-config.yaml
ControllerSwiftDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: SwiftDevicesAndProxyConfig}
+ config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
servers: {get_attr: [Controller, attributes, nova_server_resource]}
signal_transport: NO_SIGNAL
ObjectStorageSwiftDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: SwiftDevicesAndProxyConfig}
+ config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
signal_transport: NO_SIGNAL
SwiftDevicesAndProxyConfig:
- type: OS::Heat::StructuredConfig
+ type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
properties:
- group: os-apply-config
- config:
- swift:
- devices:
- list_join:
- - ", "
- - - list_join:
- - ", "
- - {get_attr: [Controller, swift_device]}
- - list_join:
- - ", "
- - {get_attr: [ObjectStorage, swift_device]}
- proxy-memcache:
- list_join:
- - ","
- - {get_attr: [Controller, swift_proxy_memcache]}
+ controller_swift_devices: {get_attr: [Controller, swift_device]}
+ object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
+ controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
ControllerClusterConfig:
type: OS::Heat::StructuredConfig
- heat_config_%{::deploy_config_name}
- controller
- object
+ - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
- common
datafiles:
common:
raw_data: {get_file: hieradata/controller.yaml}
oac_data: # data we map in from other OAC configurations
bootstrap_nodeid: bootstrap_host.bootstrap_nodeid
- # Swift
- tripleo::ringbuilder::devices: swift.devices
mapped_data: # data supplied directly to this deployment configuration, etc
debug: {get_input: debug}
bootstack_nodeid: {get_input: bootstack_nodeid}
--- /dev/null
+heat_template_version: 2014-10-16
+description: 'Swift Devices and Proxy Config for Puppet'
+
+parameters:
+ controller_swift_devices:
+ type: comma_delimited_list
+ object_store_swift_devices:
+ type: comma_delimited_list
+ # TODO: add support for puppet swift proxy memcache configuration
+ controller_swift_proxy_memcaches:
+ type: comma_delimited_list
+
+resources:
+
+ SwiftDevicesAndProxyConfigImpl:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ hiera:
+ datafiles:
+ swift_devices_and_proxy:
+ mapped_data:
+ tripleo::ringbuilder::devices:
+ list_join:
+ - ", "
+ - - list_join:
+ - ", "
+ - {get_param: controller_swift_devices}
+ - list_join:
+ - ", "
+ - {get_param: object_store_swift_devices}
+
+outputs:
+ config_id:
+ description: The ID of the SwiftDevicesAndProxyConfigImpl resource.
+ value:
+ {get_resource: SwiftDevicesAndProxyConfigImpl}
--- /dev/null
+heat_template_version: 2014-10-16
+description: 'Swift Devices and Proxy Config'
+
+parameters:
+ controller_swift_devices:
+ type: comma_delimited_list
+ object_store_swift_devices:
+ type: comma_delimited_list
+ controller_swift_proxy_memcaches:
+ type: comma_delimited_list
+
+resources:
+
+ SwiftDevicesAndProxyConfigImpl:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ swift:
+ devices:
+ list_join:
+ - ", "
+ - - list_join:
+ - ", "
+ - {get_param: controller_swift_devices}
+ - list_join:
+ - ", "
+ - {get_param: object_store_swift_devices}
+ proxy-memcache:
+ list_join:
+ - ","
+ - {get_param: controller_swift_proxy_memcaches}
+
+outputs:
+ config_id:
+ description: The ID of the SwiftDevicesAndProxyConfigImpl resource.
+ value:
+ {get_resource: SwiftDevicesAndProxyConfigImpl}