介紹#
Helm 是 Kubernetes 的一個套件管理工具,可以用來簡化應用程式的部署和管理。它使用稱為 Chart 的包裝格式來定義應用程式的各種資源,並提供了一個簡單的命令列介面來安裝、升級和管理這些應用程式。
函數#
Helm 提供了一些內建函數,可以在 Chart 的模板中使用。這些函數可以用來處理字串、數字、日期等資料類型,並提供了一些常用的功能,可以幫助開發者更方便地編寫和維護 Helm Chart。
quote#
將字符串使用雙引號包裹起來。
⭐️ sqoute 表示單引號。
userName: User1{{ .Values.userName | quote }}得到結果: “User1”
{{ .Values.userName | squote }}得到結果: ‘User1’
replace#
字串替換。
"I Am Henry VIII" | replace " " "-"得到結果: I-Am-Henry-VIII
dict#
傳遞 key 和 value 來創建一個 map。
{{ $myDict := dict "key1" "value1" "key2" "value2" }}得到結果:
{
"key1": "value1",
"key2": "value2"
}fromYaml#
將 YAML 字串轉換為 Object。
filePath: yamls/person.yaml
name: Bob
age: 25
hobbies:
- hiking
- fishing
- cooking{{- $person := .Files.Get "yamls/person.yaml" | fromYaml }}得到結果:
{
"name": "Bob",
"age": 25,
"hobbies": [
"hiking",
"fishing",
"cooking"
]
}merge, mergeOverwrite#
⚠️ 注意目標 dst 優先
dst:
default: default
overwrite: me
key: true
src:
overwrite: overwritten
key: false{{- $newdict := merge .Values.dst .Values.src }}得到結果:
newdict:
default: default
overwrite: me
key: true如果要以 src 為優先,可以使用 mergeOverwrite 函數。
{{- $newdict := mergeOverwrite .Values.dst .Values.src }}得到結果:
newdict:
default: default
overwrite: overwritten
key: falseomit#
類似 pick,用於從 map 中排除指定的 key。
volumeMounts:
- name: my-volume
mountPath: /data
claimName: my-pvc{{- range $mount := .volumeMounts }}
{{- $cleanMount := omit $mount "claimName" }}
{{- end }}得到結果:
volumeMounts:
- name: my-volume
mountPath: /dataappend#
在已有陣列中追加一個元素,建立一個新的陣列。
myArray:
- element1
- element2
- element3{{- $newArray := append .Values.myArray "newElement" }}得到結果:
newArray:
- element1
- element2
- element3
- newElement











