плохо знаком с терраформ.Использование терраформ 0.12.Я пытаюсь терраформировать наши настройки Cloudflare.
Необходимо создать несколько ресурсов одного типа (ресурс page_rule провайдера cloudflare) и передать значения ресурсу "template" с помощью config.tfvars.
Я объявил переменную типа list (object ({...})).
Нужно, чтобы некоторые параметры объекта были необязательными, поэтому, если записи не указаны в config.tfvars для некоторых изэлементы списка, ресурсы создаются без них.
Я читал о нулевых значениях переменных по умолчанию в terraform 0.12, но я не уверен, что есть способ указать значение по умолчанию для параметров объектов terraform.Все примеры, которые я видел, указывают только тип параметров.
Пример кода:
variables.tf
variable "example_page_rule"{
type = list(object({
cache_level = string,
ssl = string,
target = string
}))
}
main.tf
resource "cloudflare_page_rule" "page_rule" {
count = length(var.example_page_rule)
cache_level = var.example_page_rule[count.index].cache_level
ssl = var.example_page_rule[count.index].ssl
target = var.example_page_rule[count.index].target
}
config.tfvars
page_rules = [
{
target = "www.target-url.com",
ssl = "flexible",
cache_level = "simplified",
},
{
target = "www.target-url.com",
cache_level = "simplified"
}
]
При попытке планирования с использованием вышеуказанной конфигурации возникает ошибка: требуется значение "ssl".
Если я изменю config.tfvars на следующее, всеработает как положено config.tfvars, но я бы хотел избежать ввода нулевых значений, если это возможно.
page_rules = [
{
target = "www.target-url.com",
ssl = "flexible",
cache_level = "simplified",
},
{
target = "www.target-url.com",
ssl = null,
cache_level = "simplified"
}
]