如何扩展 GCP 部署管理器的 jinja 内部导入

如何扩展 GCP 部署管理器的 jinja 内部导入

我有一个部署管理器模板/架构,我想根据我调用的 template.yaml 动态包含 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 不知道如何处理。

有没有办法强制为 jinja 处理这些导入而不是仅仅插入原始内容?

答案1

相关内容