heat_template_version: rocky

description: >
  Returns the control plane port (provisioning network) as the ip_address.

parameters:
  ServiceName: # Here for compatibility with from_service.yaml
    description: Name of the service to lookup
    default: ''
    type: string
  ControlPlaneIP:
    description: IP address on the control plane
    type: string
  ControlPlaneNetwork:
    description: The name of the undercloud Neutron control plane
    default: ctlplane
    type: string
  ControlPlaneSubnet:
    description: The name of the undercloud Neutron control plane subnet
    default: ctlplane-subnet
    type: string
  ControlPlaneMtu:
    default: 1500
    description: The maximum transmission unit (MTU) size(in bytes) that is
      guaranteed to pass through the data path of the segments in the network.
      (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
    type: number
  PortName:
    description: Name of the port
    default: ''
    type: string
  NetworkName: # Here for compatibility with vip.yaml
    description: Name of the network where the VIP will be created
    default: ctlplane
    type: string
  FixedIPs:
    description: >
        Control the IP allocation for the VIP port. E.g.
        [{'ip_address':'1.2.3.4'}]
    default: []
    type: json
  ControlPlaneSubnetCidr:
    default: ''
    description: >
      The subnet CIDR of the control plane network. (The parameter is
      automatically resolved from the ctlplane subnet's cidr attribute.)
    type: string
  IPPool: # Here for compatibility with from_pool.yaml
    default: {}
    description: A network mapped list of IPs
    type: json
  NodeIndex: # Here for compatibility with from_pool.yaml
    default: 0
    description: Index of the IP to get from Pool
    type: number

outputs:
  ip_address:
    description: pass thru network IP
    value: {get_param: ControlPlaneIP}
  ip_address_uri:
    description: pass thru network IP (for compatibility with vip_v6.yaml)
    value:
      str_replace:
        template:
          make_url:
            host: {get_param: ControlPlaneIP}
        params:
          //: ''
  ip_subnet:
    description: IP/Subnet CIDR for the pass thru network IP
    value:
          list_join:
            - ''
            - - {get_param: ControlPlaneIP}
              - '/'
              - {get_param: ControlPlaneSubnetCidr}
  host_routes: # Here for compatibility
    description: Host routes of the ports subnet
    value: []
  mtu:
    description: The maximum transmission unit (MTU)
    value:
          get_param: ControlPlaneMtu
  gateway_ip: # Here for compatibility
    description: Gateway IP of the ports subnet
    value: ''
  cidr:
    description: CIDR of the ports subnet
    value: {get_param: ControlPlaneSubnetCidr}
