ライブラリのデフォルトをローカルでオーバーライドする
利用側ごとに共有テンプレートをカスタマイズします。
「ライブラリのデフォルトをローカルでオーバーライドする」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全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チューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「ライブラリのデフォルトをローカルでオーバーライドする」で何を学びますか?
利用側ごとに共有テンプレートをカスタマイズします。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「ライブラリのデフォルトをローカルでオーバーライドする」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ライブラリチャート型の宣言
- 再利用可能な名前付きテンプレートのエクスポート
- ライブラリを依存関係として利用する
- ライブラリのデフォルトをローカルでオーバーライドする