Helm 3.0 - 12 / Chart information and Subchart
Helm3について その12
というわけで、今日は続きでCharts
チャートに含めるテキストファイル3種
インストール・設定/使い方/ライセンスについてはテキストファイルで含める事が出来る
LICENSE
チャートのライセンス情報。チャートそのものと、インストールされるアプリケーションのライセンス等。
README.md
通常は 以下の情報をマークダウンとして書いておく
- アプリケーション/サービスについての詳細
- インストール要件等
- values.yamlの詳細と デフォルト値
- その他
templates/NOTES.txt
インストレーション後に表示される情報で、テンプレートを使ってレンダリング出来るところが大きく違う点。
- 使い方
- 設定された情報
- 次にすべき事
- その他
例としては データベースへの接続の仕方、Web UIへのアクセスURL等。
チャートの依存関係/subchart
チャートは他のチャートを利用して、ダイナミックにリンクする形で作る事が出来る。
dependenciesフィールド(Chart.yaml)
Chart.yamlの dependenciesフィールドに 依存関係を羅列する
チャートのapiVersionが v1の場合には Chart.yaml ではなく requirements.yaml に書く
chartsフォルダ
直接 charts/ の下にチャートを直接置く事も可能。
helm dependency updateコマンドを実行すると、dependenciesフィールドに書かれた チャートが レポジトリからダウンロードされる。
サブチャートのvaluesを設定する
サブチャートのvaluesを変更したい場合にはサブチャート名のフィールドを作れば良い
mychart:
data: hogehoge
subchart:
data: hehehehe
global:
data: foobar
これで subchartというチャートの valuesは 親チャートの subchart配下が渡される事になる。
親チャートの情報にアクセスしたい場合、global というキーで定義しておくと全てのサブチャートから同じ.Values.globalで参照する事が出来る。
サブチャートの別名定義/alias
例えば複数のデータベースを利用したい場合、同じチャートから複数のリリースを作り出す必要がある。 この場合、サブチャートにaliasを設定する事で複数のリリースを個別のalias名で管理する事が出来る
aliasを chartsフォルダに直書きしたチャートで実現したい場合、単純に別フォルダでコピーして実現する。
サブチャートの読み込み条件
通常全てのチャートが読み込まれるが、tagsか conditionが定義されていると 読み込みを制御する事が出来る。
conditionによる制御
conditionには YAMLのPATHを定義する。もし、そのパスが存在して booleanの値が設定されていた場合、そのサブチャートは trueであれば 読み込まれ、falseであれば読み込まれなくなる。
パスは,セパレートで複数書く事も出来るが、最初に有効なパスが見つけられた場合、そのパスだけが評価される。もしも有効なパスが見つけられなかった場合にはconditionは何も効果を持たない。
tagsによる制御
タグは 同じタグを持つチャートを まとめて制御するのに使える。
dependencies:
- name: subchart
repository: "http://localhost:10191"
version: "0.1.0"
tags:
- front-end
このサブチャートはfront-endタグで制御する事が出来る。
values側では以下のように定義しておく。
tags:
front-end: false
これで front-endタグを持つサブチャートは全て無効に設定される。
conditionとtagsの優先順位
conditionとtagsの両方が存在した場合、有効なcondition設定はtagsよりも優先される。
次
明日はサブチャートの値を、その親チャートから参照する方法。import-valuesの使い方