Add a network ports IP mapping resource
authorDan Prince <dprince@redhat.com>
Wed, 29 Apr 2015 14:53:07 +0000 (10:53 -0400)
committerDan Prince <dprince@redhat.com>
Tue, 26 May 2015 12:50:44 +0000 (08:50 -0400)
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

network/ports/net_ip_map.yaml [new file with mode: 0644]
overcloud-resource-registry-puppet.yaml
overcloud-resource-registry.yaml

diff --git a/network/ports/net_ip_map.yaml b/network/ports/net_ip_map.yaml
new file mode 100644 (file)
index 0000000..b7138b2
--- /dev/null
@@ -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}
index fabfb0f..e2a5408 100644 (file)
@@ -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
index 905f808..df67bf1 100644 (file)
@@ -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