Allow for usage of pre-allocated IPs for the management network
authorSteven Hardy <shardy@redhat.com>
Thu, 11 Feb 2016 10:57:54 +0000 (10:57 +0000)
committerGiulio Fidente <gfidente@redhat.com>
Fri, 4 Mar 2016 13:26:55 +0000 (14:26 +0100)
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

environments/external-loadbalancer-vip.yaml
network/ports/management.yaml
network/ports/management_from_pool.yaml [new file with mode: 0644]
puppet/controller.yaml

index 1cf5982..198892c 100644 (file)
@@ -10,6 +10,7 @@ resource_registry:
   OS::TripleO::Controller::Ports::StoragePort: ../network/ports/storage_from_pool.yaml
   OS::TripleO::Controller::Ports::StorageMgmtPort: ../network/ports/storage_mgmt_from_pool.yaml
   OS::TripleO::Controller::Ports::TenantPort: ../network/ports/tenant_from_pool.yaml
+  OS::TripleO::Controller::Ports::ManagementPort: ../network/ports/management_from_pool.yaml
 
 parameter_defaults:
   # When using an external loadbalancer set the following in parameter_defaults
@@ -34,4 +35,6 @@ parameter_defaults:
     - 172.16.3.253
     tenant:
     - 172.16.0.253
+    management:
+    - 172.16.4.253
   EnableLoadBalancer: false
index 20c1b85..8ad2eb4 100644 (file)
@@ -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 (file)
index 0000000..bbd62f5
--- /dev/null
@@ -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]}
index 569ab5b..688e417 100644 (file)
@@ -823,6 +823,8 @@ resources:
   ManagementPort:
     type: OS::TripleO::Controller::Ports::ManagementPort
     properties:
+      IPPool: {get_param: ControllerIPs}
+      NodeIndex: {get_param: NodeIndex}
       ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
 
   NetIpMap: