Skip to content
Snippets Groups Projects
Forked from rc / Terraform Openstack
123 commits behind the upstream repository.
main.tf 3.81 KiB
# runs the external-network module
module "dmz-network" {
    source = "./external-network"
    # Default name var is in the module main file
    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.external_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
    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"
    public_network_name = var.public_network_name
}

# calls the outputs defined in the floating-ip module
output "floating_ip_ohpc" {
    value = "${module.floating-ip-address.ohpc_address}"
}

output "floating_ip_ood" {
    value = "${module.floating-ip-address.ood_address}"
}

# runs the key-pair module - imports local public key into openstack and give it the name defined above in the variables
module "import-keypair" {
    source = "./key-pair"
    keypair_name = var.keypair_name
    ssh_public_key = var.ssh_public_key
}

# calls the outputs defined in the key-pair module
output "keypair_name" {
    value = "${module.import-keypair.keypair_name}"
}

# 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_net = var.external_net
    internal_net = var.internal_net
    floating_ip_ohpc = "${module.floating-ip-address.ohpc_address}"
    host_prefix = var.host_prefix
    ohpc_user =  var.ohpc_user
    ssh_private_key = var.ssh_private_key
}

# runs the ood-instance module - creates ood instance using variables defined above
# calls functions from cluster-network, import-keypair, and floating-ip-address modules to get values created there for use
module "create-ood-instance" {
    internal_subnet_id = "${module.cluster-network.internal_subnet_id}"
    source = "./ood-instance"
    ood_instance_name = var.ood_instance_name
    image_ood = var.image_ood
    flavor = var.flavor
    key_pair = "${module.import-keypair.keypair_name}"
    internal_net = var.internal_net
    external_net = var.external_net
    floating_ip_ood = "${module.floating-ip-address.ood_address}"
    host_prefix = var.host_prefix
    ood_user = var.ood_user
    ssh_private_key = var.ssh_private_key
}

# 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_net = var.internal_net
}

# calls the outputs defined in the ohpc-instance module
output "ohpc-ssh_host" {
    value = "${module.create-ohpc-instance.ssh_host}"
}

# calls the outputs defined in the ood-instance module
output "ood-ssh_host" {
    value = "${module.create-ood-instance.ssh_host}"
}