infra/modules/vnet/main.tf (42 lines of code) (raw):

resource "azurerm_virtual_network" "vnet" { name = var.virtual_network_name address_space = ["10.5.0.0/16"] location = var.location resource_group_name = var.resource_group_name } resource "azurerm_subnet" "apim" { name = "snet-apim" resource_group_name = var.resource_group_name virtual_network_name = azurerm_virtual_network.vnet.name address_prefixes = ["10.5.0.0/27"] # A minimum subnet size of /26 or /27 is recommended when creating a new subnet for APIM. Reference: https://learn.microsoft.com/en-us/azure/api-management/integrate-vnet-outbound#prerequisites # Delegate the subnet to "Microsoft.Web/serverFarms". Reference: https://learn.microsoft.com/en-us/azure/api-management/integrate-vnet-outbound#delegate-the-subnet delegation { name = "apim-delegation" service_delegation { name = "Microsoft.Web/serverFarms" actions = [ "Microsoft.Network/virtualNetworks/subnets/action", ] } } } resource "azurerm_subnet" "private_endpoints" { name = "snet-pe" resource_group_name = var.resource_group_name virtual_network_name = azurerm_virtual_network.vnet.name address_prefixes = ["10.5.1.0/28"] # Currently, this deployment creates around 9 services that requires private endpoints. } resource "azurerm_subnet" "cae" { name = "snet-cae" resource_group_name = var.resource_group_name virtual_network_name = azurerm_virtual_network.vnet.name address_prefixes = ["10.5.2.0/23"] # Delegate the subnet to "Microsoft.App/environments" cause of the use of workload profiles delegation { name = "cae-delegation" service_delegation { name = "Microsoft.App/environments" actions = [ "Microsoft.Network/virtualNetworks/subnets/join/action", ] } } }