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
This commit is contained in:
Steven Hardy 2016-05-24 11:51:56 +01:00 committed by Giulio Fidente
parent e3cc44579c
commit be1b311184
4 changed files with 31 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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: