Как добавить ресурс, используя тот же модуль? - PullRequest
0 голосов
/ 10 мая 2019

Terraform новичок здесь.У меня есть модуль, который создает экземпляр в GCP.Я использую переменные и terraform.tfvars для их инициализации.Я успешно создал один экземпляр - скажем, экземпляр-1.Но когда я изменяю файл .tfvars для создания второго экземпляра (в дополнение к первому), он говорит, что должен уничтожить первый экземпляр.Как запустить модуль для «добавления» экземпляра вместо «замены экземпляра»?Я знаю, что первый экземпляр, который был создан, находится в terraform.tfstate.Но это не объясняет невозможность «добавить» экземпляр.

Возможно, я ошибаюсь, но я смотрю на «модули» (и его конфигурационные файлы) как на функции, чтобы я мог вызывать их в любое время с разными параметрами.Это не похоже на случай.

1 Ответ

1 голос
/ 12 мая 2019

Terraform будет пытаться поддерживать развернутые ресурсы в соответствии с вашим определением ресурсов.Если вы хотите два экземпляра одновременно, то вам следует описать их оба в файле .tf.

Пример.те же случаи, добавьте счет к вашему определению

resource "some_resource" "example" {
  count = 2
  name = "example-${count.index}"
}

Пр.два разных ресурса с конкретными значениями

resource "some_resource" "example-1" {
  name = "example-1"
  size = "small"
}
resource "some_resource" "example-2" {
  name = "example-2"
  size = "big"
}

Лучше вы можете установить конкретные значения в tfvars для каждого ресурса

resource "some_resource" "example" {
  count = 2
  name = "example-${count.index}"
  size = ${vars.mysize[count.index]}
}
variable mysize {}

с файлом tfvars:

mysize = ["small", "big"]
...