Я использую terraform для настройки VPS кластера.
Это работает уже довольно хорошо. Я определил variable
с именем instance_size
, который по умолчанию установлен на 1gb
. Я настраиваю несколько VPS с точно такой же конфигурацией, используя параметр count
в моем определении resource
:
variable "swarm_instance_size" {
default = "1gb"
}
resource "digitalocean_droplet" "server" {
image = "123456"
size = "${var.instance_size}"
count = "3"
name = "${format("server-%02d", (count.index + 1))}"
region = "sfc1"
}
(исключая ключи SSH и провайдеров для краткости)
Теперь у меня вопрос, как лучше масштабировать по вертикали только один из этих ресурсов.
Я могу масштабировать их все без простоев, увеличив instance_size
, например, 2gb
и выполнив terraform apply --parallelism 1
, так что только один ресурс обновляется за один раз.
Я также могу нацелить только один из этих ресурсов, используя terraform apply -target digitalocean_droplet.server[0] -var instance_size=2gb
. Проблема заключается в том, что это приводит к неожиданному отклонению конфигурации, поскольку я не объявлял об этом изменении нигде, кроме как при выполнении команды.
Является ли единственный и лучший способ объявить каждый из этих серверов как единый ресурс без параметра count? И если я хочу добавить новый сервер вместо увеличения параметра count, я просто добавлю другое определение ресурса в мою конфигурацию terraform?