diff --git a/overcloud.yaml b/overcloud.yaml index c6772ab3e2..3adfa3e195 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 38d2ac64b9..15c8c1f1ff 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 2b65244381..1aba2bb4d9 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 3f6f47333f..016947cf00 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: