aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2015-04-29 10:53:07 -0400
committerDan Prince <dprince@redhat.com>2015-05-26 08:50:44 -0400
commitb7ead8ec638ce9a08224032e1dced0de2817bd31 (patch)
treef724396f3b20de6533c4ba272ce498584ba63a49
parentb1b66947a021b23699d6080b2cba78cd64efc814 (diff)
Add a network ports IP mapping resource
This patch adds a resource which constructs a Json output parameter called net_ip_map which will allow us to easily extract arbitrary IP addresses for each network using the get_attr function in heat. The goal is to use this data construct in each role template to obtain the correct IP address on each network. Change-Id: I1a8c382651f8096f606ad38f78bbd76314fbae5f
-rw-r--r--network/ports/net_ip_map.yaml30
-rw-r--r--overcloud-resource-registry-puppet.yaml2
-rw-r--r--overcloud-resource-registry.yaml2
3 files changed, 34 insertions, 0 deletions
diff --git a/network/ports/net_ip_map.yaml b/network/ports/net_ip_map.yaml
new file mode 100644
index 00000000..b7138b25
--- /dev/null
+++ b/network/ports/net_ip_map.yaml
@@ -0,0 +1,30 @@
+heat_template_version: 2014-10-16
+
+parameters:
+ ExternalIp:
+ default: ''
+ type: string
+ InternalApiIp:
+ default: ''
+ type: string
+ StorageIp:
+ default: ''
+ type: string
+ StorageMgmtIp:
+ default: ''
+ type: string
+ TenantIp:
+ default: ''
+ type: string
+
+outputs:
+ net_ip_map:
+ description: >
+ A Hash containing a mapping of network names to assigned IPs
+ for a specific machine.
+ value:
+ external: {get_param: ExternalIp}
+ internal_api: {get_param: InternalApiIp}
+ storage: {get_param: StorageIp}
+ storage_mgmt: {get_param: StorageMgmtIp}
+ tenant: {get_param: TenantIp}
diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml
index fabfb0f1..e2a54088 100644
--- a/overcloud-resource-registry-puppet.yaml
+++ b/overcloud-resource-registry-puppet.yaml
@@ -33,6 +33,8 @@ resource_registry:
OS::TripleO::Network::Storage: network/noop.yaml
OS::TripleO::Network::Tenant: network/noop.yaml
+ OS::TripleO::Network::Ports::NetIpMap: network/ports/net_ip_map.yaml
+
# Port assignments for the controller role
OS::TripleO::Controller::Ports::ExternalPort: network/ports/noop.yaml
OS::TripleO::Controller::Ports::InternalApiPort: network/ports/noop.yaml
diff --git a/overcloud-resource-registry.yaml b/overcloud-resource-registry.yaml
index 905f8089..df67bf13 100644
--- a/overcloud-resource-registry.yaml
+++ b/overcloud-resource-registry.yaml
@@ -31,6 +31,8 @@ resource_registry:
OS::TripleO::Network::Storage: network/noop.yaml
OS::TripleO::Network::Tenant: network/noop.yaml
+ OS::TripleO::Network::Ports::NetIpMap: network/ports/net_ip_map.yaml
+
# Port assignments for the controller role
OS::TripleO::Controller::Ports::ExternalPort: network/ports/noop.yaml
OS::TripleO::Controller::Ports::InternalApiPort: network/ports/noop.yaml