diff options
author | Steven Hardy <shardy@redhat.com> | 2016-05-24 11:51:56 +0100 |
---|---|---|
committer | Giulio Fidente <gfidente@redhat.com> | 2016-05-31 11:00:31 +0200 |
commit | be1b311184424c2ae6720b7b61640bc227467d5f (patch) | |
tree | cdf74cce737066522bad3edfe4edf63965c3245a | |
parent | e3cc44579c0e632eb72c3ea9f58f2ab2bc27a251 (diff) |
Configure ObjectStorage services via resource chains
Similar to the https://review.openstack.org/#/c/259568 which added support
for the composable services StepConfig and ServiceConfigSettings parameters
so that the Controller role supports composable services, this adds those
interfaces for the ObjectStorage role.
Note that at this time the ObjectStorage post config only supports steps
2, 3 and 4, not all those in services/README.rst
Partially-Implements: blueprint composable-services-within-roles
Change-Id: I22ffaa68a6ccd4be29d51674871268179bcddcbc
-rw-r--r-- | overcloud.yaml | 16 | ||||
-rw-r--r-- | puppet/services/README.rst | 4 | ||||
-rw-r--r-- | puppet/swift-storage-post.yaml | 5 | ||||
-rw-r--r-- | puppet/swift-storage.yaml | 6 |
4 files changed, 31 insertions, 0 deletions
diff --git a/overcloud.yaml b/overcloud.yaml index c6772ab3..3adfa3e1 100644 --- a/overcloud.yaml +++ b/overcloud.yaml @@ -713,6 +713,14 @@ parameters: type: json description: Optional scheduler hints to pass to nova default: {} + ObjectStorageServices: + default: [] + description: A list of service resources (configured in the Heat + resource_registry) which represent nested stacks + for each service that should get installed on the ObjectStorage nodes. + Note this role currently only supports steps 2, 3 and 4 configuration. + type: comma_delimited_list + # Ceph storage specific parameters CephStorageCount: @@ -1124,6 +1132,12 @@ resources: SchedulerHints: {get_param: BlockStorageSchedulerHints} NodeIndex: '%index%' + ObjectStorageServiceChain: + type: OS::TripleO::Services + properties: + Services: {get_param: ObjectStorageServices} + EndpointMap: {get_attr: [EndpointMap, endpoint_map]} + ObjectStorage: type: OS::Heat::ResourceGroup depends_on: Networks @@ -1156,6 +1170,7 @@ resources: ServerMetadata: {get_param: ServerMetadata} SchedulerHints: {get_param: ObjectStorageSchedulerHints} NodeIndex: '%index%' + ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]} CephStorageServiceChain: type: OS::TripleO::Services @@ -1576,6 +1591,7 @@ resources: allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]} objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]} deployment_identifier: {get_param: DeployIdentifier} + StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]} BlockStorageNodesPostDeployment: type: OS::TripleO::BlockStoragePostDeployment diff --git a/puppet/services/README.rst b/puppet/services/README.rst index 38d2ac64..15c8c1f1 100644 --- a/puppet/services/README.rst +++ b/puppet/services/README.rst @@ -48,3 +48,7 @@ are re-asserted when applying latter ones. 5) Service activation (Pacemaker) 6) Fencing (Pacemaker) + +Note: Not all roles currently support all steps: + + * ObjectStorage role only supports steps 2, 3 and 4 diff --git a/puppet/swift-storage-post.yaml b/puppet/swift-storage-post.yaml index 2b652443..1aba2bb4 100644 --- a/puppet/swift-storage-post.yaml +++ b/puppet/swift-storage-post.yaml @@ -11,6 +11,10 @@ parameters: NodeConfigIdentifiers: type: json description: Value which changes if the node configuration may need to be re-applied + StepConfig: + type: string + description: Config manifests that will be used to step through the deployment. + default: '' resources: @@ -42,6 +46,7 @@ resources: - '' - - get_file: manifests/overcloud_object.pp - get_file: manifests/ringbuilder.pp + - {get_param: StepConfig} StorageRingbuilderDeployment_Step2: type: OS::Heat::StructuredDeployments diff --git a/puppet/swift-storage.yaml b/puppet/swift-storage.yaml index 3f6f4733..016947cf 100644 --- a/puppet/swift-storage.yaml +++ b/puppet/swift-storage.yaml @@ -121,6 +121,9 @@ parameters: NodeIndex: type: number default: 0 + ServiceConfigSettings: + type: json + default: {} resources: @@ -257,6 +260,7 @@ resources: - heat_config_%{::deploy_config_name} - object_extraconfig - extraconfig + - service_configs - object - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig - all_nodes # provided by allNodesConfig @@ -265,6 +269,8 @@ resources: - network merge_behavior: deeper datafiles: + service_configs: + mapped_data: {get_param: ServiceConfigSettings} common: raw_data: {get_file: hieradata/common.yaml} network: |