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"
- }
}
}