今天要來接著介紹 Helm 中通常用來存放變數的地方,就是 values.yaml
跟 _helpers.tpl
這兩個檔案。
首先先來說 values.yaml
,這個檔案從副檔名就可以大概猜出來如何撰寫,沒錯,就是使用 YAML 的方式來進行撰寫,那我就不多說,直接來個簡單的範例。
replicaCount: 1
image:
repository: postgres
tag: latest
service:
type: NodePort
port: 5432
nodeport: 30080
以上就是一個簡單的 values.yaml
範例,基本上就是想怎麼寫就怎麼寫,使用到的時候取的到就可以了。
接著就是要來介紹另一個存放變數的地方 _helpers.tpl
,這個檔案必須放在 templates 的資料夾底下,而且這個檔案血的方式也不太一樣,先上個範例:
{{/*
Name
*/}}
{{- define "mychart.name" -}}
{{- default .Chart.Name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Full Name
*/}}
{{- define "mychart.fullname" -}}
helmtest
{{- end -}}
{{/*
Label
*/}}
{{- define "mychart.selectorLabels" -}}
app: {{ include "mychart.name" . }}
{{- end -}}
{{/*
Service Label
*/}}
{{- define "mychart.labels" -}}
app: mychart-service
{{- end -}}
不知道各位有沒有看懂這個檔案在寫什麼,簡單來說,要定義一個變數,開頭的 define 跟結尾的 end 是必須的,至於 define 後面接的字串是變數名稱。中間的區塊則是變數的值,值可以長的奇形怪狀都沒關係,反正到時候 Helm 就原封不動的塞進去。至於在 define 前方的 {{/**/}}
刮起來的東西是註解。
經過這麼一解說,各位有沒有看懂了,至於這兩個檔案功能差在哪裡呢?
通常來說, values.yaml
會用來放比較常用且簡單的變數,例如 replica 的數量或是簡單的名稱之類的; _helpers.tpl
則會用來存放不常改變或結構較複雜的變數,例如整陀 YAML 之類的。
那麼今天就到這邊,明天接著介紹其他東西。