From 07e99fef9ba96dd9a650ef43560e6a7794939a20 Mon Sep 17 00:00:00 2001
From: Steven Hardy <shardy@redhat.com>
Date: Thu, 11 Feb 2016 10:57:54 +0000
Subject: Allow for usage of pre-allocated IPs for the management network

Id3d4f12235501ae77200430a2dc022f378dce336 added support for pre-allocated
IPs on the other overlay networks, but because the patch adding the
managment network (I0813a13f60a4f797be04b34258a2cffa9ea7e84f) was
under review around the same time, we missed adding the from_pool
capability to the ManagementNetwork.

Change-Id: If99f37634d5da7e7fb7cfc31232e926bd5ff074a
---
 network/ports/management.yaml           |  6 +++++
 network/ports/management_from_pool.yaml | 43 +++++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+)
 create mode 100644 network/ports/management_from_pool.yaml

(limited to 'network')

diff --git a/network/ports/management.yaml b/network/ports/management.yaml
index 20c1b853..8ad2eb47 100644
--- a/network/ports/management.yaml
+++ b/network/ports/management.yaml
@@ -16,6 +16,12 @@ parameters:
   ControlPlaneIP: # Here for compatibility with noop.yaml
     description: IP address on the control plane
     type: string
+  IPPool: # Here for compatibility with from_pool.yaml
+    default: {}
+    type: json
+  NodeIndex: # Here for compatibility with from_pool.yaml
+    default: 0
+    type: number
 
 resources:
 
diff --git a/network/ports/management_from_pool.yaml b/network/ports/management_from_pool.yaml
new file mode 100644
index 00000000..bbd62f5b
--- /dev/null
+++ b/network/ports/management_from_pool.yaml
@@ -0,0 +1,43 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Returns an IP from a network mapped list of IPs
+
+parameters:
+  ManagementNetName:
+    description: Name of the management network
+    default: management
+    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
+  ManagementNetCidr:
+    default: '172.16.4.0/24'
+    description: Cidr for the management network.
+    type: string
+
+outputs:
+  ip_address:
+    description: management network IP
+    value: {get_param: [IPPool, {get_param: ManagementNetName}, {get_param: NodeIndex}]}
+  ip_subnet:
+    description: IP/Subnet CIDR for the management network IP
+    value:
+      list_join:
+      - ''
+      - - {get_param: [IPPool, {get_param: ManagementNetName}, {get_param: NodeIndex}]}
+        - '/'
+        - {str_split: ['/', {get_param: ManagementNetCidr}, 1]}
-- 
cgit