diff options
author | Steven Hardy <shardy@redhat.com> | 2016-12-21 11:54:46 +0000 |
---|---|---|
committer | Steven Hardy <shardy@redhat.com> | 2017-01-19 17:31:14 +0000 |
commit | 24952e016fc0abd5023cefad8c2d057890fe7a16 (patch) | |
tree | 8026d12d31a57fc1c425414cefbb4ec3cf6ee815 | |
parent | c14d34cdfd8c4d536562d0ee4c159af4de16e7e2 (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
-rw-r--r-- | network/service_net_map.j2.yaml | 64 |
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]} |