0Pricing
Helm Academy · レッスン

ライブラリチャート型の宣言

type を library に設定した場合の制約を学びます。

「ライブラリチャート型の宣言」はCoddyKit上の無料Helm Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHelm Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Helm Academyコースには全4レッスンが含まれています。

2種類のチャート

すべてのHelmチャートはChart.yamlでtypeを宣言します。デフォルトはapplicationですが、テンプレートロジックの共有だけを目的とするもう1つのtypeもあります。

# Chart.yaml
apiVersion: v2
name: my-app
type: application

Library Chartを使う

type: libraryを設定すると、そのチャートはインストールするものではなくなります。他のチャートが再利用できる名前付きテンプレートのツールボックスになります。

# Chart.yaml
apiVersion: v2
name: common
version: 0.1.0
type: library

Library Chartは何もレンダリングしない

Library Chartは単独ではKubernetesオブジェクトを生成しません。レンダリング時に利用側のチャートが呼び出すテンプレートを定義するだけです。

インストールはできない

Library Chartに対してhelm installを実行すると失敗します。デプロイするものがないため、Helmは仕様上このコマンドを拒否します。

helm install c ./common
# Error: library charts are not installable

トップレベルのtemplates出力はない

Library Chartのtemplatesフォルダー内のファイルはマニフェストとしてレンダリングされません。partialだけを定義し、YAMLを直接出力してはいけません。

アンダースコアの慣例

Helmはアンダースコアで始まるtemplates内のファイルをスキップします。Libraryのテンプレートファイルには、レンダリング対象にならないように_deployment.tplのような名前を付けます。

common/
  Chart.yaml
  templates/
    _deployment.tpl

apiVersion v2が必須

Library ChartはapiVersion: v2でのみ使用できます。Helm 2時代のv1チャートには、そもそもLibraryというtypeの概念がありませんでした。

# Chart.yaml
apiVersion: v2
type: library

通常のチャートと同じようにバージョン管理する

Libraryにも、利用側が固定できるようversionフィールドが必要です。単なるフォルダーではなく、正式なリリース成果物として扱ってください。

# Chart.yaml
name: common
version: 1.2.0
type: library

Library typeを使う理由

同じDeploymentのYAMLを10個のチャートにコピーする代わりに、Libraryに一度だけ記述し、すべてのチャートから取り込めます。

Bitnami Commonは代表的な例

広く使われているbitnami/commonチャートはLibraryです。数百のチャートが、共有ラベル、名前、イメージ用ヘルパーのために依存しています。

ApplicationとLibraryを比較する

applicationチャートはワークロードをデプロイし、libraryチャートはテンプレートを提供するだけです。Helmがどちらとして扱うかは、1つのtypeフィールドで決まります。

type: application  # installs resources
type: library      # shares templates

クイックチェック

Chart.yamlでtype: libraryを設定しました。この状態でhelm installを実行するとどうなりますか。

まとめ: Library Chartのtype

type: libraryのチャートは何もレンダリングせず、インストールもできません。他のチャートが再利用する名前付きテンプレートをパッケージするためだけに存在します。📦

よくある質問

「ライブラリチャート型の宣言」レッスンは無料ですか?

はい。「ライブラリチャート型の宣言」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Helm Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Helm Academyコースには全4レッスンが含まれています。

「ライブラリチャート型の宣言」で何を学びますか?

type を library に設定した場合の制約を学びます。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Helm Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのHelm Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ライブラリチャート型の宣言」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このHelm Academyレッスンでコードを書いて実行できますか?

はい。すべてのHelm Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ライブラリチャート型の宣言
  2. 再利用可能な名前付きテンプレートのエクスポート
  3. ライブラリを依存関係として利用する
  4. ライブラリのデフォルトをローカルでオーバーライドする
← Helm Academyに戻る