Make External Load Balancer templates work with IPv6
[apex-tripleo-heat-templates.git] / network / ports / storage_from_pool_v6.yaml
diff --git a/network/ports/storage_from_pool_v6.yaml b/network/ports/storage_from_pool_v6.yaml
new file mode 100644 (file)
index 0000000..966d96a
--- /dev/null
@@ -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:
+  StorageNetName:
+    description: Name of the storage network
+    default: storage
+    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
+  StorageNetCidr:
+    default: 'fd00:fd00:fd00:3000::/64'
+    description: Cidr for the storage network.
+    type: string
+
+outputs:
+  ip_address:
+    description: storage network IP
+    value: {get_param: [IPPool, {get_param: StorageNetName}, {get_param: NodeIndex}]}
+  ip_address_uri:
+    description: storage network IP (for compatibility with storage_v6.yaml)
+    value:
+          list_join:
+          - ''
+          - - '['
+            - {get_param: [IPPool, {get_param: StorageNetName}, {get_param: NodeIndex}]}
+            - ']'
+  ip_subnet:
+    # FIXME: this assumes a 2 digit subnet CIDR (need more heat functions?)
+    description: IP/Subnet CIDR for the storage network IP
+    value:
+      list_join:
+      - ''
+      - - {get_param: [IPPool, {get_param: StorageNetName}, {get_param: NodeIndex}]}
+        - '/'
+        - {get_param: [StorageNetCidr, -2]}
+        - {get_param: [StorageNetCidr, -1]}