diff -Nur templates.orig/environments/network-environment.yaml templates/environments/network-environment.yaml
--- templates.orig/environments/network-environment.yaml	2017-10-09 13:36:00.219923170 +0000
+++ templates/environments/network-environment.yaml	2017-09-22 00:40:57.988402115 +0000
@@ -1,31 +1,21 @@
-#This file is an example of an environment file for defining the isolated
-#networks and related parameters.
 resource_registry:
   # Network Interface templates to use (these files must exist)
-  OS::TripleO::BlockStorage::Net::SoftwareConfig:
-    ../network/config/single-nic-vlans/cinder-storage.yaml
-  OS::TripleO::Compute::Net::SoftwareConfig:
-    ../network/config/single-nic-vlans/compute.yaml
-  OS::TripleO::Controller::Net::SoftwareConfig:
-    ../network/config/single-nic-vlans/controller.yaml
-  OS::TripleO::ObjectStorage::Net::SoftwareConfig:
-    ../network/config/single-nic-vlans/swift-storage.yaml
-  OS::TripleO::CephStorage::Net::SoftwareConfig:
-    ../network/config/single-nic-vlans/ceph-storage.yaml
+  OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/nic-configs/compute.yaml
+  OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/nic-configs/controller.yaml
 
 parameter_defaults:
   # This section is where deployment-specific configuration is done
   # CIDR subnet mask length for provisioning network
   ControlPlaneSubnetCidr: '24'
   # Gateway router for the provisioning network (or Undercloud IP)
-  ControlPlaneDefaultRoute: 192.168.24.254
+  ControlPlaneDefaultRoute: 9.114.118.254
   EC2MetadataIp: 192.168.24.1  # Generally the IP of the Undercloud
   # Customize the IP subnets to match the local environment
   InternalApiNetCidr: 172.17.0.0/24
   StorageNetCidr: 172.18.0.0/24
   StorageMgmtNetCidr: 172.19.0.0/24
   TenantNetCidr: 172.16.0.0/24
-  ExternalNetCidr: 10.0.0.0/24
+  ExternalNetCidr: 9.114.219.0/24
   # Customize the VLAN IDs to match the local environment
   InternalApiNetworkVlanID: 20
   StorageNetworkVlanID: 30
@@ -38,9 +28,9 @@
   StorageMgmtAllocationPools: [{'start': '172.19.0.10', 'end': '172.19.0.200'}]
   TenantAllocationPools: [{'start': '172.16.0.10', 'end': '172.16.0.200'}]
   # Leave room if the external network is also used for floating IPs
-  ExternalAllocationPools: [{'start': '10.0.0.10', 'end': '10.0.0.50'}]
+  ExternalAllocationPools: [{'start': '9.114.219.49', 'end': '9.114.219.49'}, {'start': '9.114.219.134', 'end': '9.114.219.134'}, {'start': '9.114.219.192', 'end': '9.114.219.194'}]
   # Gateway router for the external network
-  ExternalInterfaceDefaultRoute: 10.0.0.1
+  ExternalInterfaceDefaultRoute: 9.114.219.254
   # Uncomment if using the Management Network (see network-management.yaml)
   # ManagementNetCidr: 10.0.1.0/24
   # ManagementAllocationPools: [{'start': '10.0.1.10', 'end': '10.0.1.50'}]
diff -Nur templates.orig/environments/network-isolation-custom.yaml templates/environments/network-isolation-custom.yaml
--- templates.orig/environments/network-isolation-custom.yaml	1970-01-01 00:00:00.000000000 +0000
+++ templates/environments/network-isolation-custom.yaml	2017-09-22 00:40:57.988402115 +0000
@@ -0,0 +1,33 @@
+# Enable the creation of Neutron networks for isolated Overcloud
+# traffic and configure each role to assign ports (related
+# to that role) on these networks.
+# primary role is: Controller
+resource_registry:
+  # networks as defined in network_data.yaml
+  OS::TripleO::Network::External: ../network/external.yaml
+  OS::TripleO::Network::InternalApi: OS::Heat::None
+  OS::TripleO::Network::Storage: OS::Heat::None
+  OS::TripleO::Network::StorageMgmt: OS::Heat::None
+  OS::TripleO::Network::Tenant: OS::Heat::None
+
+  # Port assignments for the VIPs
+  OS::TripleO::Network::Ports::ExternalVipPort: ../network/ports/external.yaml
+  OS::TripleO::Network::Ports::InternalApiVipPort: ../network/ports/noop.yaml
+  OS::TripleO::Network::Ports::StorageVipPort: ../network/ports/noop.yaml
+  OS::TripleO::Network::Ports::StorageMgmtVipPort: ../network/ports/noop.yaml
+  OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/ctlplane_vip.yaml
+
+  # Port assignments for the Controller
+  OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/external.yaml
+  OS::TripleO::Controller::Ports::InternalApiPort: ../network/ports/noop.yaml
+  OS::TripleO::Controller::Ports::StoragePort: ../network/ports/noop.yaml
+  OS::TripleO::Controller::Ports::StorageMgmtPort: ../network/ports/noop.yaml
+  OS::TripleO::Controller::Ports::TenantPort: ../network/ports/noop.yaml
+  OS::TripleO::Controller::Ports::ManagementPort: ../network/ports/noop.yaml
+  # Port assignments for the Compute
+  OS::TripleO::Compute::Ports::ExternalPort: ../network/ports/noop.yaml
+  OS::TripleO::Compute::Ports::InternalApiPort: ../network/ports/noop.yaml
+  OS::TripleO::Compute::Ports::StoragePort: ../network/ports/noop.yaml
+  OS::TripleO::Compute::Ports::StorageMgmtPort: ../network/ports/noop.yaml
+  OS::TripleO::Compute::Ports::TenantPort: ../network/ports/noop.yaml
+  OS::TripleO::Compute::Ports::ManagementPort: ../network/ports/noop.yaml
diff -Nur templates.orig/nic-configs/compute.yaml templates/nic-configs/compute.yaml
--- templates.orig/nic-configs/compute.yaml	1970-01-01 00:00:00.000000000 +0000
+++ templates/nic-configs/compute.yaml	2017-09-22 00:40:57.988402115 +0000
@@ -0,0 +1,114 @@
+heat_template_version: pike
+description: >
+  Software Config to drive os-net-config to configure multiple interfaces for the compute role.
+parameters:
+  ControlPlaneIp:
+    default: ''
+    description: IP address/subnet on the ctlplane network
+    type: string
+  ExternalIpSubnet:
+    default: ''
+    description: IP address/subnet on the external network
+    type: string
+  InternalApiIpSubnet:
+    default: ''
+    description: IP address/subnet on the internal_api network
+    type: string
+  StorageIpSubnet:
+    default: ''
+    description: IP address/subnet on the storage network
+    type: string
+  StorageMgmtIpSubnet:
+    default: ''
+    description: IP address/subnet on the storage_mgmt network
+    type: string
+  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.
+    type: number
+  InternalApiNetworkVlanID:
+    default: 20
+    description: Vlan ID for the internal_api network traffic.
+    type: number
+  StorageNetworkVlanID:
+    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
+  ControlPlaneSubnetCidr: # Override this via parameter_defaults
+    default: '24'
+    description: The subnet CIDR of the control plane network.
+    type: string
+  ControlPlaneDefaultRoute: # Override this via parameter_defaults
+    description: The default route of the control plane network.
+    type: string
+  ExternalInterfaceDefaultRoute: # Not used by default in this template
+    default: 9.114.219.254
+    description: The default route of the external network.
+    type: string
+  ManagementInterfaceDefaultRoute: # Commented out by default in this template
+    default: unset
+    description: The default route of the management 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: comma_delimited_list
+  EC2MetadataIp: # Override this via parameter_defaults
+    description: The IP address of the EC2 metadata server.
+    type: string
+resources:
+  OsNetConfigImpl:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: script
+      config:
+        str_replace:
+          template:
+            get_file: /home/stack/templates/network/scripts/run-os-net-config.sh
+          params:
+            $network_config:
+              network_config:
+              - type: interface
+                name: nic2
+                use_dhcp: false
+                dns_servers:
+                  get_param: DnsServers
+                addresses:
+                - ip_netmask:
+                    list_join:
+                    - /
+                    - - get_param: ControlPlaneIp
+                      - get_param: ControlPlaneSubnetCidr
+                routes:
+                - ip_netmask: 169.254.169.254/32
+                  next_hop:
+                    get_param: EC2MetadataIp
+                - default: true
+                  next_hop:
+                    get_param: ControlPlaneDefaultRoute
+outputs:
+  OS::stack_id:
+    description: The OsNetConfigImpl resource.
+    value:
+      get_resource: OsNetConfigImpl
+
diff -Nur templates.orig/nic-configs/controller.yaml templates/nic-configs/controller.yaml
--- templates.orig/nic-configs/controller.yaml	1970-01-01 00:00:00.000000000 +0000
+++ templates/nic-configs/controller.yaml	2017-09-22 00:40:57.989402124 +0000
@@ -0,0 +1,126 @@
+heat_template_version: pike
+description: >
+  Software Config to drive os-net-config to configure multiple interfaces for the controller role.
+parameters:
+  ControlPlaneIp:
+    default: ''
+    description: IP address/subnet on the ctlplane network
+    type: string
+  ExternalIpSubnet:
+    default: ''
+    description: IP address/subnet on the external network
+    type: string
+  InternalApiIpSubnet:
+    default: ''
+    description: IP address/subnet on the internal_api network
+    type: string
+  StorageIpSubnet:
+    default: ''
+    description: IP address/subnet on the storage network
+    type: string
+  StorageMgmtIpSubnet:
+    default: ''
+    description: IP address/subnet on the storage_mgmt network
+    type: string
+  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.
+    type: number
+  InternalApiNetworkVlanID:
+    default: 20
+    description: Vlan ID for the internal_api network traffic.
+    type: number
+  StorageNetworkVlanID:
+    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
+  ControlPlaneSubnetCidr: # Override this via parameter_defaults
+    default: '24'
+    description: The subnet CIDR of the control plane network.
+    type: string
+  ControlPlaneDefaultRoute: # Override this via parameter_defaults
+    description: The default route of the control plane network.
+    type: string
+  ExternalInterfaceDefaultRoute:
+    default: 9.114.219.254
+    description: default route for the external network
+    type: string
+  ManagementInterfaceDefaultRoute: # Commented out by default in this template
+    default: unset
+    description: The default route of the management 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: comma_delimited_list
+  EC2MetadataIp: # Override this via parameter_defaults
+    description: The IP address of the EC2 metadata server.
+    type: string
+resources:
+  OsNetConfigImpl:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: script
+      config:
+        str_replace:
+          template:
+            get_file: /home/stack/templates/network/scripts/run-os-net-config.sh
+          params:
+            $network_config:
+              network_config:
+              - type: interface
+                name: nic2
+                use_dhcp: false
+                dns_servers:
+                  get_param: DnsServers
+                addresses:
+                - ip_netmask:
+                    list_join:
+                    - /
+                    - - get_param: ControlPlaneIp
+                      - get_param: ControlPlaneSubnetCidr
+                routes:
+                - ip_netmask: 169.254.169.254/32
+                  next_hop:
+                    get_param: EC2MetadataIp
+              - type: ovs_bridge
+                name: bridge_name
+                dns_servers:
+                  get_param: DnsServers
+                use_dhcp: false
+                addresses:
+                - ip_netmask:
+                    get_param: ExternalIpSubnet
+                routes:
+                - default: true
+                  next_hop:
+                    get_param: ExternalInterfaceDefaultRoute
+                members:
+                - type: interface
+                  name: nic1
+                  primary: true
+outputs:
+  OS::stack_id:
+    description: The OsNetConfigImpl resource.
+    value:
+      get_resource: OsNetConfigImpl
diff -Nur templates.orig/roles/Controller.yaml templates/roles/Controller.yaml
--- templates.orig/roles/Controller.yaml	2017-10-09 13:36:00.228923254 +0000
+++ templates/roles/Controller.yaml	2017-09-22 00:40:57.989402124 +0000
@@ -11,10 +11,6 @@
     - controller
   networks:
     - External
-    - InternalApi
-    - Storage
-    - StorageMgmt
-    - Tenant
   HostnameFormatDefault: '%stackname%-controller-%index%'
   # Deprecated & backward-compatible values (FIXME: Make parameters consistent)
   # Set uses_deprecated_params to True if any deprecated params are used.
