Split out SwiftDevicesAndProxy SoftwareConfig

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
This commit is contained in:
Dan Prince 2015-02-12 21:09:02 -05:00
parent d25bd1f12e
commit 3f108ff4bd
6 changed files with 85 additions and 21 deletions

View File

@ -7,6 +7,7 @@ resource_registry:
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:

View File

@ -7,3 +7,4 @@ resource_registry:
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

View File

@ -751,36 +751,23 @@ resources:
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

View File

@ -554,6 +554,7 @@ resources:
- heat_config_%{::deploy_config_name}
- controller
- object
- swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
- common
datafiles:
common:
@ -564,8 +565,6 @@ resources:
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}

View File

@ -0,0 +1,38 @@
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}

View File

@ -0,0 +1,38 @@
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}