heat_template_version: rocky

parameters:
  # Set these via parameter defaults to configure external VIPs
  ControlPlaneIP:
    default: ''
    type: string
{%- for network in networks if network.vip|default(false) and network.enabled|default(true) %}
  {{network.name}}NetworkVip:
    default: ''
    type: string
{%- endfor %}
  # The following are unused in this template
  ControlPlaneIp:
    default: ''
    type: string
{%- for network in networks if network.vip|default(false) and network.enabled|default(true) %}
  {{network.name}}Ip:
    default: ''
    type: string
  {{network.name}}IpUri:
    default: ''
    type: string
    description: IP address with brackets in case of IPv6
{%- endfor %}

outputs:
  net_ip_map:
    description: >
      A Hash containing a mapping of network names to assigned IPs
      for a specific machine.
    value:
      ctlplane: {get_param: ControlPlaneIP}
      ctlplane_uri:
        str_replace:
          template:
            make_url:
              host: {get_param: ControlPlaneIP}
          params:
            //: ''
{%- for network in networks if network.vip|default(false) and network.enabled|default(true) %}
      {{network.name_lower}}: {get_param: {{network.name}}NetworkVip}
      {{network.name_lower}}_uri:
        str_replace:
          template:
            make_url:
              host: {get_param: {{network.name}}NetworkVip}
          params:
            //: ''
{%- endfor %}
