Update neutron local_ip to use the tenant network
authorDan Prince <dprince@redhat.com>
Wed, 29 Apr 2015 14:58:00 +0000 (10:58 -0400)
committerDan Prince <dprince@redhat.com>
Tue, 26 May 2015 12:50:45 +0000 (08:50 -0400)
This patch uses the new NetIpMap and ServiceMap abstractions
to assign the Neutron tenant tunneling network addresses.
By default this is associated with the tenant network. If no
tenant network is activated this will still default to
the control plane IP address.

Change-Id: I9db7dd0c282af4e5f24947f31da2b89f231e6ae4

overcloud-resource-registry-puppet.yaml
puppet/compute-puppet.yaml
puppet/controller-puppet.yaml

index e2a5408..7b35c2f 100644 (file)
@@ -63,3 +63,6 @@ resource_registry:
 
 parameter_defaults:
   EnablePackageInstall: false
+  # Mapping of service_name -> network name.
+  ServiceNetMap:
+    NeutronLocalIp: tenant
index cd11b89..eb38464 100644 (file)
@@ -247,6 +247,11 @@ parameters:
     default: 'false'
     description: Set to true to enable package installation via Puppet
     type: boolean
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
 
 resources:
 
@@ -282,6 +287,13 @@ resources:
     properties:
       ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
 
+  NetIpMap:
+    type: OS::TripleO::Network::Ports::NetIpMap
+    properties:
+      InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
+      StorageIp: {get_attr: [StoragePort, ip_address]}
+      TenantIp: {get_attr: [TenantPort, ip_address]}
+
   NetworkConfig:
     type: OS::TripleO::Compute::Net::SoftwareConfig
     properties:
@@ -353,7 +365,8 @@ resources:
                 neutron::rabbit_port: {get_input: rabbit_client_port}
                 neutron_flat_networks: {get_input: neutron_flat_networks}
                 neutron_host: {get_input: neutron_host}
-                neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
+                neutron::agents::ml2::ovs::local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronLocalIp]}]}
+
                 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
                 neutron_tunnel_types: {get_input: neutron_tunnel_types}
                 neutron::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
index d8ca76e..61a1015 100644 (file)
@@ -426,6 +426,11 @@ parameters:
     default: 'false'
     description: Set to true to enable package installation via Puppet
     type: boolean
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
 
 resources:
 
@@ -469,6 +474,15 @@ resources:
     properties:
       ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
 
+  NetIpMap:
+    type: OS::TripleO::Network::Ports::NetIpMap
+    properties:
+      ExternalIp: {get_attr: [ExternalPort, ip_address]}
+      InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
+      StorageIp: {get_attr: [StoragePort, ip_address]}
+      StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
+      TenantIp: {get_attr: [TenantPort, ip_address]}
+
   NetworkConfig:
     type: OS::TripleO::Controller::Net::SoftwareConfig
     properties:
@@ -809,7 +823,7 @@ resources:
                 neutron::server::identity_uri: {get_input: keystone_identity_uri}
                 neutron::server::database_connection: {get_input: neutron_dsn}
                 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
-                neutron::agents::ml2::ovs::local_ip: {get_input: controller_host}
+                neutron::agents::ml2::ovs::local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronLocalIp]}]}
                 neutron_flat_networks: {get_input: neutron_flat_networks}
                 neutron::agents::metadata::shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
                 neutron::agents::metadata::metadata_ip: {get_input: controller_virtual_ip}