aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2016-02-11 10:57:54 +0000
committerGiulio Fidente <gfidente@redhat.com>2016-03-04 14:26:55 +0100
commit07e99fef9ba96dd9a650ef43560e6a7794939a20 (patch)
treef670f5ce0290c7fc78b54a3d13d18d52741d8b8a
parent6be32543479589dedcae7502e6fe2167efeda710 (diff)
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
-rw-r--r--environments/external-loadbalancer-vip.yaml3
-rw-r--r--network/ports/management.yaml6
-rw-r--r--network/ports/management_from_pool.yaml43
-rw-r--r--puppet/controller.yaml2
4 files changed, 54 insertions, 0 deletions
diff --git a/environments/external-loadbalancer-vip.yaml b/environments/external-loadbalancer-vip.yaml
index 1cf59825..198892cd 100644
--- a/environments/external-loadbalancer-vip.yaml
+++ b/environments/external-loadbalancer-vip.yaml
@@ -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
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]}
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index 569ab5b2..688e4178 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -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: