From e2c935af2717aaed3a67e51f095723e6705685f5 Mon Sep 17 00:00:00 2001 From: JaredDarling <46824759+JaredDarling@users.noreply.github.com> Date: Sat, 10 Aug 2024 19:12:00 -0700 Subject: [PATCH 01/11] better way of handling vnet dns servers --- main.tf | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 829605d..9b1928f 100644 --- a/main.tf +++ b/main.tf @@ -4,7 +4,6 @@ resource "azurerm_virtual_network" "vnet" { name = var.vnet_name resource_group_name = var.resource_group_name bgp_community = var.bgp_community - dns_servers = var.dns_servers tags = merge(var.tags, (/**/ (var.tracing_tags_enabled ? { for k, v in /**/ { avm_git_commit = "2b2f05969200c71b6609f4cdfa9120d48af55537" avm_git_file = "main.tf" @@ -24,6 +23,10 @@ resource "azurerm_virtual_network" "vnet" { id = ddos_protection_plan.value.id } } + + lifecycle { + ignore_changes = [dns_servers] + } } moved { @@ -101,4 +104,11 @@ resource "azurerm_subnet_route_table_association" "vnet" { route_table_id = each.value subnet_id = local.azurerm_subnets_name_id_map[each.key] +} + +resource "azurerm_virtual_network_dns_servers" "vnet_dns" { + count = length(var.dns_servers) > 0 ? 1 : 0 + + dns_servers = var.dns_servers + virtual_network_id = azurerm_virtual_network.vnet.id } \ No newline at end of file From 2b554cef2edf95b846251aef14bac188cb0a53f3 Mon Sep 17 00:00:00 2001 From: JaredDarling <46824759+JaredDarling@users.noreply.github.com> Date: Sun, 11 Aug 2024 12:35:38 -0700 Subject: [PATCH 02/11] Remove all DNS configuration --- main.tf | 7 ------- 1 file changed, 7 deletions(-) diff --git a/main.tf b/main.tf index 9b1928f..16310ab 100644 --- a/main.tf +++ b/main.tf @@ -105,10 +105,3 @@ resource "azurerm_subnet_route_table_association" "vnet" { route_table_id = each.value subnet_id = local.azurerm_subnets_name_id_map[each.key] } - -resource "azurerm_virtual_network_dns_servers" "vnet_dns" { - count = length(var.dns_servers) > 0 ? 1 : 0 - - dns_servers = var.dns_servers - virtual_network_id = azurerm_virtual_network.vnet.id -} \ No newline at end of file From f76b3c1d212f50c985d7354d10c041d6e70af214 Mon Sep 17 00:00:00 2001 From: JaredDarling <46824759+JaredDarling@users.noreply.github.com> Date: Sun, 11 Aug 2024 12:36:33 -0700 Subject: [PATCH 03/11] Update main.tf Formatting From 92c794ba9842b66121c4d265a8e456fa8d00966c Mon Sep 17 00:00:00 2001 From: JaredDarling <46824759+JaredDarling@users.noreply.github.com> Date: Thu, 22 Aug 2024 08:57:19 -0700 Subject: [PATCH 04/11] Remove unused variable --- variables.tf | 7 ------- 1 file changed, 7 deletions(-) diff --git a/variables.tf b/variables.tf index dc41735..de10766 100644 --- a/variables.tf +++ b/variables.tf @@ -31,13 +31,6 @@ variable "ddos_protection_plan" { description = "The set of DDoS protection plan configuration" } -# If no values specified, this defaults to Azure DNS -variable "dns_servers" { - type = list(string) - default = [] - description = "The DNS servers to be used with vNet." -} - variable "nsg_ids" { type = map(string) default = { From e420870546f0cf4a45a260170ba314f8100cd83a Mon Sep 17 00:00:00 2001 From: hezijie Date: Tue, 12 Nov 2024 13:10:49 +0800 Subject: [PATCH 05/11] add azurerm_virtual_network_dns_servers resource block --- main.tf | 7 +++++++ variables.tf | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/main.tf b/main.tf index 16310ab..b1f9a7b 100644 --- a/main.tf +++ b/main.tf @@ -29,6 +29,13 @@ resource "azurerm_virtual_network" "vnet" { } } +resource "azurerm_virtual_network_dns_servers" "this" { + count = var.dns_servers != null ? 1 : 0 + + virtual_network_id = azurerm_virtual_network.vnet.id + dns_servers = var.dns_servers +} + moved { from = azurerm_subnet.subnet to = azurerm_subnet.subnet_count diff --git a/variables.tf b/variables.tf index de10766..dc41735 100644 --- a/variables.tf +++ b/variables.tf @@ -31,6 +31,13 @@ variable "ddos_protection_plan" { description = "The set of DDoS protection plan configuration" } +# If no values specified, this defaults to Azure DNS +variable "dns_servers" { + type = list(string) + default = [] + description = "The DNS servers to be used with vNet." +} + variable "nsg_ids" { type = map(string) default = { From 0a4b52e974b9d9a0a09930cecf442de7221bf2f2 Mon Sep 17 00:00:00 2001 From: hezijie Date: Tue, 12 Nov 2024 13:43:07 +0800 Subject: [PATCH 06/11] add 1sec sleep between subnet creation and nsg association --- README.md | 4 ++++ examples/all_default/providers.tf | 4 ++++ examples/complete/providers.tf | 4 ++++ examples/new_route/providers.tf | 4 ++++ examples/new_security_rule/providers.tf | 4 ++++ examples/private_link_endpoint/providers.tf | 4 ++++ examples/private_link_service/providers.tf | 4 ++++ main.tf | 6 ++++++ versions.tf | 4 ++++ 9 files changed, 38 insertions(+) diff --git a/README.md b/README.md index 26ab4e0..e2e513a 100644 --- a/README.md +++ b/README.md @@ -192,12 +192,14 @@ Originally created by [Eugene Chuvyrov](http://github.com/echuvyrov) |------|---------| | [terraform](#requirement\_terraform) | >= 1.2 | | [azurerm](#requirement\_azurerm) | >= 3.11, < 4.0 | +| [time](#requirement\_time) | >= 0.12.1, < 1.0 | ## Providers | Name | Version | |------|---------| | [azurerm](#provider\_azurerm) | >= 3.11, < 4.0 | +| [time](#provider\_time) | >= 0.12.1, < 1.0 | ## Modules @@ -212,6 +214,8 @@ No modules. | [azurerm_subnet_network_security_group_association.vnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subnet_network_security_group_association) | resource | | [azurerm_subnet_route_table_association.vnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subnet_route_table_association) | resource | | [azurerm_virtual_network.vnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/virtual_network) | resource | +| [azurerm_virtual_network_dns_servers.this](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/virtual_network_dns_servers) | resource | +| [time_sleep.wait_1_sec](https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/sleep) | resource | ## Inputs diff --git a/examples/all_default/providers.tf b/examples/all_default/providers.tf index b968eb0..3f10cd5 100644 --- a/examples/all_default/providers.tf +++ b/examples/all_default/providers.tf @@ -9,6 +9,10 @@ terraform { source = "hashicorp/random" version = "3.3.2" } + time = { + source = "hashicorp/time" + version = ">= 0.12.1, < 1.0" + } } } diff --git a/examples/complete/providers.tf b/examples/complete/providers.tf index b968eb0..3f10cd5 100644 --- a/examples/complete/providers.tf +++ b/examples/complete/providers.tf @@ -9,6 +9,10 @@ terraform { source = "hashicorp/random" version = "3.3.2" } + time = { + source = "hashicorp/time" + version = ">= 0.12.1, < 1.0" + } } } diff --git a/examples/new_route/providers.tf b/examples/new_route/providers.tf index b968eb0..3f10cd5 100644 --- a/examples/new_route/providers.tf +++ b/examples/new_route/providers.tf @@ -9,6 +9,10 @@ terraform { source = "hashicorp/random" version = "3.3.2" } + time = { + source = "hashicorp/time" + version = ">= 0.12.1, < 1.0" + } } } diff --git a/examples/new_security_rule/providers.tf b/examples/new_security_rule/providers.tf index d701b20..cc49b71 100644 --- a/examples/new_security_rule/providers.tf +++ b/examples/new_security_rule/providers.tf @@ -13,6 +13,10 @@ terraform { source = "hashicorp/random" version = "3.3.2" } + time = { + source = "hashicorp/time" + version = ">= 0.12.1, < 1.0" + } } } diff --git a/examples/private_link_endpoint/providers.tf b/examples/private_link_endpoint/providers.tf index b968eb0..3f10cd5 100644 --- a/examples/private_link_endpoint/providers.tf +++ b/examples/private_link_endpoint/providers.tf @@ -9,6 +9,10 @@ terraform { source = "hashicorp/random" version = "3.3.2" } + time = { + source = "hashicorp/time" + version = ">= 0.12.1, < 1.0" + } } } diff --git a/examples/private_link_service/providers.tf b/examples/private_link_service/providers.tf index b968eb0..3f10cd5 100644 --- a/examples/private_link_service/providers.tf +++ b/examples/private_link_service/providers.tf @@ -9,6 +9,10 @@ terraform { source = "hashicorp/random" version = "3.3.2" } + time = { + source = "hashicorp/time" + version = ">= 0.12.1, < 1.0" + } } } diff --git a/main.tf b/main.tf index b1f9a7b..541112d 100644 --- a/main.tf +++ b/main.tf @@ -99,11 +99,17 @@ locals { } } +resource "time_sleep" "wait_1_sec" { + create_duration = "1s" + depends_on = [azurerm_subnet.subnet_for_each, azurerm_subnet.subnet_count] +} + resource "azurerm_subnet_network_security_group_association" "vnet" { for_each = var.nsg_ids network_security_group_id = each.value subnet_id = local.azurerm_subnets_name_id_map[each.key] + depends_on = [time_sleep.wait_1_sec] } resource "azurerm_subnet_route_table_association" "vnet" { diff --git a/versions.tf b/versions.tf index 588b5f4..73481f3 100644 --- a/versions.tf +++ b/versions.tf @@ -6,5 +6,9 @@ terraform { source = "hashicorp/azurerm" version = ">= 3.11, < 4.0" } + time = { + source = "hashicorp/time" + version = ">= 0.12.1, < 1.0" + } } } From bb02e51ce979bb0f118dccee5180975cb2ef5ec0 Mon Sep 17 00:00:00 2001 From: hezijie Date: Tue, 12 Nov 2024 13:50:39 +0800 Subject: [PATCH 07/11] add 1sec sleep between subnet creation and route table association --- main.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/main.tf b/main.tf index 541112d..6784eac 100644 --- a/main.tf +++ b/main.tf @@ -117,4 +117,5 @@ resource "azurerm_subnet_route_table_association" "vnet" { route_table_id = each.value subnet_id = local.azurerm_subnets_name_id_map[each.key] + depends_on = [time_sleep.wait_1_sec] } From 33eb6ae0c8c347cee2adb1e67d5db050cb5b515e Mon Sep 17 00:00:00 2001 From: hezijie Date: Tue, 12 Nov 2024 13:51:23 +0800 Subject: [PATCH 08/11] add 1sec sleep before destroy subnet --- main.tf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main.tf b/main.tf index 6784eac..23d90ae 100644 --- a/main.tf +++ b/main.tf @@ -100,8 +100,9 @@ locals { } resource "time_sleep" "wait_1_sec" { - create_duration = "1s" - depends_on = [azurerm_subnet.subnet_for_each, azurerm_subnet.subnet_count] + create_duration = "1s" + destroy_duration = "1s" + depends_on = [azurerm_subnet.subnet_for_each, azurerm_subnet.subnet_count] } resource "azurerm_subnet_network_security_group_association" "vnet" { From eec2cfdbc2dbde912c68e4396ac98470fbe94cfb Mon Sep 17 00:00:00 2001 From: hezijie Date: Tue, 12 Nov 2024 14:09:03 +0800 Subject: [PATCH 09/11] increase sleep time --- main.tf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main.tf b/main.tf index 23d90ae..aee6bd7 100644 --- a/main.tf +++ b/main.tf @@ -99,9 +99,9 @@ locals { } } -resource "time_sleep" "wait_1_sec" { - create_duration = "1s" - destroy_duration = "1s" +resource "time_sleep" "wait" { + create_duration = "10s" + destroy_duration = "10s" depends_on = [azurerm_subnet.subnet_for_each, azurerm_subnet.subnet_count] } @@ -110,7 +110,7 @@ resource "azurerm_subnet_network_security_group_association" "vnet" { network_security_group_id = each.value subnet_id = local.azurerm_subnets_name_id_map[each.key] - depends_on = [time_sleep.wait_1_sec] + depends_on = [time_sleep.wait] } resource "azurerm_subnet_route_table_association" "vnet" { @@ -118,5 +118,5 @@ resource "azurerm_subnet_route_table_association" "vnet" { route_table_id = each.value subnet_id = local.azurerm_subnets_name_id_map[each.key] - depends_on = [time_sleep.wait_1_sec] + depends_on = [time_sleep.wait] } From e402ff9c23b2b057aa0bf2db68aa2f3a0239e9f0 Mon Sep 17 00:00:00 2001 From: hezijie Date: Tue, 12 Nov 2024 14:10:36 +0800 Subject: [PATCH 10/11] remove unused provider blocks --- examples/all_default/providers.tf | 4 ---- examples/complete/providers.tf | 4 ---- examples/new_route/providers.tf | 4 ---- examples/new_security_rule/providers.tf | 4 ---- examples/private_link_endpoint/providers.tf | 4 ---- examples/private_link_service/providers.tf | 4 ---- 6 files changed, 24 deletions(-) diff --git a/examples/all_default/providers.tf b/examples/all_default/providers.tf index 3f10cd5..b968eb0 100644 --- a/examples/all_default/providers.tf +++ b/examples/all_default/providers.tf @@ -9,10 +9,6 @@ terraform { source = "hashicorp/random" version = "3.3.2" } - time = { - source = "hashicorp/time" - version = ">= 0.12.1, < 1.0" - } } } diff --git a/examples/complete/providers.tf b/examples/complete/providers.tf index 3f10cd5..b968eb0 100644 --- a/examples/complete/providers.tf +++ b/examples/complete/providers.tf @@ -9,10 +9,6 @@ terraform { source = "hashicorp/random" version = "3.3.2" } - time = { - source = "hashicorp/time" - version = ">= 0.12.1, < 1.0" - } } } diff --git a/examples/new_route/providers.tf b/examples/new_route/providers.tf index 3f10cd5..b968eb0 100644 --- a/examples/new_route/providers.tf +++ b/examples/new_route/providers.tf @@ -9,10 +9,6 @@ terraform { source = "hashicorp/random" version = "3.3.2" } - time = { - source = "hashicorp/time" - version = ">= 0.12.1, < 1.0" - } } } diff --git a/examples/new_security_rule/providers.tf b/examples/new_security_rule/providers.tf index cc49b71..d701b20 100644 --- a/examples/new_security_rule/providers.tf +++ b/examples/new_security_rule/providers.tf @@ -13,10 +13,6 @@ terraform { source = "hashicorp/random" version = "3.3.2" } - time = { - source = "hashicorp/time" - version = ">= 0.12.1, < 1.0" - } } } diff --git a/examples/private_link_endpoint/providers.tf b/examples/private_link_endpoint/providers.tf index 3f10cd5..b968eb0 100644 --- a/examples/private_link_endpoint/providers.tf +++ b/examples/private_link_endpoint/providers.tf @@ -9,10 +9,6 @@ terraform { source = "hashicorp/random" version = "3.3.2" } - time = { - source = "hashicorp/time" - version = ">= 0.12.1, < 1.0" - } } } diff --git a/examples/private_link_service/providers.tf b/examples/private_link_service/providers.tf index 3f10cd5..b968eb0 100644 --- a/examples/private_link_service/providers.tf +++ b/examples/private_link_service/providers.tf @@ -9,10 +9,6 @@ terraform { source = "hashicorp/random" version = "3.3.2" } - time = { - source = "hashicorp/time" - version = ">= 0.12.1, < 1.0" - } } } From 68641d1a4ae889dc6f2438057b36db122d4dd248 Mon Sep 17 00:00:00 2001 From: hezijie Date: Tue, 12 Nov 2024 14:22:53 +0800 Subject: [PATCH 11/11] depends on azurerm_virtual_network_dns_servers resource --- README.md | 3 --- main.tf | 12 ++++-------- versions.tf | 4 ---- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index e2e513a..1f08a7a 100644 --- a/README.md +++ b/README.md @@ -192,14 +192,12 @@ Originally created by [Eugene Chuvyrov](http://github.com/echuvyrov) |------|---------| | [terraform](#requirement\_terraform) | >= 1.2 | | [azurerm](#requirement\_azurerm) | >= 3.11, < 4.0 | -| [time](#requirement\_time) | >= 0.12.1, < 1.0 | ## Providers | Name | Version | |------|---------| | [azurerm](#provider\_azurerm) | >= 3.11, < 4.0 | -| [time](#provider\_time) | >= 0.12.1, < 1.0 | ## Modules @@ -215,7 +213,6 @@ No modules. | [azurerm_subnet_route_table_association.vnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subnet_route_table_association) | resource | | [azurerm_virtual_network.vnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/virtual_network) | resource | | [azurerm_virtual_network_dns_servers.this](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/virtual_network_dns_servers) | resource | -| [time_sleep.wait_1_sec](https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/sleep) | resource | ## Inputs diff --git a/main.tf b/main.tf index aee6bd7..758bf49 100644 --- a/main.tf +++ b/main.tf @@ -64,6 +64,8 @@ resource "azurerm_subnet" "subnet_count" { } } } + + depends_on = [azurerm_virtual_network_dns_servers.this] } resource "azurerm_subnet" "subnet_for_each" { @@ -89,6 +91,8 @@ resource "azurerm_subnet" "subnet_for_each" { } } } + + depends_on = [azurerm_virtual_network_dns_servers.this] } locals { @@ -99,18 +103,11 @@ locals { } } -resource "time_sleep" "wait" { - create_duration = "10s" - destroy_duration = "10s" - depends_on = [azurerm_subnet.subnet_for_each, azurerm_subnet.subnet_count] -} - resource "azurerm_subnet_network_security_group_association" "vnet" { for_each = var.nsg_ids network_security_group_id = each.value subnet_id = local.azurerm_subnets_name_id_map[each.key] - depends_on = [time_sleep.wait] } resource "azurerm_subnet_route_table_association" "vnet" { @@ -118,5 +115,4 @@ resource "azurerm_subnet_route_table_association" "vnet" { route_table_id = each.value subnet_id = local.azurerm_subnets_name_id_map[each.key] - depends_on = [time_sleep.wait] } diff --git a/versions.tf b/versions.tf index 73481f3..588b5f4 100644 --- a/versions.tf +++ b/versions.tf @@ -6,9 +6,5 @@ terraform { source = "hashicorp/azurerm" version = ">= 3.11, < 4.0" } - time = { - source = "hashicorp/time" - version = ">= 0.12.1, < 1.0" - } } }