【问题标题】:How do I shared a schema between templates?如何在模板之间共享架构?
【发布时间】:2019-10-13 21:55:59
【问题描述】:

https://cloud.google.com/deployment-manager/docs/configuration/templates/using-schemas

我使用的 jinja 模板依赖于其他 jinja 模板,所以我必须使用模式来导入它们

这是我所有的架构:

#top-level-template1.jinja.schema
imports:
- path: sub-template.jinja

然后在我的顶级模板中我有这个:

# top-level-template1.jinja
resources:
  - name: myresource
    type: sub-template.jinja

我想创建多个使用相同子模板(top-level-template1.jinjatop-level-template2.jinjatop-level-template2.jinja 等)的顶级模板

我真的必须为每一个都创建一个架构文件吗?我可以以某种方式在它们之间共享相同的架构吗?复制很多次然后给它起一个不同的名字,我会觉得很愚蠢

【问题讨论】:

    标签: google-cloud-platform google-deployment-manager


    【解决方案1】:

    虽然只能使用模式导入模板,但一种解决方法是使用 configuration file 导入所有需要的模板,并可以混合使用 Jinja 和 Python 模板。

    # configuration.yaml
    
    imports:
    - path: template-a.jinja
    - path: template-b.py
    
    resources:
    - name: some-name
      type: template-a.jinja
      properties:
        zone: us-central1-a
    
    - name: another-name
      type: template-b.py
      properties:
        zone: us-east1-b
    

    如果此解决方法不适合您的需求,也许您可​​以提交feature request to have this implemented

    【讨论】:

    • 我使用 jinja 模板,但不是配置文件。您不能像使用 jinja 模板(使用 --properites)那样从命令行将参数传递给配置文件
    • 如果这不适合您的特定需求,最好提交功能请求以实现它。
    猜你喜欢
    • 1970-01-01
    • 2014-08-23
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多