@@ -12,45 +12,49 @@ resource "random_integer" "vpc_cidr" {
1212}
1313
1414module "vpc" {
15- # https://registry.terraform.io/modules/Azure/network/azurerm/latest
16- source = " Azure/network/azurerm"
17- version = " >= 5.0, < 6.0"
18-
19- resource_group_location = var. location
20- resource_group_name = var. resource_group_name
21-
22- vnet_name = var. name
23- tags = var. tags
24-
25- address_spaces = local. cidrs
26- subnet_prefixes = local. subnet_cidrs
27- subnet_names = [
28- var . subnet_name_public ,
29- var . subnet_name_private ,
30- var . subnet_name_private_dns_resolver ,
31- ]
32-
33- subnet_delegation = {
34- " ${var.subnet_name_private_dns_resolver}" = [
35- {
15+ # https://registry.terraform.io/modules/Azure/avm-res-network-virtualnetwork/azurerm/latest
16+ source = " Azure/avm-res-network-virtualnetwork/azurerm"
17+ version = " >= 0.16, < 1.0"
18+
19+ location = var. location
20+ parent_id = var. resource_group_id
21+
22+ name = var. name
23+ tags = var. tags
24+
25+ address_space = local. cidrs
26+ subnets = {
27+ " public" = {
28+ name = var.subnet_name_public
29+ address_prefixes = [local.subnet_cidrs[0 ]]
30+ }
31+ " private" = {
32+ name = var.subnet_name_private
33+ address_prefixes = [local.subnet_cidrs[1 ]]
34+ nat_gateway = {
35+ id = azurerm_nat_gateway.nat.id
36+ }
37+ }
38+ " dns-inbound" = {
39+ name = var.subnet_name_private_dns_resolver
40+ address_prefixes = [local.subnet_cidrs[2 ]]
41+ delegations = [{
3642 name = " Microsoft.Network/dnsResolvers"
3743 service_delegation = {
3844 name = " Microsoft.Network/dnsResolvers"
3945 actions = [
4046 " Microsoft.Network/virtualNetworks/subnets/join/action" ,
4147 ]
4248 }
43- }
44- ]
49+ }]
50+ }
4551 }
46-
47- use_for_each = true # https://github.com/Azure/terraform-azurerm-network#notice-to-contributor
4852}
4953
5054data "azurerm_subnet" "public" {
5155 resource_group_name = var. resource_group_name
5256
53- virtual_network_name = module. vpc . vnet_name
57+ virtual_network_name = module. vpc . name
5458 name = var. subnet_name_public
5559
5660 depends_on = [module . vpc . vnet_subnets ]
@@ -59,7 +63,7 @@ data "azurerm_subnet" "public" {
5963data "azurerm_subnet" "private" {
6064 resource_group_name = var. resource_group_name
6165
62- virtual_network_name = module. vpc . vnet_name
66+ virtual_network_name = module. vpc . name
6367 name = var. subnet_name_private
6468
6569 depends_on = [module . vpc . vnet_subnets ]
@@ -68,7 +72,7 @@ data "azurerm_subnet" "private" {
6872data "azurerm_subnet" "dns-inbound" {
6973 resource_group_name = var. resource_group_name
7074
71- virtual_network_name = module. vpc . vnet_name
75+ virtual_network_name = module. vpc . name
7276 name = var. subnet_name_private_dns_resolver
7377
7478 depends_on = [module . vpc . vnet_subnets ]
@@ -83,7 +87,7 @@ resource "azurerm_private_dns_resolver" "main" {
8387 name = var. name
8488 tags = var. tags
8589
86- virtual_network_id = module. vpc . vnet_id
90+ virtual_network_id = module. vpc . resource_id
8791}
8892
8993resource "azurerm_private_dns_resolver_inbound_endpoint" "main" {
@@ -107,23 +111,30 @@ resource "azurerm_nat_gateway" "nat" {
107111 location = var. location
108112 resource_group_name = var. resource_group_name
109113
110- name = var. name
114+ name = var. name
115+ tags = var. tags
116+
111117 sku_name = " Standard"
112118 idle_timeout_in_minutes = 10
113- }
119+ zones = []
114120
115- resource "azurerm_subnet_nat_gateway_association" "nat" {
116- nat_gateway_id = azurerm_nat_gateway. nat . id
117- subnet_id = data. azurerm_subnet . private . id
118121}
119122
123+ # resource "azurerm_subnet_nat_gateway_association" "nat" {
124+ # nat_gateway_id = azurerm_nat_gateway.nat.id
125+ # subnet_id = data.azurerm_subnet.private.id
126+ # }
127+
120128resource "azurerm_public_ip" "nat" {
121129 location = var. location
122130 resource_group_name = var. resource_group_name
123131
124- name = " ${ var . name } -nat"
132+ name = " ${ var . name } -nat"
133+ tags = var. tags
134+
125135 sku = " Standard"
126136 allocation_method = " Static"
137+ zones = []
127138}
128139
129140resource "azurerm_nat_gateway_public_ip_association" "nat" {
0 commit comments