summaryrefslogtreecommitdiffstats
path: root/network
diff options
context:
space:
mode:
authorGiulio Fidente <gfidente@redhat.com>2015-06-12 16:17:19 +0200
committerDan Sneddon <dsneddon@redhat.com>2015-06-13 17:36:29 -0700
commitd4518312486d9e5ad1399f59c04d972abfed4d82 (patch)
tree776641da00c5fbdcd76132f15a19e098195b8420 /network
parenta6706da768ece0d3eb850fc7739fa677f48513bf (diff)
Remove Redis VirtualIP from params and build it from Neutron::Port
The redis_vip should come from a Neutron Port as its cidr depends on the Neutron Network configuration. This change adds 2 new files and modifies 1 in the network/ports directory: - noop.yaml - Passes through the ctlplane Controller IP (modified) - ctlplane_vip.yaml - Creates a new VIP on the control plane - vip.yaml - Creates a VIP on the named network (for isolated nets) Also, changes to overcloud-without-mergepy.yaml create the Redis Virtual IP. The standard resource registry was modified to use noop.yaml for the new Redis VIP. The Puppet resource registry was modified to use ctlplane_vip.yaml by default, but can be made to use vip.yaml when network isolation is used by using an environment file. vip.yaml will place the VIP according to the ServiceNetMap, which can also be overridden. We use this new VIP port definition to assign a VIP to Redis, but follow-up patches will assign VIPs to the rest of the services in a similar fashion. Co-Authored-By: Dan Sneddon <dsneddon@redhat.com> Change-Id: I2cb44ea7a057c4064d0e1999702623618ee3390c
Diffstat (limited to 'network')
-rw-r--r--network/ports/ctlplane_vip.yaml46
-rw-r--r--network/ports/noop.yaml8
-rw-r--r--network/ports/vip.yaml41
3 files changed, 95 insertions, 0 deletions
diff --git a/network/ports/ctlplane_vip.yaml b/network/ports/ctlplane_vip.yaml
new file mode 100644
index 00000000..d5001e43
--- /dev/null
+++ b/network/ports/ctlplane_vip.yaml
@@ -0,0 +1,46 @@
+heat_template_version: 2015-04-30
+
+description: >
+ Creates a port for a VIP on the undercloud ctlplane network.
+
+parameters:
+ NetworkName:
+ description: # Here for compatibility with isolated networks
+ default: ctlplane
+ 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
+ type: string
+ ControlPlaneNetwork:
+ description: The name of the undercloud Neutron control plane
+ default: ctlplane
+ type: string
+
+
+resources:
+
+ VipPort:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: ControlPlaneNetwork}
+ name: {get_param: PortName}
+ replacement_policy: AUTO
+
+outputs:
+ ip_address:
+ description: Virtual IP network IP
+ value: {get_attr: [VipPort, fixed_ips, 0, ip_address]}
+ 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_attr: [VipPort, fixed_ips, 0, ip_address]}
+ - '/'
+ - {get_attr: [VipPort, subnets, 0, cidr, -2]}
+ - {get_attr: [VipPort, subnets, 0, cidr, -1]}
diff --git a/network/ports/noop.yaml b/network/ports/noop.yaml
index 80eccf6e..9e1a1276 100644
--- a/network/ports/noop.yaml
+++ b/network/ports/noop.yaml
@@ -7,10 +7,18 @@ parameters:
ControlPlaneIP:
description: IP address on the control plane
type: string
+ ControlPlaneNetwork:
+ description: Name of the control plane network
+ default: ctlplane
+ type: string
PortName:
description: Name of the port
default: ''
type: string
+ NetworkName:
+ description: # Here for compatability with vip.yaml
+ default: ''
+ type: string
ControlPlaneSubnetCidr: # Override this via parameter_defaults
default: '24'
description: The subnet CIDR of the control plane network.
diff --git a/network/ports/vip.yaml b/network/ports/vip.yaml
new file mode 100644
index 00000000..b957e132
--- /dev/null
+++ b/network/ports/vip.yaml
@@ -0,0 +1,41 @@
+heat_template_version: 2015-04-30
+
+description: >
+ Creates a port for a VIP on the isolated network NetworkName.
+
+parameters:
+ NetworkName:
+ description: Name of the network where the VIP will be created
+ 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
+ type: string
+
+resources:
+
+ VipPort:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: NetworkName}
+ name: {get_param: PortName}
+ replacement_policy: AUTO
+
+outputs:
+ ip_address:
+ description: Virtual IP network IP
+ value: {get_attr: [VipPort, fixed_ips, 0, ip_address]}
+ 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_attr: [VipPort, fixed_ips, 0, ip_address]}
+ - '/'
+ - {get_attr: [VipPort, subnets, 0, cidr, -2]}
+ - {get_attr: [VipPort, subnets, 0, cidr, -1]}