Helm-2: 創建自己的Chart


首先, 創建一個Chart: helm create mychart
接下來, 討論的假設前提是你已經熟悉Go Template的基本用法.

Flatten

configSvcName: mysrv
configSvcUrl: http://example.com

Use Flatten

name: "{{ .Values.configSvcName }}
url: "{{ .Values.configSvcUrl }}

Nested

config:
  svc:
    name: mysrv
    url: http://example.com

Use Nested

name: "{{ .Values.config.svc.name }}"
url: "{{ .Values.config.svc.url }}"
移除左側/右側空格: -

通過在分隔符左側或右側增加-, 能夠起到移除左側或右側所有空白的效果, 例如:

"{{23 -}} < {{- 45}}"

生成的字符串是:

23<45

此外, -也可以用來減少空格浪費的空間, 例如一些帶縮進的控制語句if/else/with/for等, 本身不會嵌入到最終生成的YAML中, 但我們為了查看方便, 會對其增加縮進和換行, 這些空白沒有必要帶進最終渲染出的YAML中:

{{- with .Values.affinity }}
  affinity:
    {{- toYaml . | nindent 8 }}
{{- end }}

需要注意, 換行本身也是空白字符!

管道: |

與Linux下的命令管道類似, Go Template中同樣也可以使用管道, 例如:

{{ "abc" | upper }}

生成:

ABC

轉義字符串: quote

yaml在處理數字,字符串和注釋時存在微妙的變化, 為了安全的轉義它們, 可以使用quote:

{{ .Values.text | quote }}

{{ quote .Values.text }}

左側增加N個空格縮進: nindent N

由於yaml通過縮進來區分層級, 在編寫Kubernetes的yaml文件時, 可以結合 - 和 nindent, 來精確的制造偏移, 防止直接編輯空格出現失誤, 而肉眼難以檢查.

affinity:
  {{- toYaml . | nindent 8 }}

默認值: default XXX

drink: {{ .Values.favorite.drink | default "tea" | quote }}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM