我的 TF 脚本正在创建 k8s 资源并基于template_file
.
然后我想将其传递给另一个模块(使用 GitLab 提供程序 - 将它们保存为 GitLab 变量)。
到目前为止,我只创建了一个 kubconfig,而且方法非常简单:
data "template_file" "kubeconfig_template" {
template = "${file("${path.module}/templates/kubeconfig.tpl")}"
vars = {...}
}
output "kubeconfig" {
value = data.template_file.kubeconfig_template.rendered
}
然后传递给 GitLab 模块:
module "gitlab" {
source = "./gitlab"
kubeconfig = module.kubernetes.kubeconfig
}
并用作:
resource "gitlab_group_variable" "kubeconfig_var" {
value = base64encode(var.kubeconfig)
...
}
但是如何为多个文件实现相同的效果?
我看到这count
也适用于数据,所以我可以定义:
data "template_file" "kubeconfig_templates" {
count = length(var.namespaces)
template = "${file("${path.module}/templates/kubeconfig.tpl")}"
vars = {...}
}
但随后output
不支持count
,并且我的“花式”强制循环解决方法似乎不起作用:
output "kubeconfigs" {
value = [
for namespace in var.namespaces :
data.template_file.kubeconfig_templates[index(var.namespaces, namespace)].rendered
]
}
你知道如何处理这样一个话题吗?