|
- terraform {
- required_version = "~> 0.12.21"
- required_providers {
- azurerm = "~> 1.44"
- }
- }
-
- locals {
- linkrtbs = distinct(flatten([
- for link in var.sub_links : [
- for rtb in try(link.subnet.rtb, []) : {
- subnet = link.subnet.name
- route_table_name = link.subnet.rtb.name
- }
- ]
- ]))
- }
-
- resource "azurerm_subnet_route_table_association" "azsub_rtb_link" {
- depends_on = [var.azsub_link_depends_on]
- for_each = {for link in try(local.linkrtbs, []): link.subnet => link}
-
- subnet_id = data.azurerm_subnet.sub[each.value.subnet].id
- route_table_id = data.azurerm_route_table.rtb[each.value.route_table_name].id
- }
-
- locals {
- linknatgws = distinct(flatten([
- for link in var.sub_links : [
- for rtb in try(link.subnet.natgw, []) : {
- subnet = link.subnet.name
- nat_gateway_name = link.subnet.natgw.name
- }
- ]
- ]))
- }
-
- resource "azurerm_subnet_nat_gateway_association" "azsub_natgw_link" {
- depends_on = [var.azsub_link_depends_on]
- for_each = {for link in try(local.linknatgws, []): link.subnet => link}
-
- subnet_id = data.azurerm_subnet.sub[each.value.subnet].id
- nat_gateway_id = data.azurerm_nat_gateway.natgw[each.value.nat_gateway_name].id
- }
-
- locals {
- subnets = distinct(flatten([
- for link in var.sub_links : {
- name = link.subnet.name
- virtual_network_name = link.subnet.virtual_network_name
- resource_group_name = link.subnet.resource_group_name
- }
- ]))
- }
-
- data "azurerm_subnet" "sub" {
- depends_on = [var.azsub_link_depends_on]
- for_each = {for subnet in local.subnets: subnet.name => subnet}
-
- name = each.value.name
- virtual_network_name = each.value.virtual_network_name
- resource_group_name = each.value.resource_group_name
- }
-
- locals {
- rtbs = distinct(flatten([
- for link in var.sub_links : [
- for rtb in try(link.subnet.rtb, []) : {
- name = link.subnet.rtb.name
- resource_group_name = link.subnet.rtb.resource_group_name
- }
- ]
- ]))
- }
-
- data "azurerm_route_table" "rtb" {
- depends_on = [var.azsub_link_depends_on]
- for_each = {for rtb in local.rtbs: rtb.name => rtb}
-
- name = each.value.name
- resource_group_name = each.value.resource_group_name
- }
-
- locals {
- natgws = distinct(flatten([
- for link in var.sub_links : [
- for rtb in try(link.subnet.natgw, []) : {
- name = link.natgw.name
- resource_group_name = link.natgw.resource_group_name
- }
- ]
- ]))
- }
-
- data "azurerm_nat_gateway" "natgw" {
- depends_on = [var.azsub_link_depends_on]
- for_each = {for natgw in local.natgws: natgw.name => natgw}
-
- name = each.value.name
- resource_group_name = each.value.resource_group_name
- }
|