main.virtual.network.tf (52 lines of code) (raw):
module "virtual_network" {
count = var.use_private_networking && var.virtual_network_creation_enabled ? 1 : 0
source = "Azure/avm-res-network-virtualnetwork/azurerm"
version = "0.8.1"
name = local.virtual_network_name
resource_group_name = local.resource_group_name
location = var.location
address_space = [var.virtual_network_address_space]
subnets = merge(local.final_subnets, {
container_registry_private_endpoint = {
name = local.container_registry_private_endpoint_subnet_name
address_prefix = local.container_registry_private_endpoint_subnet_address_prefix
}
})
}
resource "azurerm_private_dns_zone" "container_registry" {
count = var.use_private_networking && var.container_registry_private_dns_zone_creation_enabled ? 1 : 0
name = "privatelink.azurecr.io"
resource_group_name = local.resource_group_name
tags = var.tags
}
resource "azurerm_private_dns_zone_virtual_network_link" "container_registry" {
count = var.use_private_networking && var.container_registry_private_dns_zone_creation_enabled ? 1 : 0
name = "privatelink.azurecr.io"
private_dns_zone_name = azurerm_private_dns_zone.container_registry[0].name
resource_group_name = local.resource_group_name
virtual_network_id = local.virtual_network_id
tags = var.tags
}
resource "azurerm_public_ip" "this" {
count = var.use_private_networking && var.public_ip_creation_enabled ? 1 : 0
allocation_method = "Static"
location = var.location
name = local.public_ip_name
resource_group_name = local.resource_group_name
sku = "Standard"
tags = var.tags
zones = var.public_ip_zones
}
resource "azurerm_nat_gateway" "this" {
count = var.use_private_networking && var.nat_gateway_creation_enabled ? 1 : 0
location = var.location
name = local.nat_gateway_name
resource_group_name = local.resource_group_name
sku_name = "Standard"
tags = var.tags
}
resource "azurerm_nat_gateway_public_ip_association" "this" {
count = var.use_private_networking && var.nat_gateway_creation_enabled ? 1 : 0
nat_gateway_id = azurerm_nat_gateway.this[0].id
public_ip_address_id = local.public_ip_id
}