情况:我们有多个盐配方,其中包含某些支柱配置选项,在我们的环境中,它们是相同的。例如,他们对上游服务使用相同的URL。我们希望避免在多个支柱位置重复这些值(我们想要一个单一的真实点),但我们不希望以共享支柱键的方式编写公式(正交性对灵魂有益)。
在我看来,正确的做法是让一个支柱文件带有“共享”值,并从那里将它们导入到特定于公式的支柱文件中的适当位置。例如:
# pillar/shared.sls
upstream: https://example.com/youarehere
# pillar/formula1.sls
{%- from shared import upstream %}
formula1:
upstream_uri: {{ upstream }}
# pillar/formula2.sls
{%- from shared import upstream %}
formula2:
upstream_url: {{ upstream }}
# and so on...
当然,这不符合书面规定。这样做的正确方法是什么?
答案 0 :(得分:5)
试试这个:
<强>支柱/ shared.sls 强>
upstream: https://example.com/youarehere
<强>支柱/ formula1.sls 强>
{% import_yaml "shared.sls" as defaults %}
formula1:
upstream_uri: {{ defaults.upstream }}
<强>支柱/ formula2.sls 强>
{% import_yaml "shared.sls" as defaults %}
formula2:
upstream_url: {{ defaults.upstream }}