我正在使用 Helm 圖表,我想知道如何在默認情況下定義一個值。就我而言,我想定義一個未在 values.yaml 中定義的日期,并且我有以下代碼:
{{- if ne .Value.persistence.home.restoreBackup.date "" }}
{{- $bkDate := .Value.persistence.home.restoreBackup.date }}
{{- else }}
{{- $bkDate := "2022-01-01" }}
{{- end }}
如果未定義$bkDate ,我想將其設定為特定日期,.Value.persistence.home.restoreBackup.date但是當我嘗試列印$bkDate時,它??是空的。
你知道這里有什么問題嗎?
uj5u.com熱心網友回復:
Gotext/template檔案說明(在“變數”下):
變數的范圍擴展到宣告它的控制結構(“if”、“with”或“range”)的“結束”動作......
這實質上意味著您不能在塊內定義變數if并使其在塊外可見。
對于您想要做的事情,Helmdefault功能提供了一個簡單的解決方法。您可以無條件地定義變數,但它的值是 Helm 值,或者如果未定義,則為默認值。
{{- $bkDate := .Value.persistence.home.restoreBackup.date | default "2022-01-01" -}}
(請注意,除了空字串之外,還有一些東西是“假”的default,包括“未設定”、“空串列”nil和“空串列”,但實際上這對你來說并不重要。)
如果您需要比這更復雜的邏輯,那么該ternary函式可以滿足您的需求{{- $var := $someCondition | ternary "trueValue" "falseValue" -}},但這會導致難以閱讀的運算式,最好重構以避免這種情況。
uj5u.com熱心網友回復:
嘗試
{{- if ((.Value.persistence.home.restoreBackup).date) }}
{{- $bkDate := .Value.persistence.home.restoreBackup.date }}
{{- else }}
{{- $bkDate := "2022-01-01" }}
{{- end }}
您可以檢查 with 選項:https ://helm.sh/docs/chart_template_guide/control_structures/#modifying-scope-using-with
{{ with PIPELINE }}
# restricted scope
{{ end }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/472490.html
