
У меня есть шаблон/схема Deployment Manager, и я хочу динамически включать различные параметры startup-script для cloud-init в зависимости от вызываемого мной template.yaml. В моем 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 Expanded Config выглядит так:
systemctl daemon-reload
systemctl enable {{ env["name"] }}
systemctl start {{ env["name"] }}
с чем, очевидно, cloud-init не имеет ни малейшего представления, как справиться.
Есть ли способ принудительно обрабатывать эти импорты для jinja, а не просто вставлять их в необработанном виде?
решение1
В примерах есть пример:
- Этот файл джинджа:
- Отображается в ключе метаданных виртуальной машины: