aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2015-02-12 21:09:02 -0500
committerDan Prince <dprince@redhat.com>2015-02-12 22:19:24 -0500
commit3f108ff4bd6a353329f5824bb478c4cb4cbb62d5 (patch)
treecc6afa1020d7ee74774d470a93c9ca74f51652f6
parentd25bd1f12e6b6b74aac4fdc593492ec42518bf8d (diff)
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
-rw-r--r--overcloud-resource-registry-puppet.yaml1
-rw-r--r--overcloud-resource-registry.yaml1
-rw-r--r--overcloud-without-mergepy.yaml25
-rw-r--r--puppet/controller-puppet.yaml3
-rw-r--r--puppet/swift-devices-and-proxy-config.yaml38
-rw-r--r--swift-devices-and-proxy-config.yaml38
6 files changed, 85 insertions, 21 deletions
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}