From 2cc592d29d932e64708e20b8ff10f30c80c99249 Mon Sep 17 00:00:00 2001 From: Dan Sneddon Date: Thu, 21 Jan 2016 01:41:46 -0800 Subject: Make External Load Balancer templates work with IPv6 This change modifies the network isolation templates that allow for fixed IP addresses on the controllers' IPs and VIPs, and makes them compatible with IPv6 addresses. The latest version of the patchset creates an from_service_v6.yaml in order to properly handle service VIPs on IPv6 networks. Note that since OVS is not currently compatible with IPv6 tunnel endpoints, this patch does not yet enable IPv6 for the Tenant network by default. Change-Id: If881b000c6000ec13b54c0ee39f1c8940f079ae3 Co-Authored-By: Giulio Fidente --- network/ports/internal_api_from_pool_v6.yaml | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 network/ports/internal_api_from_pool_v6.yaml (limited to 'network/ports/internal_api_from_pool_v6.yaml') diff --git a/network/ports/internal_api_from_pool_v6.yaml b/network/ports/internal_api_from_pool_v6.yaml new file mode 100644 index 00000000..34c17ab2 --- /dev/null +++ b/network/ports/internal_api_from_pool_v6.yaml @@ -0,0 +1,54 @@ +heat_template_version: 2015-04-30 + +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: + InternalApiNetName: + description: Name of the internal API network + default: internal_api + 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 + InternalApiNetCidr: + default: 'fd00:fd00:fd00:2000::/64' + description: Cidr for the internal API network. + type: string + +outputs: + ip_address: + description: internal API network IP + value: {get_param: [IPPool, {get_param: InternalApiNetName}, {get_param: NodeIndex}]} + ip_address_uri: + description: internal API network IP (for compatibility with internal_api_v6.yaml) + value: + list_join: + - '' + - - '[' + - {get_param: [IPPool, {get_param: InternalApiNetName}, {get_param: NodeIndex}]} + - ']' + ip_subnet: + # FIXME: this assumes a 2 digit subnet CIDR (need more heat functions?) + description: IP/Subnet CIDR for the internal API network IP + value: + list_join: + - '' + - - {get_param: [IPPool, {get_param: InternalApiNetName}, {get_param: NodeIndex}]} + - '/' + - {get_param: [InternalApiNetCidr, -2]} + - {get_param: [InternalApiNetCidr, -1]} -- cgit 1.2.3-korg