heat_template_version: 2015-10-15
description: >
Returns an IP from a network mapped list of IPs. This version is for IPv6
addresses. The ip_address_uri output will have brackets for use in URLs.
parameters:
ExternalNetName:
description: Name of the external network
default: external
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
IPPool:
default: {}
description: A network mapped list of IPs
type: json
NodeIndex:
default: 0
description: Index of the IP to get from Pool
type: number
ExternalNetCidr:
default: '2001:db8:fd00:1000::/64'
description: Cidr for the external network.
type: string
outputs:
ip_address:
description: external network IP
value: {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
ip_address_uri:
description: external network IP (for compatibility with IPv6)
value:
list_join:
- ''
- - '['
- {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
- ']'
ip_subnet:
description: IP/Subnet CIDR for the external network IP
value:
list_join:
- ''
- - {get_param: [IPPool, {get_param: ExternalNetName}, {get_param: NodeIndex}]}
- '/'
- {str_split: ['/', {get_attr: [ExternalPort, subnets, 0, cidr]}, 1]}