Я пытался протестировать сценарий обработки внешних изменений существующих ресурсов, а затем синхронизировать мою конфигурацию HCL с текущим состоянием в следующем приложении. Я мог добиться этого, используя taint для измененного ресурса, но TF удалил другие ресурсы, которые были развернуты во время первого применения. Вот код модуля для виртуальной сети с 3 подсетями (prod, dmz и app) и 3 связанными группами безопасности сети. И я тестировал с изменением одной из групп безопасности сети, но TF удалил все подсети -
VNET-
resource "azurerm_virtual_network" "BP-VNet" {
name = var.Vnetname
location = var.location
resource_group_name = var.rgname
address_space = var.vnetaddress
subnet {
name = "GatewaySubnet"
address_prefix = "10.0.10.0/27"
}
}
Подсеть -
resource "azurerm_subnet" "subnets" {
count = var.subnetcount
name = "snet-prod-${lookup(var.snettype, count.index, "default")}-001"
address_prefixes = ["10.0.${count.index+1}.0/24"]
resource_group_name = var.rgname
virtual_network_name = azurerm_virtual_network.BP-VNet.name
}
ГЯП-
resource "azurerm_network_security_group" "nsgs" {
count = var.subnetcount
name = "nsg-prod-${lookup(var.snettype, count.index, "default")}"
resource_group_name = var.rgname
location = var.location
--------
}
BastionSubnet-
resource "azurerm_subnet" "bastionsubnet" {
name = "AzureBastionSubnet"
virtual_network_name = azurerm_virtual_network.BP-VNet.name
resource_group_name = var.rgname
address_prefixes = [ "10.0.5.0/27" ]
}
Конечный результат второго применения -
Только с подсетью шлюза. Остальные 4 подсети не должны были быть удалены. Почему это происходит?