Skip to content
Snippets Groups Projects
Commit b74ba02c authored by Ravi Tripathi's avatar Ravi Tripathi
Browse files

Merge branch 'fix-private-ip-conflict' into 'master'

Create an internal network and use it for each deploy

See merge request !12
parents 54099053 c36bacd1
No related branches found
No related tags found
1 merge request!12Create an internal network and use it for each deploy
Pipeline #8477 passed with stages
in 1 minute and 56 seconds
......@@ -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
......
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]
}
......
......@@ -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
......
# 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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment