0Pricing
DevOps Bootcamp · レッスン

名前付き Template に Scope を渡す

Partial に適切な Context オブジェクトを渡します。

「名前付き Template に Scope を渡す」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全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チューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「名前付き Template に Scope を渡す」で何を学びますか?

Partial に適切な Context オブジェクトを渡します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

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

「名前付き Template に Scope を渡す」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. define で Partial を定義する
  2. template と include で Partial を挿入する
  3. 標準の Fullname と Labels Helper
  4. 名前付き Template に Scope を渡す
← DevOps Bootcampに戻る