1 heat_template_version: pike
6 type: comma_delimited_list
7 {%- for network in networks %}
8 {{network.name}}IpList:
10 type: comma_delimited_list
14 type: comma_delimited_list
20 type: comma_delimited_list
27 description: The name of the internal_api network.
31 description: The name of the external network.
35 description: The name of the management network.
39 description: The name of the storage network.
43 description: The name of the storage_mgmt network.
47 description: The name of the tenant network.
48 {%- for network in networks %}
49 {{network.name}}NetName:
50 default: {{network.name_lower}}
51 description: The name of the {{network.name_lower}} network.
57 # This adds the extra "services" on for keystone
58 # so that keystone_admin_api_network and
59 # keystone_public_api_network point to the correct
60 # network on the nodes running the "keystone" service
64 type: comma_delimited_list
67 expression: let(root => $) -> $.data.extra_services.items().where($[0] in $root.data.enabled_services).select($[1]).flatten() + $root.data.enabled_services
69 enabled_services: {get_param: EnabledServices}
71 # If anything other than keystone needs this
72 # then we should add an extra_networks interface
73 # to the service templates role_data but for
74 # now we hard-code the keystone special case
85 - ctlplane: {get_param: ControlPlaneIpList}
86 {%- for network in networks %}
87 {{network.name_lower}}: {get_param: {{network.name}}IpList}
90 {%- for network in networks %}
91 {{network.name_lower}}: {get_param: {{network.name}}NetName}
97 A Hash containing a mapping of network names to assigned lists
99 value: {get_attr: [NetIpMapValue, value]}
102 Map of enabled services to a list of their IP addresses
105 # This filters any entries where the value hasn't been substituted for
106 # a list, e.g it's still $service_network. This happens when there is
107 # no network defined for the service in the ServiceNetMap, which is OK
108 # as not all services have to be bound to a network, so we filter them
109 expression: dict($.data.map.items().where(not isString($[1])))
117 SERVICE_node_ips: SERVICE_network
119 SERVICE: {get_attr: [EnabledServicesValue, value]}
120 - values: {get_param: ServiceNetMap}
121 - values: {get_attr: [NetIpMapValue, value]}
122 ctlplane_service_ips:
124 Map of enabled services to a list of their ctlplane IP addresses
127 expression: dict($.data.map.items().where(len($[1]) > 0))
133 SERVICE_ctlplane_node_ips: {get_param: ControlPlaneIpList}
135 SERVICE: {get_attr: [EnabledServicesValue, value]}
138 Map of enabled services to a list of hostnames where they're running
142 # This filters any entries where the value hasn't been substituted for
143 # a list, e.g it's still $service_network. This happens when there is
144 # no network defined for the service in the ServiceNetMap, which is OK
145 # as not all services have to be bound to a network, so we filter them
146 expression: dict($.data.map.items().where(not $[1].endsWith("_network")))
153 SERVICE_node_names: SERVICE_network
155 SERVICE: {get_attr: [EnabledServicesValue, value]}
156 - values: {get_param: ServiceNetMap}
157 - values: {get_param: NetworkHostnameMap}
158 short_service_hostnames:
160 Map of enabled services to a list of hostnames where they're running regardless of the network
163 # If ServiceHostnameList is empty the role is deployed with zero nodes
164 # therefore we don't want to add any *_node_names to the map
165 expression: dict($.data.map.items().where(len($[1]) > 0))
171 SERVICE_short_node_names: {get_param: ServiceHostnameList}
173 SERVICE: {get_attr: [EnabledServicesValue, value]}
174 short_service_bootstrap_hostnames:
176 Map of enabled services to a list of hostnames where they're running regardless of the network
177 Used for bootstrap purposes
180 # If ServiceHostnameList is empty the role is deployed with zero nodes
181 # therefore we don't want to add any *_node_names to the map
182 expression: dict($.data.map.items().where(len($[1]) > 0))
188 SERVICE_short_bootstrap_node_name: {get_param: ServiceHostnameList}
190 SERVICE: {get_attr: [EnabledServicesValue, value]}