久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何使用chart模板

153次閱讀
沒有評論

共計 1682 個字符,預計需要花費 5 分鐘才能閱讀完成。

本篇文章給大家分享的是有關如何使用 chart 模板,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。

Helm 通過模板創建 Kubernetes 能夠理解的 YAML 格式的資源配置文件,我們將通過例子來學習如何使用模板。

以  templates/secrets.yaml  為例:

從結構看,文件的內容非常像 Secret 配置,只是大部分屬性值變成了 {{xxx}}。這些  {{xxx}}  實際上是模板的語法。Helm 采用了 Go 語言的模板來編寫 chart。Go 模板非常強大,支持變量、對象、函數、流控制等功能。下面我們通過解析  templates/secrets.yaml  快速學習模板。

① {{template mysql.fullname   定義 Secret 的  name。
關鍵字  template  的作用是引用一個子模板  mysql.fullname。這個子模板是在  templates/_helpers.tpl  文件中定義的。

這個定義還是很復雜的,因為它用到了模板語言中的對象、函數、流控制等概念。現在看不懂沒關系,這里我們學習的重點是:如果存在一些信息多個模板都會用到,則可在  templates/_helpers.tpl  中將其定義為子模板,然后通過  templates  函數引用。

這里  mysql.fullname  是由 release 與 chart 二者名字拼接組成。

根據 chart 的最佳實踐,所有資源的名稱都應該保持一致,對于我們這個 chart,無論 Secret 還是 Deployment、PersistentVolumeClaim、Service,它們的名字都是子模板  mysql.fullname  的值。

② Chart  和  Release  是 Helm 預定義的對象,每個對象都有自己的屬性,可以在模板中使用。如果使用下面命令安裝 chart:

helm install stable/mysql -n my

那么:
{{.Chart.Name}}  的值為  mysql。
{{.Chart.Version}}  的值為  0.3.0。
{{.Release.Name}}  的值為  my。
{{.Release.Service}}  始終取值為  Tiller。
{{template mysql.fullname   計算結果為  my-mysql。

③ 這里指定  mysql-root-password  的值,不過使用了  if-else  的流控制,其邏輯為:
如果  .Values.mysqlRootPassword  有值,則對其進行 base64 編碼;否則隨機生成一個 10 位的字符串并編碼。

Values  也是預定義的對象,代表的是  values.yaml  文件。而  .Values.mysqlRootPassword  則是  values.yaml  中定義的  mysqlRootPassword  參數:

因為  mysqlRootPassword  被注釋掉了,沒有賦值,所以邏輯判斷會走  else,即隨機生成密碼。

randAlphaNum、b64enc、quote  都是 Go 模板語言支持的函數,函數之間可以通過管道  |  連接。{{randAlphaNum 10 | b64enc | quote}}  的作用是首先隨機產生一個長度為 10 的字符串,然后將其 base64 編碼,最后兩邊加上雙引號。

templates/secrets.yaml  這個例子展示了 chart 模板主要的功能,我們最大的收獲應該是:模板將 chart 參數化了,通過  values.yaml  可以靈活定制應用。

無論多復雜的應用,用戶都可以用 Go 模板語言編寫出 chart。無非是使用到更多的函數、對象和流控制。對于初學者,我的建議是盡量參考官方的 chart。根據二八定律,這些 chart 已經覆蓋了絕大部分情況,而且采用了最佳實踐。

以上就是如何使用 chart 模板,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1682字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 通许县| 丹巴县| 鸡泽县| 廊坊市| 枞阳县| 格尔木市| 武强县| 嵩明县| 西林县| 盐源县| 郴州市| 论坛| 沐川县| 浦东新区| 湖南省| 饶阳县| 讷河市| 绥德县| 永嘉县| 广宁县| 泾阳县| 保定市| 萍乡市| 驻马店市| 玉林市| 丁青县| 松溪县| 梅州市| 威海市| 胶南市| 郸城县| 当阳市| 三门县| 阜宁县| 灵丘县| 玉门市| 绵阳市| 沈阳市| 祁东县| 南汇区| 江津市|