So erweitern Sie Jinja in Importen für GCP Deployment Manager

So erweitern Sie Jinja in Importen für GCP Deployment Manager

Ich habe eine Vorlage/ein Schema für den Deployment Manager und möchte dynamisch verschiedene Startskriptoptionen für Cloud-Init einbinden, je nachdem, welche Datei template.yaml ich aufrufe. In meiner template.jinja habe ich:

      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) }}

Alle Importe sind in der endgültigen Ausgabe enthalten, das darin enthaltene Jinja2 wird jedoch nicht verarbeitet. Es bleiben Dinge wie {{ env["name"] }} darin, an denen Cloud-Init fehlschlagen kann. In der GCP-Konsole sieht die erweiterte Konfiguration folgendermaßen aus:

systemctl daemon-reload
systemctl enable {{ env["name"] }}
systemctl start {{ env["name"] }}

und Cloud-Init weiß offensichtlich nicht, wie es damit umgehen soll.

Gibt es eine Möglichkeit, die Verarbeitung dieser Importe für Jinja zu erzwingen, anstatt sie einfach im Rohzustand einzufügen?

Antwort1

verwandte Informationen