如何在 GCP Deployment Manager 的導入中擴展 jinja

如何在 GCP Deployment Manager 的導入中擴展 jinja

我有一個 Deployment Manager 範本/架構,我想根據我呼叫的 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

相關內容