tf/3_compute/main.tf (73 lines of code) (raw):

terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "=3.111.0" } random = { source = "hashicorp/random" version = "~> 3.3.0" } } required_version = ">= 0.13" } provider "azurerm" { skip_provider_registration = true features {} } module global { source = "../0_base/cfg" } module network { source = "../1_network/cfg" } module storage { source = "../2_storage/cfg" } module compute { source = "./cfg" } data "azurerm_resource_group" "core_rg" { name = module.global.core_rg_name } data "azurerm_key_vault" "kv" { name = module.global.kv_name resource_group_name = module.global.kv_rg } data "azurerm_key_vault_secret" "ssh_key" { name = "${module.global.admin_username}-ssh-public-key" key_vault_id = data.azurerm_key_vault.kv.id } data "azurerm_key_vault_secret" "password" { name = "${module.global.admin_username}-pw" key_vault_id = data.azurerm_key_vault.kv.id } module "cyclecloud" { source = "../modules/compute/cyclecloud" name_prefix = module.compute.cycle_config.prefix resource_group_name = module.global.flex_rg_name vm_size = module.compute.cycle_config.vm_size cc_version = module.compute.cycle_config.version vnet = { name = module.network.vnet_name rg = module.network.vnet_rg subnet = module.network.infra_subnet_name } locker = { storage_acct_name = module.storage.storage_acct_name rg = module.global.core_rg_name } admin = { username = module.global.admin_username public_key = data.azurerm_key_vault_secret.ssh_key.value password = data.azurerm_key_vault_secret.password.value } use_image_id = module.compute.cycle_image.type == "custom" ? true : false image_id = module.compute.cycle_image.type == "custom" ? module.compute.cycle_config.image_id : null image = module.compute.cycle_image.type == "custom" ? null : { publisher = module.compute.cycle_image.publisher offer = module.compute.cycle_image.offer sku = module.compute.cycle_image.sku } operating_system = module.compute.cycle_image.os_type }