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
This commit is contained in:
Steven Hardy 2015-07-16 17:40:34 +01:00
parent 1f13f59726
commit 08f72b2947
3 changed files with 26 additions and 34 deletions

View File

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

View File

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

View File

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