Merge "Simplify/fix config enabled conditions for upgrades"
[apex-tripleo-heat-templates.git] / network / service_net_map.j2.yaml
1 heat_template_version: ocata
2
3 description: >
4   Mapping of service_name_network -> network name
5
6 parameters:
7   ServiceNetMap:
8     description: Mapping of service_name -> network name. Typically set
9                  via parameter_defaults in the resource registry.  This
10                  mapping overrides those in ServiceNetMapDefaults.
11                  Note that the key in this map must match the service_name
12                  in the service template, e.g if the service_name is heat_api
13                  the key must be either heat_api_network, or optionally
14                  HeatApiNetwork (which will be internally converted to
15                  transform captalization to underscores).
16     default: {}
17     type: json
18
19   # Note that the key in this map must match the service_name
20   # see the description above about conversion from CamelCase to
21   # snake_case - the names must still match when converted
22   ServiceNetMapDefaults:
23     default:
24       # Note the values in this map are replaced by *NetName
25       # to allow for sane defaults when the network names are
26       # overridden.
27       ApacheNetwork: internal_api
28       NeutronTenantNetwork: tenant
29       CeilometerApiNetwork: internal_api
30       AodhApiNetwork: internal_api
31       PankoApiNetwork: internal_api
32       BarbicanApiNetwork: internal_api
33       GnocchiApiNetwork: internal_api
34       MongodbNetwork: internal_api
35       CinderApiNetwork: internal_api
36       CinderIscsiNetwork: storage
37       GlanceApiNetwork: storage
38       IronicApiNetwork: ctlplane
39       IronicNetwork: ctlplane
40       KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
41       KeystonePublicApiNetwork: internal_api
42       ManilaApiNetwork: internal_api
43       NeutronApiNetwork: internal_api
44       OctaviaApiNetwork: internal_api
45       HeatApiNetwork: internal_api
46       HeatApiCfnNetwork: internal_api
47       HeatApiCloudwatchNetwork: internal_api
48       NovaApiNetwork: internal_api
49       NovaPlacementNetwork: internal_api
50       NovaMetadataNetwork: internal_api
51       NovaVncProxyNetwork: internal_api
52       NovaLibvirtNetwork: internal_api
53       Ec2ApiNetwork: internal_api
54       Ec2ApiMetadataNetwork: internal_api
55       SwiftStorageNetwork: storage_mgmt
56       SwiftProxyNetwork: storage
57       SaharaApiNetwork: internal_api
58       HorizonNetwork: internal_api
59       MemcachedNetwork: internal_api
60       RabbitmqNetwork: internal_api
61       RedisNetwork: internal_api
62       MysqlNetwork: internal_api
63       CephClusterNetwork: storage_mgmt
64       CephMonNetwork: storage
65       CephRgwNetwork: storage
66       PublicNetwork: external
67       OpendaylightApiNetwork: internal_api
68       OvnDbsNetwork: internal_api
69       MistralApiNetwork: internal_api
70       ZaqarApiNetwork: internal_api
71       PacemakerRemoteNetwork: internal_api
72       # We special-case the default ResolveNetwork for the CephStorage role
73       # for backwards compatibility, all other roles default to internal_api
74       CephStorageHostnameResolveNetwork: storage
75       EtcdNetwork: internal_api
76 {% for role in roles if role.name != 'CephStorage' %}
77       {{role.name}}HostnameResolveNetwork: internal_api
78 {% endfor %}
79     description: Mapping of service_name -> network name. Typically set
80                  via parameter_defaults in the resource registry.
81     type: json
82
83   # We define mappings to work around names that break when doing the
84   # CamelCase to snake_case conversion to align with service_names
85   ServiceNetMapDeprecatedMapping:
86     default:
87       MongoDbNetwork: MongodbNetwork
88       RabbitMqNetwork: RabbitmqNetwork
89       CephPublicNetwork: CephMonNetwork
90       SwiftMgmtNetwork: SwiftStorageNetwork
91     description: Mapping older deprecated service names, intended for
92                  internal use only, this will be removed in future.
93     type: json
94
95   InternalApiNetName:
96     default: internal_api
97     description: The name of the internal API network.
98     type: string
99   ExternalNetName:
100     default: external
101     description: The name of the external network.
102     type: string
103   ManagementNetName:
104     default: management
105     description: The name of the management network.
106     type: string
107   StorageNetName:
108     default: storage
109     description: The name of the storage network.
110     type: string
111   StorageMgmtNetName:
112     default: storage_mgmt
113     description: The name of the Storage management network.
114     type: string
115   TenantNetName:
116     default: tenant
117     description: The name of the tenant network.
118     type: string
119
120
121 parameter_groups:
122 - label: deprecated
123   description: Do not use deprecated params, they will be removed.
124   parameters:
125   - ServiceNetMapDeprecatedMapping
126
127 resources:
128   ServiceNetMapValue:
129     type: OS::Heat::Value
130     properties:
131       type: json
132       value:
133         map_merge:
134           - map_replace:
135              - {get_param: ServiceNetMapDefaults}
136              - values:
137                  external: {get_param: ExternalNetName}
138                  internal_api: {get_param: InternalApiNetName}
139                  storage: {get_param: StorageNetName}
140                  storage_mgmt: {get_param: StorageMgmtNetName}
141                  tenant: {get_param: TenantNetName}
142                  management: {get_param: ManagementNetName}
143           - map_replace:
144              - {get_param: ServiceNetMap}
145              - keys: {get_param: ServiceNetMapDeprecatedMapping}
146
147
148 outputs:
149   service_net_map:
150     value: {get_attr: [ServiceNetMapValue, value]}
151
152   service_net_map_lower:
153     value:
154       # This does a conversion from CamelCase to snake_case,
155       # e.g HeatApiNetwork becomes heat_api_network so it
156       # matches the service names.
157       yaql:
158         expression: dict($.data.map.items().select([ regex(`([a-z0-9])([A-Z])`).replace($[0], '\\1_\\2').toLower(), $[1]]))
159         data:
160           map: {get_attr: [ServiceNetMapValue, value]}