Terraform цикл при изменении счета - PullRequest
0 голосов
/ 11 июня 2019

У меня есть некоторые ресурсы, чье значение count параметризовано переменной. Это используется для создания ресурсов виртуальной машины, а также null_resource с, например, запуск сценариев развертывания на них. Когда я уменьшаю значение счетчика с 2 до 1 и применяю, я получаю ошибку.

Терраформ выполняет plan без нареканий. Но когда я apply, он говорит мне, что есть цикл:

Ошибка: Цикл: null_resource.network_connection_configuration [7] (уничтожить), null_resource.network_connection_configuration [8] (уничтожить), null_resource.network_connection_configuration [3] (уничтожить), null_resource.network_connection_configuration_connection [0] (уничтожить), null_resource.network_connection_configuration [6] (уничтожить), null_resource.network_connection_configuration [1] (уничтожить), null_resource.network_connection_configuration [9] (уничтожить), null_resource.network_connection_configuration [null_connection_configuration] [10] (уничтожить), hcloud_server.kafka [2] (уничтожить), local.all_machine_ips, null_resource.network_connection_configuration (подготовить состояние), null_resource.network_connection_configuration [5] (уничтожить)

Вот соответствующая часть файла:

variable kafka_count {
  default = 3
}

resource "hcloud_server" "kafka" {
  count       = "${var.kafka_count}"
  name        = "kafka-${count.index}"
  image       = "ubuntu-18.04"
  server_type = "cx21"
}

locals {
  all_machine_ips = "${hcloud_server.kafka.*.ipv4_address)}"
}

resource "null_resource" "network_connection_configuration" {
  count = "${length(local.all_machine_ips)}"

  triggers = {
    ips = "${join(",", local.all_machine_ips)}"
  }

  depends_on = [
    "hcloud_server.kafka"
  ]

  connection {
    type        = "ssh"
    user        = "deploy"
    host        = "${element(local.all_machine_ips, count.index)}"
    port        = 22
  }

// ... some file provisioners
}

Когда я пытаюсь найти цикл, используя визуализацию:

terraform graph -verbose -draw-cycles

Нет видимых циклов.

Когда я использую TF_LOG=1 журнал отладки не показывает ошибок

Так что проблема в том, что я могу увеличить счет, но не уменьшить его. Я не хочу взламывать файл вручную, так как это означает, что я не смогу уменьшить его в будущем! Я использую Terraform v0.12.1.

Существуют ли стратегии для устранения этой ситуации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...