Helm目錄結構講解

roc_guo發表於2020-12-21

Helm目錄結構講解Helm目錄結構講解

Charts檔案組織結構

一個Charts就是按特定格式組織的目錄結構,目錄名即為Charts名,目錄名稱本身不包含版本資訊。目錄結構中除了charts/和templates/是目錄之外,其他的都是檔案。它們的基本功用如下。

Chart.yaml:當前Charts的描述資訊,yaml格式的檔案。

LICENSE:當前Charts的許可證資訊,純文字檔案;此為可選檔案。

README.md:易讀格式的README檔案;可選。

requirements.yaml:當前Charts的依賴關係描述檔案;可選。

values.yaml:當前Charts用到的預設配置值。

charts/:目錄,存放當前Charts依賴到的所有Charts檔案。

templates/:目錄,存放當前Charts用到的模板檔案,可應用於Charts生成有效的Kuber-netes清單檔案。

templates/NOTES.txt:純文字檔案,Templates簡單使用註解

儘管Charts和Templates目錄均為可選,但至少應該存在一個Charts依賴檔案或一個模板檔案。另外,Helm保留使用charts/和templates/目錄以及上面列出的檔名稱,其他檔案都將被忽略。

Chart.yaml檔案組織格式

Chart.yaml用於提供Charts相關的各種後設資料,如名稱、版本、關鍵詞、維護者資訊、使用的模板引擎等,它是一個Charts必備的核心檔案,主要包含以下欄位。

name:當前Charts的名稱,必選欄位。

version:遵循語義化版本規範第2版的版本號,必選欄位。

description:當前專案的單語句描述資訊,可選欄位。

keywords:當前專案的關鍵詞列表,可選欄位。

home:當前專案的主頁URL,可選欄位。

sources:當前專案用到的原始碼的來源URL列表,可選欄位。

maintainers:專案維護者資訊,主要巢狀name、email和URL幾個屬性組成;可選欄位。

engine:模板引擎的名稱,預設為gotpl,即go模板。

icon:URL,指向當前專案的圖示,SVG或PNG格式的圖片;可選欄位。

appVersion:本專案用到的應用程式的版本號,可選欄位,且不必為語義化版本。

tillerVersion:當前Charts依賴的Tiller版本號,可以是語義化版本號的範圍,如“>2.4.0”;可選欄位。

Charts中的依賴關係

Helm中的一個Charts可能會依賴不止一個其他的Charts,這種依賴關係可經requirements.yaml進行動態連結,也可直接儲存於charts/目錄中進行手動管理。

requirements.yaml檔案

requirements.yaml檔案本質上只是一個簡單的依賴關係列表,可用欄位具體如下。

name:被依賴的Charts的名稱。

version:被依賴的Charts的版本。

repository:被依賴的Charts所屬的倉庫及其URL;如果是非官方的倉庫,則需要先用helm。

repo add 將其新增進本地可用倉庫。

alias:為被依賴的Charts建立一個別名,從而讓當前Charts可以將所依賴的Charts對應到新名稱,即別名;可選欄位。

tags:預設情況下所有的Charts都會被裝載,若給定了tags,則僅裝載那些匹配到的Charts。

condition:類似於tags欄位,但需要透過自定義的條件來指明要裝載的charts。

import-values:匯入子Charts中的的值;被匯入的值需要在子charts中匯出。

Charts目錄

若需要對依賴關係進行更多的控制,則所有被依賴到的Charts都能以手工方式直接複製到Charts目錄中。一個被依賴到的Charts既可以是歸檔格式,也可以是展開的目錄格式,不過,其名稱不能以下劃線(_)或點號(.)開頭,此類檔案會被Charts裝載器自動忽略。

例如,Wordpress Charts依賴關係在其Charts目錄中的反映類似如下所示:
Helm目錄結構講解Helm目錄結構講解

Helm

Charts模板(template)遵循Go模板語言格式,並支援50種以上的來自Spring庫的模板函式附件,以及為數不少的其他專用函式。所有的模板檔案都儲存於Templates目錄中,在當前Charts被Helm引用時,此目錄中的所有模板檔案都會傳遞給模板引擎進行處理。模板檔案中用到的值(value)有如下兩種提供方式。□透過Charts的values.yaml檔案提供,通常用於提供預設值。□在執行“helm install” 時傳遞包含所需要的自定義值的YAML檔案;此處傳遞的值會覆蓋預設值。

原文來自: https://www.cuiliangblog.cn/blog/show-112/

本文地址:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2743835/,如需轉載,請註明出處,否則將追究法律責任。

相關文章