Инкрементное обновление с терраформом

Я использую Terraform для кастомизации своей среды Azure. На данный момент я могу выполнять инкрементальные обновления. когда я запускаю новый план, он пытается уничтожить все ранее примененные ресурсы. Например, я создал новую виртуальную машину, затем я запускаю новый план по созданию роли, он отмечает виртуальную машину для уничтожения.

Я знаю, что в Azure ARM есть режим развертывания incremental или complete.

если возможно получить доступ к deployment_mode недвижимость от terraform?

например, в этом скрипте:

data "azurerm_subscription" "primary" {
}

resource "azurerm_role_definition" "roles" {
  count              = length(var.roles)
  name               = "${var.role_prefix}${var.roles[count.index]["suffix_name"]}${var.role_suffix}"
  scope              = "${data.azurerm_subscription.primary.id}"

  permissions {
    actions = split(",", var.roles[count.index]["actions"])

    not_actions = split(",", var.roles[count.index]["not_actions"])
  }

  assignable_scopes = ["${data.azurerm_subscription.primary.id}"]
}

есть ли способ установить deployment_mode?

1 ответ

Решение

Вы неправильно понимаете, как работает терраформ. Он уничтожит ресурсы, только если не сможет их редактировать. Если редактирование сработает (по крайней мере, terraform должен думать, что он будет работать)terraform просто обновит службу, но многие вещи остаются неизменными после того, как вы создали ресурс (имя - достаточно хороший пример). Короче говоря: если вы попытаетесь изменить неизменяемое свойство (или, точнее, свойство, которое terraform считает неизменным), terraform уничтожит \ создаст ресурс, в противном случае он обновит его.

Кроме того, вы неправильно понимаете режимы полного \ инкрементального развертывания;)

Другие вопросы по тегам