diff --git a/deployed-server/ctlplane-port.yaml b/deployed-server/ctlplane-port.yaml
deleted file mode 100644
index eb10fba05d..0000000000
--- a/deployed-server/ctlplane-port.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-heat_template_version: 2014-10-16
-
-parameters:
-  Hostname:
-    type: string
-
-resources:
-
-  ControlPlanePort:
-    type: OS::Neutron::Port
-    properties:
-      network: ctlplane
-      name:
-        list_join:
-          - '-'
-          - - {get_param: Hostname}
-            - ctlplane
-            - port
-      replacement_policy: AUTO
-
-outputs:
-  ip_address:
-    value: {get_attr: [ControlPlanePort, fixed_ips, 0, ip_address]}
diff --git a/deployed-server/deployed-neutron-port.yaml b/deployed-server/deployed-neutron-port.yaml
new file mode 100644
index 0000000000..7855be89f4
--- /dev/null
+++ b/deployed-server/deployed-neutron-port.yaml
@@ -0,0 +1,67 @@
+heat_template_version: 2016-10-14
+
+description: "
+  A fake OS::Neutron::Port stack which outputs fixed_ips and subnets based on
+  the input from the DeployedServerPortMap (set via parameter_defaults). This
+  lookup requires the use of port naming conventions. In order for this to work
+  with deployed-server the keys should be <hostname>-<network>.
+  Example:
+    parameter_defaults:
+      DeployedServerPortMap:
+        gatsby_ctlplane:
+          fixed_ips:
+            - ip_address: 127.0.0.1
+          subnets:
+            - cidr: 24"
+
+parameters:
+  name:
+    default: ''
+    type: string
+  network:
+    default: ''
+    type: string
+  fixed_ips:
+    default: ''
+    type: comma_delimited_list
+  replacement_policy:
+    default: ''
+    type: string
+  DeployedServerPortMap:
+    default: {}
+    type: json
+
+
+outputs:
+  fixed_ips:
+    value:
+      {get_param: [DeployedServerPortMap, {get_param: name}, fixed_ips]}
+  subnets:
+    value:
+      {get_param: [DeployedServerPortMap, {get_param: name}, subnets]}
+  name:
+    value: {get_param: name}
+  status:
+    value: DOWN
+  allowed_address_pairs:
+    value: {}
+  device_id:
+    value: ''
+  device_owner:
+    value: {get_param: network}
+  dns_assignment:
+    value: ''
+  port_security_enabled:
+    value: False
+  admin_state_up:
+    value: False
+  security_groups:
+    value: {}
+  network_id:
+    value: ''
+  tenant_id:
+    value: ''
+  qos_policy_id:
+    value: ''
+  mac_address:
+    value: ''
diff --git a/deployed-server/deployed-server.yaml b/deployed-server/deployed-server.yaml
index 10e934d1fc..690c3f2fcb 100644
--- a/deployed-server/deployed-server.yaml
+++ b/deployed-server/deployed-server.yaml
@@ -80,10 +80,16 @@ resources:
       config: {get_resource: HostsEntryConfig}
       server: {get_resource: deployed-server}
 
-  ControlPlanePort:
+  ControlPlanePortImpl:
     type: OS::TripleO::DeployedServer::ControlPlanePort
     properties:
-      Hostname: {get_attr: [HostsEntryDeployment, hostname]}
+      network: ctlplane
+      name:
+        list_join:
+          - '-'
+          - - {get_attr: [HostsEntryDeployment, hostname]}
+            - ctlplane
+      replacement_policy: AUTO
 
 outputs:
   OS::stack_id:
@@ -91,6 +97,6 @@ outputs:
   networks:
     value:
       ctlplane:
-        - {get_attr: [ControlPlanePort, ip_address]}
+        - {get_attr: [ControlPlanePortImpl, fixed_ips, 0, ip_address]}
   name:
     value: {get_attr: [HostsEntryDeployment, hostname]}
diff --git a/environments/deployed-server-environment.yaml b/environments/deployed-server-environment.yaml
index e9004bd610..7a6639f9be 100644
--- a/environments/deployed-server-environment.yaml
+++ b/environments/deployed-server-environment.yaml
@@ -1,3 +1,3 @@
 resource_registry:
   OS::TripleO::Server: ../deployed-server/deployed-server.yaml
-  OS::TripleO::DeployedServer::ControlPlanePort: ../deployed-server/ctlplane-port.yaml
+  OS::TripleO::DeployedServer::ControlPlanePort: OS::Neutron::Port
diff --git a/environments/deployed-server-noop-ctlplane.yaml b/environments/deployed-server-noop-ctlplane.yaml
index cfda314d04..54f5e41deb 100644
--- a/environments/deployed-server-noop-ctlplane.yaml
+++ b/environments/deployed-server-noop-ctlplane.yaml
@@ -1,4 +1,3 @@
 resource_registry:
   OS::TripleO::Server: ../deployed-server/deployed-server.yaml
-  OS::TripleO::DeployedServerConfig: ../deployed-server/deployed-server-config.yaml
-  OS::TripleO::DeployedServer::ControlPlanePort: OS::Heat::None
+  OS::TripleO::DeployedServer::ControlPlanePort: ../deployed-server/deployed-neutron-port.yaml