From 3f108ff4bd6a353329f5824bb478c4cb4cbb62d5 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Thu, 12 Feb 2015 21:09:02 -0500 Subject: 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 --- overcloud-resource-registry-puppet.yaml | 1 + overcloud-resource-registry.yaml | 1 + overcloud-without-mergepy.yaml | 25 +++++--------------- puppet/controller-puppet.yaml | 3 +-- puppet/swift-devices-and-proxy-config.yaml | 38 ++++++++++++++++++++++++++++++ swift-devices-and-proxy-config.yaml | 38 ++++++++++++++++++++++++++++++ 6 files changed, 85 insertions(+), 21 deletions(-) create mode 100644 puppet/swift-devices-and-proxy-config.yaml create mode 100644 swift-devices-and-proxy-config.yaml diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml index 0e6f6235..ab6be35b 100644 --- a/overcloud-resource-registry-puppet.yaml +++ b/overcloud-resource-registry-puppet.yaml @@ -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: diff --git a/overcloud-resource-registry.yaml b/overcloud-resource-registry.yaml index ebc2b8b0..6f85efe8 100644 --- a/overcloud-resource-registry.yaml +++ b/overcloud-resource-registry.yaml @@ -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 diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml index 6fde167b..6216f6e7 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -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 diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index 537b1cf9..845b6b63 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -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} diff --git a/puppet/swift-devices-and-proxy-config.yaml b/puppet/swift-devices-and-proxy-config.yaml new file mode 100644 index 00000000..1cb897ee --- /dev/null +++ b/puppet/swift-devices-and-proxy-config.yaml @@ -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} diff --git a/swift-devices-and-proxy-config.yaml b/swift-devices-and-proxy-config.yaml new file mode 100644 index 00000000..d422a3ef --- /dev/null +++ b/swift-devices-and-proxy-config.yaml @@ -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} -- cgit 1.2.3-korg