demo_solution/modules/repo_terraform.azurerm.udr/main.tf (28 lines of code) (raw):

# Create route table resource "azurerm_route_table" "route_table" { name = var.name location = var.location resource_group_name = var.resource_group_name disable_bgp_route_propagation = var.disable_bgp_route_propagation tags = var.tags } # Get subnet to associate with route table data "azurerm_subnet" "subnet_associate" { for_each = { for subnet in var.subnet_associate : subnet.subnet_name => subnet } name = each.value.subnet_name virtual_network_name = each.value.vnet_name resource_group_name = lookup(each.value, "rg_name", var.resource_group_name) } # Associate subnet with route table # Route table will be associated with subnet only after all routes are created, it significant for subnets such as AzureBastion. resource "azurerm_subnet_route_table_association" "subnet" { for_each = { for subnet in var.subnet_associate : subnet.subnet_name => subnet } depends_on = [azurerm_route.route] subnet_id = data.azurerm_subnet.subnet_associate[each.value.subnet_name].id route_table_id = azurerm_route_table.route_table.id } # Create routes resource "azurerm_route" "route" { for_each = { for route in var.routes : route.name => route } name = each.value.name address_prefix = each.value.address_prefix next_hop_type = each.value.next_hop_type next_hop_in_ip_address = lookup(each.value, "next_hop_in_ip_address", null) resource_group_name = var.resource_group_name route_table_name = azurerm_route_table.route_table.name }