tf/0_base/main.tf (70 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 {}
}
data "azurerm_client_config" "current" {}
module global {
source = "./cfg"
}
resource "azurerm_resource_group" "core_rg" {
name = module.global.core_rg_name
location = module.global.location
}
resource "azurerm_resource_group" "flex_rg" {
name = module.global.flex_rg_name
location = module.global.location
}
resource "azurerm_key_vault" "kv" {
count = module.global.create_kv ? 1 : 0
name = module.global.kv_name
location = resource.azurerm_resource_group.core_rg.location
resource_group_name = resource.azurerm_resource_group.core_rg.name
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "standard"
enabled_for_deployment = true
enabled_for_disk_encryption = true
enabled_for_template_deployment = true
soft_delete_retention_days = 7
purge_protection_enabled = false
access_policy {
tenant_id = data.azurerm_client_config.current.tenant_id
object_id = data.azurerm_client_config.current.object_id
secret_permissions = [
"Get",
"List",
"Set",
"Backup",
"Restore",
"Delete",
"Recover",
"Purge"
]
}
}
module "keys" {
source = "../modules/auth/ssh-key"
name_prefix = module.global.admin_username
keyvault_name = module.global.kv_name
keyvault_resource_group_name = module.global.kv_rg
depends_on = [ resource.azurerm_key_vault.kv ]
}
module "password" {
source = "../modules/auth/password"
name_prefix = module.global.admin_username
keyvault_name = module.global.kv_name
keyvault_resource_group_name = module.global.kv_rg
depends_on = [ resource.azurerm_key_vault.kv ]
}