summaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
authorGiulio Fidente <gfidente@redhat.com>2015-12-09 13:07:32 +0100
committerGiulio Fidente <gfidente@redhat.com>2015-12-15 12:44:19 +0100
commit22b4acf454d74302f1cca03f7fe22f63619b1f70 (patch)
tree7f57b0c197d64543606de5b5b9cb0b3673db9fde /puppet
parent3e8010dc8506755f193d6e0f84006452b4eaeee5 (diff)
Allow for usage of pre-allocated IPs for the controller nodes
This change adds a new *_from_pool.yaml meant to return an IP from a list instead of allocating a Neutron port, useful to pick an IP from a pre-defined list and making it possible to configure, for example an external balancer in advance (or dns), with the future IPs of the controller nodes. The list of IPs is provided via parameter_defaults (in the ControllerIPs struct) using ControllerIPs param. Also some additional VipPort types are created for the *VirtualIP resources. The VIPs were previously created using the same port resource used by the nodes, but when deploying with an external balancer we want the VIP resource to be nooped instead. Change-Id: Id3d4f12235501ae77200430a2dc022f378dce336
Diffstat (limited to 'puppet')
-rw-r--r--puppet/controller.yaml19
1 files changed, 19 insertions, 0 deletions
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index 5d39462c..65dd5356 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -90,6 +90,15 @@ parameters:
description: |
Controller specific hiera configuration data to inject into the cluster.
type: json
+ ControllerIPs:
+ default: {}
+ description: >
+ A network mapped list of IPs to assign to Controllers in the following form:
+ {
+ "internal_api": ["a.b.c.d", "e.f.g.h"],
+ ...
+ }
+ type: json
ControlVirtualInterface:
default: 'br-ex'
description: Interface where virtual ip will be assigned.
@@ -689,26 +698,36 @@ resources:
ExternalPort:
type: OS::TripleO::Controller::Ports::ExternalPort
properties:
+ IPPool: {get_param: ControllerIPs}
+ NodeIndex: {get_param: NodeIndex}
ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
InternalApiPort:
type: OS::TripleO::Controller::Ports::InternalApiPort
properties:
+ IPPool: {get_param: ControllerIPs}
+ NodeIndex: {get_param: NodeIndex}
ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
StoragePort:
type: OS::TripleO::Controller::Ports::StoragePort
properties:
+ IPPool: {get_param: ControllerIPs}
+ NodeIndex: {get_param: NodeIndex}
ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
StorageMgmtPort:
type: OS::TripleO::Controller::Ports::StorageMgmtPort
properties:
+ IPPool: {get_param: ControllerIPs}
+ NodeIndex: {get_param: NodeIndex}
ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
TenantPort:
type: OS::TripleO::Controller::Ports::TenantPort
properties:
+ IPPool: {get_param: ControllerIPs}
+ NodeIndex: {get_param: NodeIndex}
ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
NetIpMap: