Как расширить 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 ответ

В примерах есть пример:

  • Этот файл дзиндзя:

https://github.com/GoogleCloudPlatform/deploymentmanager-samples/blob/7aa9cab/examples/v2/common/jinja/container_helper.jinja

  • Отображается в ключе метаданных виртуальной машины:

https://github.com/GoogleCloudPlatform/deploymentmanager-samples/blob/7aa9cab/examples/v2/common/jinja/container_instance_template.jinja

Другие вопросы по тегам