From 08f72b29472f6c1ba65d5508ffd3391b452a54a1 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Thu, 16 Jul 2015 17:40:34 +0100 Subject: Wire in hieradata overrides via ExtraConfig for BlockStorage Adds support for global (ExtraConfig) and role-specific (BlockStorageExtraConfig) hiera overrides, similar to those added for the Controller and NovaCompute roles. Change-Id: Iaf9665b53407e6a657f56d6516469f2c88bafbdd --- cinder-storage.yaml | 5 +++++ overcloud-without-mergepy.yaml | 8 +++++++ puppet/cinder-storage-puppet.yaml | 47 +++++++++++---------------------------- 3 files changed, 26 insertions(+), 34 deletions(-) diff --git a/cinder-storage.yaml b/cinder-storage.yaml index be088d66..f65d9289 100644 --- a/cinder-storage.yaml +++ b/cinder-storage.yaml @@ -62,6 +62,11 @@ parameters: } } type: json + BlockStorageExtraConfig: + default: {} + description: | + Role specific additional configuration to inject into the cluster. + type: json Flavor: description: Flavor for block storage nodes to request when deploying. type: string diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml index d4dd5a1f..f341672a 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -562,6 +562,12 @@ parameters: type: string constraints: - custom_constraint: nova.flavor + BlockStorageExtraConfig: + default: {} + description: | + BlockStorage specific configuration to inject into the cluster. Same + structure as ExtraConfig. + type: json # Object storage specific parameters ObjectStorageCount: @@ -881,6 +887,8 @@ resources: '%stackname%': {get_param: 'OS::stack_name'} ServiceNetMap: {get_param: ServiceNetMap} MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]} + ExtraConfig: {get_param: ExtraConfig} + BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig} ObjectStorage: type: OS::Heat::ResourceGroup diff --git a/puppet/cinder-storage-puppet.yaml b/puppet/cinder-storage-puppet.yaml index 94a0a5c4..25f6ef49 100644 --- a/puppet/cinder-storage-puppet.yaml +++ b/puppet/cinder-storage-puppet.yaml @@ -31,40 +31,13 @@ parameters: ExtraConfig: default: {} description: | - Additional configuration to inject into the cluster. The JSON should have - the following structure: - {"FILEKEY": - {"config": - [{"section": "SECTIONNAME", - "values": - [{"option": "OPTIONNAME", - "value": "VALUENAME" - } - ] - } - ] - } - } - For instance: - {"nova": - {"config": - [{"section": "default", - "values": - [{"option": "force_config_drive", - "value": "always" - } - ] - }, - {"section": "cells", - "values": - [{"option": "driver", - "value": "nova.cells.rpc_driver.CellsRPCDriver" - } - ] - } - ] - } - } + Additional hiera configuration to inject into the cluster. Note + that BlockStorageExtraConfig takes precedence over ExtraConfig. + type: json + BlockStorageExtraConfig: + default: {} + description: | + Role specific additional hiera configuration to inject into the cluster. type: json Flavor: description: Flavor for block storage nodes to request when deploying. @@ -235,6 +208,8 @@ resources: hiera: hierarchy: - heat_config_%{::deploy_config_name} + - volume_extraconfig + - extraconfig - volume - all_nodes # provided by allNodesConfig - '"%{::osfamily}"' @@ -242,6 +217,10 @@ resources: datafiles: common: raw_data: {get_file: hieradata/common.yaml} + volume_extraconfig: + mapped_data: {get_param: BlockStorageExtraConfig} + extraconfig: + mapped_data: {get_param: ExtraConfig} volume: raw_data: {get_file: hieradata/volume.yaml} mapped_data: -- cgit 1.2.3-korg