Как расширить Jinja внутри импорта для GCP Deployment Manager
У меня есть шаблон / схема диспетчера развертывания, и я хочу динамически включать различные параметры сценария запуска для cloud-init в зависимости от вызываемого мной шаблона. В моем template.jinja у меня есть:
metadata:
items:
- key: startup-script
value: |
{{ imports['startup-script-pre']|indent(14, true) }}
{{ imports['startup-script-custom']|indent(14, true) }}
{{ imports['startup-script-post']|indent(14, true) }}
Все импортные данные включены в окончательный вывод, однако jinja2 внутри них не обрабатывается, он оставляет такие вещи, как {{ env["name"] }}, чтобы cloud-init мог завершиться с ошибкой. Внутри консоли GCP расширенная конфигурация выглядит следующим образом:
systemctl daemon-reload
systemctl enable {{ env["name"] }}
systemctl start {{ env["name"] }}
который, очевидно, cloud-init не имеет ни малейшего понятия, как с этим бороться.
Есть ли способ заставить этот импорт обрабатываться для дзиндзя, а не просто вставлять сырье?
1 ответ
В примерах есть пример:
- Этот файл дзиндзя:
- Отображается в ключе метаданных виртуальной машины: