Moje TF skripty se vytváří k8s zdrojů a generování kubeconfig souborů na základě template_file
.
Které jsem pak chcete předat do další modul (který používá GitLab poskytovatele - uložit jako GitLab proměnných).
Až do teď jsem vytvářel pouze jeden kubconfig a přístup byl velmi jednoduchý:
data "template_file" "kubeconfig_template" {
template = "${file("${path.module}/templates/kubeconfig.tpl")}"
vars = {...}
}
output "kubeconfig" {
value = data.template_file.kubeconfig_template.rendered
}
a pak kolem GitLab modul s:
module "gitlab" {
source = "./gitlab"
kubeconfig = module.kubernetes.kubeconfig
}
a použití jako:
resource "gitlab_group_variable" "kubeconfig_var" {
value = base64encode(var.kubeconfig)
...
}
Ale jak toho dosáhnout stejné pro více než jeden soubor?
Vidím, že count
pracuje také na data, tak mohu definovat:
data "template_file" "kubeconfig_templates" {
count = length(var.namespaces)
template = "${file("${path.module}/templates/kubeconfig.tpl")}"
vars = {...}
}
ale pak output
nepodporuje count
a moje "fantazie" řešení s nuceným smyčky, nezdá se, že pracovat:
output "kubeconfigs" {
value = [
for namespace in var.namespaces :
data.template_file.kubeconfig_templates[index(var.namespaces, namespace)].rendered
]
}
Máte nějaký nápad, jak přistupovat k takové téma?