2015-09-23 26 views
1

情況:我們有多種鹽配方,在我們的環境中,它們具有相同的柱狀配置選項。例如,他們對上游服務使用相同的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... 

當然,這不符合書面。什麼是正確的方法來做到這一點?

回答

4

試試這個:

支柱/ 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 }} 
相關問題