0Pricing
Helm Academy · レッスン

ライブラリのデフォルトをローカルでオーバーライドする

利用側ごとに共有テンプレートをカスタマイズします。

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

共有するが、固定的ではない

優れたLibraryは適切なデフォルト値を設定しつつ、利用側が調整できるようにします。主な調整手段は、partialがレンダリング時に読み取るvaluesです。

valuesで動作を制御する

partialは.Valuesを読み取るため、独自のvalues.yamlで該当するキーを設定するだけで、共有出力をチャートごとにカスタマイズできます。

# your values.yaml
image:
  repository: nginx
  tag: "1.27"

ライブラリは default に依存する

適切に記述されたパーシャルでは、値の読み取りを default 関数でラップします。これにより、値が未設定でも空のまま描画されず、適切にフォールバックされます。

replicas: {{ .Values.replicaCount | default 1 }}

そのキーだけをオーバーライドする

デフォルト値を1つ変更するには、values でそのキーだけを設定します。ライブラリは他のフォールバックをすべて保持するため、必要最小限だけをオーバーライドできます。

# your values.yaml
replicaCount: 3

パーシャル全体をオーバーライドする

より大きな変更が必要ですか?独自のチャートで名前付きテンプレートを再定義します。同じ名前に対する最後の define が優先されるため、ライブラリのバージョンが自分のバージョンに置き換わります。

{{- define "common.labels" -}}
team: payments
{{- end -}}

最後の定義が優先される

2つのチャートが同じテンプレート名を define すると、Helm は後から読み込まれた方を使用します。アプリケーションチャートで、意図的にライブラリのパーシャルをシャドーイングできます。

置き換えずにラップする

多くの場合、よりすっきりする方法があります。ライブラリのパーシャルを includes する新しいパーシャルを定義し、追加のフィールドを後から加えます。これなら、上流のロジックを失わずに拡張できます。

{{- define "app.labels" -}}
{{ include "common.labels" . }}
tier: backend
{{- end -}}

カスタムスコープを渡す

ルートのドットを渡す代わりに、パーシャルへ絞り込んだコンテキストを渡します。これにより、values のサブツリーから読み取り、呼び出しごとに出力の形を変えられます。

{{ include "common.resources" .Values.web }}

マージ済みのコンテキストを構築する

さらに細かく制御するには、ルートとオーバーライドを混ぜた dict を構築して渡します。パーシャルからは、組み立てた値だけが正確に見えるようになります。

{{ include "common.tpl" (dict "top" . "name" "web") }}

オーバーライドが反映されたことを確認する

オーバーライド後は必ず helm template を実行し、values または再定義したパーシャルによって、意図したマニフェストが生成されたことを確認します。

helm template my-release . | grep replicas

オーバーライドは最小限にする

まずは values を活用し、必要な場合にだけパーシャルを再定義します。小さく局所的なオーバーライドにとどめると、チャートをライブラリのアップグレードに合わせやすくなります。

確認問題

あなたのチャートとそのライブラリが、どちらも common.labels を定義しています。Helm は実際にはどちらの定義を使用しますか?

まとめ:ローカルオーバーライド

まずは values でライブラリをカスタマイズし、必要に応じてパーシャルを再定義またはラップし、カスタムスコープを渡します。その後、helm template で確認します。✅

よくある質問

「ライブラリのデフォルトをローカルでオーバーライドする」レッスンは無料ですか?

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

「ライブラリのデフォルトをローカルでオーバーライドする」で何を学びますか?

利用側ごとに共有テンプレートをカスタマイズします。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「ライブラリのデフォルトをローカルでオーバーライドする」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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