summaryrefslogtreecommitdiffstats
path: root/network
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2016-12-21 11:54:46 +0000
committerSteven Hardy <shardy@redhat.com>2017-01-19 17:31:14 +0000
commit24952e016fc0abd5023cefad8c2d057890fe7a16 (patch)
tree8026d12d31a57fc1c425414cefbb4ec3cf6ee815 /network
parentc14d34cdfd8c4d536562d0ee4c159af4de16e7e2 (diff)
Make ServiceNetMap support custom network names
The rework to support custom roles moved the service net map into a nested stack, but the logic it contains fails to consider operators may override the network names via *NetName parameters. So add a map_replace of the ServiceNetMapDefaults so we maintain the existing default service->network assignments, even when the network name is changed. Note that operators will still be expected to pass any ServiceNetMap overrides with the "new" network name, e.g whatever *NetName specifies, otherwise I think environment files could get very confusing. Change-Id: I52018e19428e11d26650f0ea6ccee3ae02494ff8 Partial-Bug: #1651541
Diffstat (limited to 'network')
-rw-r--r--network/service_net_map.j2.yaml64
1 files changed, 52 insertions, 12 deletions
diff --git a/network/service_net_map.j2.yaml b/network/service_net_map.j2.yaml
index 8f1c4b45..8ed44ec9 100644
--- a/network/service_net_map.j2.yaml
+++ b/network/service_net_map.j2.yaml
@@ -21,6 +21,9 @@ parameters:
# snake_case - the names must still match when converted
ServiceNetMapDefaults:
default:
+ # Note the values in this map are replaced by *NetName
+ # to allow for sane defaults when the network names are
+ # overridden.
ApacheNetwork: internal_api
NeutronTenantNetwork: tenant
CeilometerApiNetwork: internal_api
@@ -82,20 +85,62 @@ parameters:
internal use only, this will be removed in future.
type: json
+ InternalApiNetName:
+ default: internal_api
+ description: The name of the internal API network.
+ type: string
+ ExternalNetName:
+ default: external
+ description: The name of the external network.
+ type: string
+ ManagementNetName:
+ default: management
+ description: The name of the management network.
+ type: string
+ StorageNetName:
+ default: storage
+ description: The name of the storage network.
+ type: string
+ StorageMgmtNetName:
+ default: storage_mgmt
+ description: The name of the Storage management network.
+ type: string
+ TenantNetName:
+ default: tenant
+ description: The name of the tenant network.
+ type: string
+
+
parameter_groups:
- label: deprecated
description: Do not use deprecated params, they will be removed.
parameters:
- ServiceNetMapDeprecatedMapping
+resources:
+ ServiceNetMapValue:
+ type: OS::Heat::Value
+ properties:
+ type: json
+ value:
+ map_merge:
+ - map_replace:
+ - {get_param: ServiceNetMapDefaults}
+ - values:
+ external: {get_param: ExternalNetName}
+ internal_api: {get_param: InternalApiNetName}
+ storage: {get_param: StorageNetName}
+ storage_mgmt: {get_param: StorageMgmtNetName}
+ tenant: {get_param: TenantNetName}
+ management: {get_param: ManagementNetName}
+ - map_replace:
+ - {get_param: ServiceNetMap}
+ - keys: {get_param: ServiceNetMapDeprecatedMapping}
+
+
outputs:
service_net_map:
- value:
- map_merge:
- - {get_param: ServiceNetMapDefaults}
- - map_replace:
- - {get_param: ServiceNetMap}
- - keys: {get_param: ServiceNetMapDeprecatedMapping}
+ value: {get_attr: [ServiceNetMapValue, value]}
service_net_map_lower:
value:
@@ -105,9 +150,4 @@ outputs:
yaql:
expression: dict($.data.map.items().select([ regex(`([a-z0-9])([A-Z])`).replace($[0], '\\1_\\2').toLower(), $[1]]))
data:
- map:
- map_merge:
- - {get_param: ServiceNetMapDefaults}
- - map_replace:
- - {get_param: ServiceNetMap}
- - keys: {get_param: ServiceNetMapDeprecatedMapping}
+ map: {get_attr: [ServiceNetMapValue, value]}