включить шаблон terraform в другой шаблон

У меня есть много файлов шаблонов, которые используются скриптами terraform, все файлы шаблонов имеют какую-то общую часть, то есть:

file a.tmpl:

env=prod
var=a
-------------------
file b.tmpl:

env=prod
var=b

Я хотел бы экспортировать общую часть в отдельный файл, чтобы ее не приходилось повторять в каждом файле, например:

file base.tmpl:
env=prod
-------------------
file a.tmpl:

%{ include "base.tmpl" }
var=a
-------------------
file b.tmpl:

%{ include "base.tmpl" }
var=b

но эта функция не существует

(это очень похоже на функцию django шаблонов, описанную здесь: https://stackoverflow.com/a/10985987/245024 )

есть ли способ как-то включить включение?


Мне удалось найти обходной путь, объединив файлы следующим образом:

data "template_file" "vars_a" {
  template = "${format("%s \n %s", 
    file("${path.module}/base.tmpl"), 
    file("${path.module}/a.tmpl")
   )}"
}

но это более ограничительно, чем включение базового шаблона непосредственно в файл.


person lev    schedule 26.03.2021    source источник


Ответы (1)


Я думаю, вы могли бы использовать файл шаблона:

a.tmpl

${file("base.tmpl")}
var=a

base.tmpl

var_ddd=ffff
var_sss=adfs

main.tf

data "template_file" "vars_a" {
  template = templatefile("a.tmpl", {})
}

output "test" {
  value = data.template_file.vars_a.template
}
person Marcin    schedule 26.03.2021