diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 78a14d7736a1e26f0bb14b5d1528723797d3b159..8dc056d3ec08c84cd6ebf70a17a6f7c526a882eb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,8 @@ variables: 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-dmz" + TF_VAR_external_network: "xdmod-packer-dmznet" + TF_VAR_flavor: "m1.medium" GIT_SUBMODULE_STRATEGY: "recursive" GIT_SUBMODULE_UPDATE_FLAGS: "--force" @@ -45,13 +46,11 @@ tf-apply: tags: [build] script: - export BUILD_DATE=$(TZ=America/Chicago date +%Y%m%d%H%M%S) - - export TF_VAR_internal_network="tf-clusternet-$BUILD_DATE" - - export TF_VAR_external_network="tf-dmznet-$BUILD_DATE" - - export TF_VAR_keypair_name="os-gen-keypair-$BUILD_DATE" - XDMOD_IMAGES=($(openstack image list --sort-column Name --sort-descending -f value -c Name -c ID | grep -P ' xdmod-\d{14}$' | awk '{print $2}')) - export TF_VAR_image_ohpc="${XDMOD_IMAGES[0]}" # - export TF_VAR_image_ohpc="xdmod-20230629191611" - echo $TF_VAR_image_ohpc + - export TF_VAR_keypair_name="os-gen-keypair-$BUILD_DATE" - terraform apply -auto-approve || terraform destroy -auto-approve clean-up: diff --git a/main.tf b/main.tf index 4c450c8048c5cb501a80603d4990b1fe941730b1..4f7148279d22f2a84de66838235906f412e3b69d 100644 --- a/main.tf +++ b/main.tf @@ -14,37 +14,6 @@ provider "openstack" { } } -# runs the external-network module -module "dmz-network" { - source = "./external-network" - # Default name var is in the module main file - name = var.external_network - admin_state_up = var.admin_state_up - enable_dhcp = var.enable_dhcp - public_network_name = var.public_network_name -} -# calls the outputs defined in the external-network module -output "external_network_id" { - value = module.dmz-network.id -} - -output "router_id" { - value = module.dmz-network.router_id -} - -# runs the internal-network module -module "cluster-network" { - source = "./internal-network" - # Default name var is in the module main file - name = var.internal_network - 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.id -} - # runs the floating-ip module - uses public network name defined above module "floating-ip-address" { source = "./floating-ip" @@ -72,17 +41,19 @@ output "keypair_name" { value = module.import-keypair.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 module "create-ohpc-instance" { - external_subnet_id = module.dmz-network.external_subnet_id source = "./ohpc-instance" ohpc_instance_name = var.ohpc_instance_name image_ohpc = var.image_ohpc flavor = var.flavor key_pair = module.import-keypair.keypair_name - external_network = module.dmz-network.id - internal_network = module.cluster-network.id + external_network = data.openstack_networking_network_v2.external_net.id + internal_network = data.openstack_networking_network_v2.internal_net.id internal_ip = var.ohpc_private_ip floating_ip_ohpc = module.floating-ip-address.ohpc_address ohpc_user = var.ohpc_user @@ -109,13 +80,12 @@ 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 = module.cluster-network.id + internal_network = data.openstack_networking_network_v2.internal_net.id } # calls the outputs defined in the ohpc-instance module diff --git a/nodes/main.tf b/nodes/main.tf index 03f1d5934eea5b86c0ec7fc3f3fb6a1f74a18df0..4d7326df068248fa991ac5e5eae70c2258d790c7 100644 --- a/nodes/main.tf +++ b/nodes/main.tf @@ -1,6 +1,3 @@ -# is created in internal-network module and called in root module -variable "internal_subnet_id" {type = string} - variable "image_compute" {} variable "flavor" {} @@ -34,7 +31,6 @@ 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 diff --git a/ohpc-instance/main.tf b/ohpc-instance/main.tf index 3d89dcc3772f6f41c9ef47614050877646b7ab84..013957f9d7c0e35f8e33b6881da50bd537aade11 100644 --- a/ohpc-instance/main.tf +++ b/ohpc-instance/main.tf @@ -9,7 +9,6 @@ required_version = ">= 0.14.0" } } -variable "external_subnet_id" {type = string} variable "ohpc_instance_name" {} variable "image_ohpc" {} @@ -31,7 +30,6 @@ variable "ssh_private_key" {} # creates details for the OHPC instance resource "openstack_compute_instance_v2" "ohpc" { - depends_on = [var.external_subnet_id] name = var.ohpc_instance_name image_name = var.image_ohpc flavor_name = var.flavor