Hello folks,
I am trying to create a set of Azure routes for all route tables keeping reusability in mind. Here is my code.
locals {
location = "westeurope"
route_tables = {
efw-trust = {
resource_group = "my-rg-1"
},
ifw-untrust = {
resource_group = "my-rg-2"
},
efw-ha = {
resource_group = "my-rg-3"
}
},
routes = {
udr-01 = {
resource_group_name = "my-rg-1",
address_prefix = "10.110.0.0/16"
},
udr-02 = {
resource_group_name = "my-rg-1",
address_prefix = "10.130.0.0/16"
},
udr-03 = {
resource_group_name = "my-rg-2",
address_prefix = "10.240.0.0/16"
},
udr-04 = {
resource_group_name = "my-rg-3",
address_prefix = "172.30.30.0/24"
},
udr-05 = {
resource_group_name = "my-rg-3",
address_prefix = "10.150.0.0/16"
}
}
}
resource "azurerm_route_table" "this" {
for_each = local.route_tables
name = "rt-${each.key}"
location = local.location
resource_group_name = "rg-${each.value.resource_group}"
disable_bgp_route_propagation = false
}
resource "azurerm_route" "this" {
for_each = local.routes
name = each.key
resource_group_name = each.value.resource_group_name
route_table_name = each.value.route_table_name
address_prefix = each.value.address_prefix
next_hop_type = "VirtualAppliance"
next_hop_in_ip_address = "172.24.256.100"
}
route_table_name
in resource.azurerm_route.this
is the main point of confusion for me.
My question is how do I loop through the route tables in the resource.azurerm_route.this
resource without writing multiple instances of azurerm_route
resource code and hardcoding the route table name?