名前付き Template に Scope を渡す
Partial に適切な Context オブジェクトを渡します。
「名前付き Template に Scope を渡す」はCoddyKit上の無料Helm Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHelm Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Helm Academyコースには全4レッスンが含まれています。
partialにはコンテキストが必要
名前付きテンプレートが読み取れるのは、渡された情報だけです。includeの2番目の引数がスコープであり、partial内でドットが参照する対象になります。
{{ include "mychart.labels" . }}ドットがスコープになる
末尾のドットは現在のコンテキストです。ルートのドットを渡すと、partialから.Values、.Release、.Chartにアクセスできます。
スコープを忘れると壊れる
スコープを指定せずにpartialを呼び出すと、そのドットはnilになります。その中で.Valuesを参照すると、空として出力されるかエラーになります。
{{ include "mychart.name" }}ルートコンテキストを渡す
ほとんどのヘルパーはchart全体のコンテキストを想定しているため、通常のドットを渡します。標準ヘルパーを動作させる安全なデフォルトです。
{{ include "mychart.fullname" . }}サブオブジェクトを渡す
partialがvaluesの一部だけを必要とする場合もあります。その部分をsubtreeとして渡せば、partialのドットをまさにその対象に設定できます。
{{ include "mychart.ports" .Values.service }}partial内でドットが移動する
.Values.serviceを渡すと、partialのドットはそのオブジェクトになります。.Values.service.portではなく、.portを直接読み取ります。
{{- define "mychart.ports" -}}
port: {{ .port }}
{{- end -}}意図的にルートを手放す
スコープを絞ると便利ですが、.Releaseやグローバルなvaluesにはアクセスできなくなります。partialから見えるのは、渡したオブジェクトだけです。
dictで両方を渡す
サブツリーとルートの両方が必要ですか。小さなdictを作って渡し、partial内ではキーを使ってそれぞれの要素にアクセスしてください。
{{ include "mychart.tpl" (dict "top" . "svc" .Values.service) }}まとめたスコープを読み取る
partial内でdictをキーごとに取り出します。これで.topからルート、.svcからサブツリーにアクセスでき、両方を同時に利用できます。
{{- define "mychart.tpl" -}}
name: {{ .top.Release.Name }}
port: {{ .svc.port }}
{{- end -}}スコープの間違いはよくある
典型的なバグは、.Release.Nameを読み取るpartialを狭いスコープで呼び出してしまうことです。実際にどのコンテキストを渡したのか、必ず確認してください。
レンダリングしてスコープを検証する
helm template .を実行し、partialの出力に値が入っていることを確認してください。フィールドが空になる場合は、通常、partialに誤ったスコープが渡されています。
helm template my-release .クイックチェック
partialでサブツリーと.Release.Nameの両方が必要です。どのように両方を渡せばよいでしょうか。
まとめ: スコープを渡す
partial名の後ろに渡す引数が、そのpartialのドットを設定します。ルートのドット、サブツリー、または両方を組み合わせたdictを渡してください。スコープを間違えると出力が空になります。🎯
よくある質問
「名前付き Template に Scope を渡す」レッスンは無料ですか?
はい。「名前付き Template に Scope を渡す」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Helm Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Helm Academyコースには全4レッスンが含まれています。
「名前付き Template に Scope を渡す」で何を学びますか?
Partial に適切な Context オブジェクトを渡します。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Helm Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのHelm Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「名前付き Template に Scope を渡す」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このHelm Academyレッスンでコードを書いて実行できますか?
はい。すべてのHelm Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- define で Partial を定義する
- template と include で Partial を挿入する
- 標準の Fullname と Labels Helper
- 名前付き Template に Scope を渡す