Инкрементное обновление с помощью terraform - PullRequest
0 голосов
/ 26 января 2020

Я использую Terraform в orcastrating моей 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 Ответ

2 голосов
/ 26 января 2020

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

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

...