Migrating to Mitaka
[apex.git] / build / nics-controller.yaml.template
similarity index 81%
rename from build/nics/controller_private_storage.yaml
rename to build/nics-controller.yaml.template
index dee0201..d5a0bcd 100644 (file)
@@ -1,3 +1,41 @@
+#!/bin/bash
+if [[ $nics_cfg == *_private* ]]; then
+    private_net=$( cat << END
+
+              # Create a bridge which can also be used for VLAN-mode bridge mapping
+              type: ovs_bridge
+              name: br-tenant
+              use_dhcp: false
+              addresses:
+                -
+                  ip_netmask: {get_param: TenantIpSubnet}
+              members:
+                -
+                  type: interface
+                  name: nic2
+                  use_dhcp: false
+                  # force the MAC address of the bridge to this interface
+                  primary: true
+            -
+END
+)
+fi
+
+if [[ $nics_cfg == *_storage* ]]; then
+    storage_net=$( cat << END
+
+            -
+              type: interface
+              name: nic4
+              use_dhcp: false
+              addresses:
+                -
+                  ip_netmask: {get_param: StorageIpSubnet}
+END
+)
+fi
+
+cat <<END
 heat_template_version: 2015-04-30
 
 description: >
@@ -29,6 +67,10 @@ parameters:
     default: ''
     description: IP address/subnet on the tenant network
     type: string
+  ManagementIpSubnet: # Only populated when including environments/network-management.yaml
+    default: ''
+    description: IP address/subnet on the management network
+    type: string
   ExternalNetworkVlanID:
     default: 10
     description: Vlan ID for the external network traffic.
@@ -63,7 +105,7 @@ parameters:
   DnsServers: # Override this via parameter_defaults
     default: []
     description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
-    type: json
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -92,39 +134,27 @@ resources:
                 -
                   ip_netmask: 169.254.169.254/32
                   next_hop: {get_param: EC2MetadataIp}
-            -
-              type: interface
-              name: nic2
-              use_dhcp: false
-              addresses:
-                -
-                  ip_netmask: {get_param: TenantIpSubnet}
-            -
+            -$private_net
               type: ovs_bridge
               name: {get_input: bridge_name}
+              dns_servers: {get_param: DnsServers}
               use_dhcp: false
               addresses:
                 -
                   ip_netmask: {get_param: ExternalIpSubnet}
               routes:
                 -
-                  ip_netmask: 0.0.0.0/0
+                  default: true
                   next_hop: {get_param: ExternalInterfaceDefaultRoute}
               members:
                 -
                   type: interface
                   name: nic3
                   # force the MAC address of the bridge to this interface
-                  primary: true
-            -
-              type: interface
-              name: nic4
-              use_dhcp: false
-              addresses:
-                -
-                  ip_netmask: {get_param: StorageIpSubnet}
+                  primary: true$storage_net
 
 outputs:
   OS::stack_id:
     description: The OsNetConfigImpl resource.
     value: {get_resource: OsNetConfigImpl}
+END