heat_template_version: pike description: > Creates a port for a VIP on the isolated network NetworkName. The IP address will be chosen automatically if FixedIPs is empty. parameters: ServiceName: # Here for compatibility with from_service.yaml description: Name of the service to lookup default: '' type: string NetworkName: description: Name of the network where the VIP will be created default: ctlplane type: string PortName: description: Name of the port default: '' type: string ControlPlaneIP: # Here for compatability with noop.yaml description: IP address on the control plane default: '' type: string ControlPlaneNetwork: description: The name of the undercloud Neutron control plane 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 resources: VipPort: type: OS::Neutron::Port properties: network: {get_param: NetworkName} name: {get_param: PortName} fixed_ips: {get_param: FixedIPs} replacement_policy: AUTO outputs: ip_address: description: Virtual IP network IP value: {get_attr: [VipPort, fixed_ips, 0, ip_address]} ip_address_uri: description: Virtual IP with brackets suitable for a URL value: list_join: - '' - - '[' - {get_attr: [VipPort, fixed_ips, 0, ip_address]} - ']' ip_subnet: description: IP/Subnet CIDR for the network associated with this IP value: list_join: - '' - - {get_attr: [VipPort, fixed_ips, 0, ip_address]} - '/' - {str_split: ['/', {get_attr: [VipPort, subnets, 0, cidr]}, 1]}