Ресурс плана terraform cloudflare_list всегда требует обновления на месте без изменений
Я использовал код terraform, как в примере ниже , чтобы успешно создать список IP-адресов:
resource "cloudflare_list" "example" {
account_id = "f037e56e89293a057740de681ac9abbe"
name = "example_list"
description = "example IPs for a list"
kind = "ip"
item {
value {
ip = "192.0.2.0"
}
comment = "one"
}
item {
value {
ip = "192.0.2.1"
}
comment = "two"
}
}
Однако всегда хочет поменять местами элементы, например:
# cloudflare_list.example will be updated in-place
~ resource "cloudflare_list" "example" {
id = "xxxxxxxxxxxxxxxxxxxxxx"
name = "example_list"
# (3 unchanged attributes hidden)
~ item {
~ comment = "one" -> "two"
~ value {
~ ip = "192.0.2.0" -> "192.0.2.1"
}
}
~ item {
~ comment = "two" -> "one"
~ value {
~ ip = "192.0.2.1" -> "192.0.2.0"
}
}
}
Это список, так что меня не волнует, что он поменяется местами, поэтому я так и сделал.apply
, надеясь, что это было одноразово. я получилApply complete! Resources: 0 added, 1 changed, 0 destroyed.
Но еще раз, следующийterraform plan
показывает то же самое. В пользовательском интерфейсе Cloudflare список не изменился. Как исправить этот цикл, чтобы получить желаемое «Ваша инфраструктура обновлена»? Спасибо.
Моя конфигурация:
Terraform v1.3.3
on linux_amd64
+ provider registry.terraform.io/cloudflare/cloudflare v3.26.0
1 ответ
Это известная ошибка, проверьте https://github.com/cloudflare/terraform-provider-cloudflare/issues/1827 .
Обходной путь включает изменение порядка элементов в вашем манифесте, чтобы он соответствовал внутреннему порядку cloudflare. Попробуйте следующее:
resource "cloudflare_list" "example" {
account_id = "f037e56e89293a057740de681ac9abbe"
name = "example_list"
description = "example IPs for a list"
kind = "ip"
item {
value {
ip = "192.0.2.1"
}
comment = "two"
}
item {
value {
ip = "192.0.2.0"
}
comment = "one"
}
}
Согласно этому комментарию
Небольшой обходной путь, по-видимому, заключается в том, что элементы списка в терраформе точно соответствуют порядку, в котором он был создан (поэтому вручную переупорядочивают список в терраформе после его применения). Кажется, что он тесно связан с буквенно-цифровой сортировкой, что позволяет последующему плану / применению не требовать изменений.
Редактировать: сортировка на самом деле буквенно-цифровая, но вам нужно удалить специальные символы, такие как /-_, а затем отсортировать список, поэтому следующий правильный порядок, как его видит Cloudflare: