Terraform Template
30/01/2019
Небольшая заметка про шаблоны в Terraform. До terraform 0.12
шаблоны обрабатываются отдельным провайдером terraform-provider-template
, который идет в качестве плагина из коробки. В будущем обработку шаблонов планируют сделать на базе templatefile
встроенной функции. Итак давайте создадим пару файлов – описание конфигурации
data "template_file" "alpha" {
template = "${file("alpha.tpl")}"
vars = {
x = "X"
y = "Y"
}
}
и непосредственно шаблон
${x} and ${y}
Можно передать переменные через аргумент vars
, на которые потом сослаться в шаблоне посредством стандартного синтаксиса интерполяции.
Важно то, что интерполяция не будет выполнена до тех пор, пока не пройдет применение конфигурации с помощью terraform apply
и не обновится состояние инфраструктуры.
$ terraform init
$ terraform apply
data.template_file.alpha: Refreshing state...
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
$ terraform console
> data.template_file.alpha.rendered
X and Y
> exit
Свойство rendered
ресурса данных template_file
как раз позволяет взять финальный результат рендеринга в виде строки.
А еще удобно эксперементировать однострочниками в таком виде:
$ echo data.template_file.alpha.rendered | terraform console
X and Y