我想創建一個模板檔案,它可以作為常規值與串列互動。基本上,回圈它們。換句話說,想象一下以下 2 個檔案:
values1.yaml
jobs:
single: true
foo: bar
kek: bor
和
values2.yaml
jobs:
- foo: bar
kek: bor
- foo: rab
kek: rob
如何創建適用于兩個值檔案的模板?我個人想過通過執行以下操作將第一個檔案注入串列中:
{{ if Values.jobs.single }}
{{ $myList := list .Values.jobs }}
{{ else }}
{{ $myList := .Values.jobs }}
{{- end }}
{{- range $myList }}
...
不幸的是,這似乎不起作用,因為分配是本地的(因此只能在 if-else 塊中使用)。
uj5u.com熱心網友回復:
Helm 有幾個函式可以檢查物件的型別。這些通常使用 Go 術語,因此您通常在大多數語言中稱為“串列”的是 Go 中的“切片”。
為了簡化有關變數范圍的一些問題,我還只定義了一次變數,并使用該ternary函式來移動條件行內。
{{- $j := .Values.jobs }}
{{- $myList := kindIs "slice" $j | ternary $j (list $j) }}
{{- range $myList }}...{{ end }}
在更自然地支持行內條件的語言中,這相當于
j = values[:jobs]
my_list = if j.is_a?(Array)
then j
else [j]
end
my_list.each {|dict| ...}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/497057.html
標籤:模板 Kubernetes kubernetes-helm
上一篇:Helm-是否可以為其模板上的串列中的所有專案添加引號?
下一篇:一個版本如何參考其他版本?
