Используя count.index в terraform?
Я пытаюсь сгенерировать кучу файлов из шаблонов - мне нужно заменить жестко закодированный 1 на count.index, не уверенный, какой формат terraform нам позволит использовать.
resource "local_file" "foo" {
count = "${length(var.files)}"
content = "${data.template_file.tenant_repo_multi.1.rendered}"
#TODO: Replace 1 with count index.
filename = "${element(var.files, count.index)}"
}
data "template_file" "tenant_repo_multi" {
count = "${length(var.files)}"
template = "${file("templates/${element(var.files, count.index)}")}"
}
variable "files" {
type = "list"
default = ["filebeat-config_filebeat.yml",...]
}
я бегу
Terraform v0.11.7
+ provider.gitlab v1.0.0
+ provider.local v1.1.0
+ provider.template v1.0.0
1 ответ
Решение
Вы можете перебирать tenant_repo_multi
источник данных вот так -
resource "local_file" "foo" {
count = "${length(var.files)}"
content = "${element(data.template_file.tenant_repo_multi.*.rendered, count.index)}"
filename = "${element(var.files, count.index)}"
}
Однако вы рассматривали возможность использования ресурса template_dir в поставщике шаблонов Terraform. Пример ниже -
resource "template_dir" "config" {
source_dir = "./unrendered"
destination_dir = "./rendered"
vars = {
message = "world"
}
}