diff options
author | Steven Hardy <shardy@redhat.com> | 2016-08-09 17:56:14 +0100 |
---|---|---|
committer | Steven Hardy <shardy@redhat.com> | 2016-08-12 21:27:57 +0100 |
commit | ac8d5919d86027aa9e0f523f77e3071b36b8a7d0 (patch) | |
tree | 1a90b779e24cb2d29aab761311f71ee1e8b0a1b7 /network | |
parent | 8c61510e601473cabd60264eff7fc5b6f9f2ebb8 (diff) |
Convert ServiceNetMap to a nested template
We introduce a new ServiceNetMap resource which enables some more flexible
mappings between the services and their networks.
Specifically this patch means:
1. ServiceNetMap no longer has to specify the entire list of all services,
operators may if they wish, but a subset is now valid where you want to
accept the defaults for some services (the defaults are now accessible via
the ServiceNetMapDefaults parameter.
2. We can map some keys which don't fit a pattern that enables conversion
from CamelCase to snake_case which is required for compatibility with the
service_names in puppet/services*
This should be backwards compatible, and in future when we remove internal
dependency on the CamelCase names, we could also enable operators to
specify e.g heat_api_network in ServiceNetMap which would be more consistent.
Change-Id: Ib60198adf76bb69ffbafbfac739e356d153f6194
Partially-Implements: blueprint custom-roles
Diffstat (limited to 'network')
-rw-r--r-- | network/service_net_map.yaml | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/network/service_net_map.yaml b/network/service_net_map.yaml new file mode 100644 index 00000000..fea8987a --- /dev/null +++ b/network/service_net_map.yaml @@ -0,0 +1,92 @@ +heat_template_version: 2016-10-14 + +description: > + Mapping of service_name_network -> network name + +parameters: + ServiceNetMap: + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. This + mapping overrides those in ServiceNetMapDefaults. + default: {} + type: json + + ServiceNetMapDefaults: + default: + NeutronTenantNetwork: tenant + CeilometerApiNetwork: internal_api + AodhApiNetwork: internal_api + GnocchiApiNetwork: internal_api + MongodbNetwork: internal_api + CinderApiNetwork: internal_api + CinderIscsiNetwork: storage + GlanceApiNetwork: storage + GlanceRegistryNetwork: internal_api + IronicApiNetwork: internal_api + KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints + KeystonePublicApiNetwork: internal_api + ManilaApiNetwork: internal_api + NeutronApiNetwork: internal_api + HeatApiNetwork: internal_api + NovaApiNetwork: internal_api + NovaMetadataNetwork: internal_api + NovaVncProxyNetwork: internal_api + SwiftMgmtNetwork: storage_mgmt + SwiftProxyNetwork: storage + SaharaApiNetwork: internal_api + HorizonNetwork: internal_api + MemcachedNetwork: internal_api + RabbitmqNetwork: internal_api + RedisNetwork: internal_api + MysqlNetwork: internal_api + CephClusterNetwork: storage_mgmt + CephPublicNetwork: storage + ControllerHostnameResolveNetwork: internal_api + ComputeHostnameResolveNetwork: internal_api + BlockStorageHostnameResolveNetwork: internal_api + ObjectStorageHostnameResolveNetwork: internal_api + CephStorageHostnameResolveNetwork: storage + PublicNetwork: external + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. + type: json + + # We define mappings to work around names that break when doing the + # CamelCase to snake_case conversion to align with service_names + ServiceNetMapDeprecatedMapping: + default: + MongoDbNetwork: MongodbNetwork + RabbitMqNetwork: RabbitmqNetwork + description: Mapping older deprecated service names, intended for + internal use only, this will be removed in future. + type: json + +parameter_groups: +- label: deprecated + description: Do not use deprecated params, they will be removed. + parameters: + - ServiceNetMapDeprecatedMapping + +outputs: + service_net_map: + value: + map_merge: + - {get_param: ServiceNetMapDefaults} + - map_replace: + - {get_param: ServiceNetMap} + - keys: {get_param: ServiceNetMapDeprecatedMapping} + + service_net_map_lower: + value: + # This does a conversion from CamelCase to snake_case, + # e.g HeatApiNetwork becomes heat_api_network so it + # matches the service names. + 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} |