1 heat_template_version: pike
2 description: 'Generates the relevant service principals for a server'
7 description: the list containing the 'role_data' output for the ServiceChain
8 {%- for network in networks if network.vip|default(false) %}
9 {%- if network.name == 'External' %}
10 # Special case the External hostname param, which is CloudName
12 default: overcloud.localdomain
13 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
15 {%- elif network.name == 'InternalApi' %}
16 # Special case the Internal API hostname param, which is CloudNameInternal
18 default: overcloud.{{network.name.lower()}}.localdomain
20 The DNS name of this cloud's {{network.name_lower}} endpoint. E.g.
21 'ci-overcloud.{{network.name.lower()}}.tripleo.org'.
23 {%- elif network.name == 'StorageMgmt' %}
24 # Special case StorageMgmt hostname param, which is CloudNameStorageManagement
25 CloudNameStorageManagement:
26 default: overcloud.{{network.name.lower()}}.localdomain
28 The DNS name of this cloud's {{network.name_lower}} endpoint. E.g.
29 'ci-overcloud.{{network.name.lower()}}.tripleo.org'.
32 CloudName{{network.name}}:
33 default: overcloud.{{network.name.lower()}}.localdomain
35 The DNS name of this cloud's {{network.name_lower}} endpoint. E.g.
36 'ci-overcloud.{{network.name.lower()}}.tripleo.org'.
41 default: overcloud.ctlplane.localdomain
43 The DNS name of this cloud's provisioning network endpoint. E.g.
44 'ci-overcloud.ctlplane.tripleo.org'.
49 IncomingMetadataSettings:
54 # Filter null values and values that contain don't contain
55 # 'metadata_settings', get the values from that key and get the
57 expression: list(coalesce($.data, []).where($ != null).where($.containsKey('metadata_settings')).metadata_settings.flatten().distinct())
58 data: {get_param: RoleData}
60 # Generates entries for nova metadata with the following format:
61 # 'managed_service_<id>' : <service>/<fqdn>
62 # Depending on the requested network
68 expression: let(fqdns => $.data.fqdns) -> dict(coalesce($.data.metadata, []).where($ != null and $.type = 'vip').select([concat('managed_service_', $.service, $.network), concat($.service, '/', $fqdns.get($.network))]))
70 metadata: {get_attr: [IncomingMetadataSettings, value]}
72 {%- for network in networks if network.vip|default(false) %}
73 {%- if network.name == 'External' %}
74 external: {get_param: CloudName}
75 {%- elif network.name == 'InternalApi' %}
76 internal_api: {get_param: CloudNameInternal}
77 {%- elif network.name == 'StorageMgmt' %}
78 storage_mgmt: {get_param: CloudNameStorageManagement}
80 {{network.name_lower}}: {get_param: CloudName{{network.name}}}
83 ctlplane: {get_param: CloudNameCtlplane}
90 expression: dict(coalesce($.data, []).where($ != null and $.type = 'node').select([$.service, $.network.replace('_', '')]).groupBy($[0], $[1]))
91 data: {get_attr: [IncomingMetadataSettings, value]}
95 description: actual metadata entries that will be passed to the server.
98 - {get_attr: [IndividualServices, value]}
99 - compact_services: {get_attr: [CompactServices, value]}