Migrating to Mitaka
[apex.git] / build / nics-compute.yaml.template
similarity index 68%
rename from build/nics/controller_storage.yaml
rename to build/nics-compute.yaml.template
index 7962592..86f3972 100644 (file)
@@ -1,8 +1,100 @@
+#!/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
+
+if [[ $nics_cfg == *_br-ex* ]]; then
+    br_ex=$( cat << END
+
+              members:
+                -
+                  type: interface
+                  name: nic3
+                  # force the MAC address of the bridge to this interface
+                  primary: true
+
+END
+)
+    nic3=$( cat << END
+
+            -
+              type: ovs_bridge
+              name: {get_input: bridge_name}
+END
+)
+else
+    nic3=$( cat << END
+
+            -
+              type: interface
+              name: nic3
+
+END
+)
+fi
+
+if [[ $nics_cfg == *_no-public-ip* ]]; then
+    if [[ $nics_cfg == *_br-ex* ]]; then
+        nic3+=$( cat << END
+
+              use_dhcp: false
+END
+)
+    else
+        nic3=""
+    fi
+else
+    nic3+=$( cat << END
+
+              use_dhcp: false
+              addresses:
+                -
+                  ip_netmask: {get_param: ExternalIpSubnet}
+              routes:
+                -
+                  ip_netmask: 0.0.0.0/0
+                  next_hop: {get_param: ExternalInterfaceDefaultRoute}
+END
+)
+fi
+
+cat <<END
 heat_template_version: 2015-04-30
 
 description: >
   Software Config to drive os-net-config to configure multiple interfaces
-  for the controller role.
+  for the compute role.
 
 parameters:
   ControlPlaneIp:
@@ -25,10 +117,18 @@ parameters:
     default: ''
     description: IP address/subnet on the storage mgmt network
     type: string
+  StorageMgmtNetworkVlanID:
+    default: 40
+    description: Vlan ID for the storage mgmt network traffic.
+    type: number
   TenantIpSubnet:
     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.
@@ -41,14 +141,14 @@ parameters:
     default: 30
     description: Vlan ID for the storage network traffic.
     type: number
-  StorageMgmtNetworkVlanID:
-    default: 40
-    description: Vlan ID for the storage mgmt network traffic.
-    type: number
   TenantNetworkVlanID:
     default: 50
     description: Vlan ID for the tenant network traffic.
     type: number
+  ManagementNetworkVlanID:
+    default: 60
+    description: Vlan ID for the management network traffic.
+    type: number
   ExternalInterfaceDefaultRoute:
     default: '10.0.0.1'
     description: default route for the external network
@@ -58,12 +158,12 @@ parameters:
     description: The subnet CIDR of the control plane network.
     type: string
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
-    description: The subnet CIDR of the control plane network.
+    description: The default route of the control plane network.
     type: string
   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,32 +192,12 @@ resources:
                 -
                   ip_netmask: 169.254.169.254/32
                   next_hop: {get_param: EC2MetadataIp}
-            -
-              type: ovs_bridge
-              name: {get_input: bridge_name}
-              use_dhcp: false
-              addresses:
-                -
-                  ip_netmask: {get_param: ExternalIpSubnet}
-              routes:
                 -
-                  ip_netmask: 0.0.0.0/0
-                  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}
-
+                  default: true
+                  next_hop: {get_param: ControlPlaneDefaultRoute}$private_net$nic3$br_ex
+$storage_net
 outputs:
   OS::stack_id:
     description: The OsNetConfigImpl resource.
     value: {get_resource: OsNetConfigImpl}
+END