diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 34c9e4fe574aa140b766f4c6844033df41ca4c31..1ad418c7a49b974bb6f5b72fad74407ea366404a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,7 +8,6 @@ variables:
   OS_AUTH_TYPE: "v3applicationcredential"
   OS_AUTH_URL: "https://keystone.cloud.rc.uab.edu:5000/v3"
   TF_ROOT: ${CI_PROJECT_DIR}/
-  TF_VAR_internal_network: "xdmod-packer-clusternet"
   TF_VAR_external_network: "xdmod-packer-dmznet"
   TF_VAR_flavor: "m1.medium"
   GIT_SUBMODULE_STRATEGY: "recursive"
@@ -46,6 +45,7 @@ tf-apply:
   tags: [build]
   script:
     - export BUILD_DATE=$(TZ=America/Chicago date +%Y%m%d%H%M%S)
+    - export TF_VAR_internal_network="xdmod-packer-clusternet-$BUILD_DATE"
     - | 
       if [ -z $TF_VAR_image_ohpc ];
       then
diff --git a/internal-network/main.tf b/internal-network/main.tf
index e2837d3bd6d7944c51f4698e3bc1585b7a667675..4b5272582f292fee1215b55eb84d03832a461d5b 100644
--- a/internal-network/main.tf
+++ b/internal-network/main.tf
@@ -1,4 +1,4 @@
-variable "name" {default = "cluster"}
+variable "internal_net" {default = ""}
 variable "admin_state_up" { }
 variable "enable_dhcp" {}
 
@@ -21,21 +21,21 @@ provider "openstack" {
 
 # creates clusternet
 resource "openstack_networking_network_v2" "internal_network" {
-  name           = "${var.name}net"
+  name           = var.internal_net
   admin_state_up = var.admin_state_up
 }
 
 # creates clustersubnet
 # cidr is the subnet range (that subnet range and dns nameservers from the network create file in feat-openstack)
 resource "openstack_networking_subnet_v2" "internal_subnet" {
-  name        = "${var.name}subnet"
+  name        = "${var.internal_net}_subnet"
   network_id  = openstack_networking_network_v2.internal_network.id
   cidr        = "10.1.1.0/24"
   ip_version  = 4
   enable_dhcp = var.enable_dhcp
 }
 
-output "id" {
+output "internal_network_id" {
     value = openstack_networking_network_v2.internal_network.id
     depends_on = [openstack_networking_subnet_v2.internal_subnet]
 }
diff --git a/main.tf b/main.tf
index 4f7148279d22f2a84de66838235906f412e3b69d..15d3d978d9af32dbf8482e0c9ee04bba6b1015d1 100644
--- a/main.tf
+++ b/main.tf
@@ -14,6 +14,19 @@ provider "openstack" {
     }
 }
 
+# runs the internal-network module
+module "cluster-network" {
+    internal_net = var.internal_network
+    source = "./internal-network"
+    # Default name var is in the module main file
+    admin_state_up = var.admin_state_up
+    enable_dhcp = var.enable_dhcp
+}
+# calls the outputs defined in the internal-network module
+output "internal_network_id" {
+    value = "${module.cluster-network.internal_network_id}"
+}
+
 # runs the floating-ip module - uses public network name defined above
 module "floating-ip-address" {
     source = "./floating-ip"
@@ -42,7 +55,6 @@ output "keypair_name" {
 }
 
 data "openstack_networking_network_v2" "external_net" {name = var.external_network}
-data "openstack_networking_network_v2" "internal_net" {name = var.internal_network}
 
 # runs the ohpc-instance module - creates ohpc instance using variables defined above
 # calls functions from dmz-network, import-keypair, and floating-ip-address modules to get values created there for use
@@ -53,7 +65,7 @@ module "create-ohpc-instance" {
     flavor = var.flavor
     key_pair = module.import-keypair.keypair_name
     external_network = data.openstack_networking_network_v2.external_net.id
-    internal_network = data.openstack_networking_network_v2.internal_net.id
+    internal_network = "${module.cluster-network.internal_network_id}"
     internal_ip = var.ohpc_private_ip
     floating_ip_ohpc = module.floating-ip-address.ohpc_address
     ohpc_user =  var.ohpc_user
@@ -80,12 +92,13 @@ module "create-ohpc-instance" {
 # runs the nodes module - creates nodes using variables defined above
 # calls functions from cluster-network and import-keypair modules to get values created there for use
 module "nodes" {
+    internal_subnet_id = "${module.cluster-network.internal_subnet_id}"
     source = "./nodes"
     image_compute = var.image_compute
     flavor = var.flavor
     key_pair = module.import-keypair.keypair_name
     compute_node_count = var.compute_node_count
-    internal_network = data.openstack_networking_network_v2.internal_net.id
+    internal_network = "${module.cluster-network.internal_network_id}"
 }
 
 # calls the outputs defined in the ohpc-instance module
diff --git a/nodes/main.tf b/nodes/main.tf
index 4d7326df068248fa991ac5e5eae70c2258d790c7..03f1d5934eea5b86c0ec7fc3f3fb6a1f74a18df0 100644
--- a/nodes/main.tf
+++ b/nodes/main.tf
@@ -1,3 +1,6 @@
+# is created in internal-network module and called in root module
+variable "internal_subnet_id" {type = string}
+
 variable "image_compute" {}
 variable "flavor" {}
 
@@ -31,6 +34,7 @@ data "openstack_images_image_v2" "compute" {
 
 # creates compute node
 resource "openstack_compute_instance_v2" "compute" {
+  depends_on      = [var.internal_subnet_id]
   name            = "c${count.index}"
   image_id        = data.openstack_images_image_v2.compute.id
   flavor_name     = var.flavor