0Pricing
Helm Academy · レッスン

Files、Template、Root Context

同梱ファイルとドットのスコープにアクセスします。

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

ルートコンテキスト:ドット

テンプレートの先頭では、ドット . が .Values、.Release、.Chart など、すべての組み込みオブジェクトを保持するルートコンテキストです。

ドットはスコープを変更できる

with や range のようなブロックは、ドットをより限定された値に再バインドします。そのため、すべてのブロック内で . が常にルートを意味するとは限りません。

ドル記号でルートに戻る

変数 $ は常に元のルートコンテキストを指します。range や with の内部で .Values や .Release に戻るには、$ を使用します。

{{ range .Values.ports }}
release: {{ $.Release.Name }}
{{ end }}

Files オブジェクト

.Files を使うと、チャートに含めたテンプレート以外のファイルをテンプレートから読み取れます。たとえば、ConfigMap に含めて配布したい設定ファイルなどです。📄

ファイルをテキストとして読み取る

.Files.Get はファイルの内容を文字列として返します。チャートのルートからの相対パスを渡すと、マニフェストに取り込めます。

data:
  app.conf: |
{{ .Files.Get "config/app.conf" | indent 4 }}

Files には制限がある

.Files ですべてを読み取れるわけではありません。templates/ と Chart.yaml は除外され、パッケージ化の際には .helmignore のパターンに一致するファイルもスキップされます。

複数のファイルを glob で処理する

.Files.Glob はパターンで複数のファイルに一致し、range で反復できるマップを返します。これにより、多数の ConfigMap エントリを一度に構築できます。

{{ range $path, $bytes := .Files.Glob "config/*" }}...{{ end }}

ファイルの内容をエンコードする

バイナリデータやシークレットデータは base64 でエンコードする必要があります。.Files.Get と b64enc を連結して、Secret リソースに安全に埋め込んでください。

ca.crt: {{ .Files.Get "certs/ca.crt" | b64enc }}

Template オブジェクト

.Template オブジェクトは、レンダリング中のファイルを示します。.Template.Name はそのパスで、コメントやエラーメッセージに役立ちます。

# rendered from {{ .Template.Name }}

BasePath は templates を指す

.Template.BasePath は、レンダリング中のチャートにある templates ディレクトリのパスを示します。.Template.Name と組み合わせると、自分自身の場所を特定できます。

ヘルパーにルートを渡す

名前付きテンプレートから見えるのは、渡されたコンテキストだけです。$ またはルートのドットを渡すと、ヘルパーから .Values や .Release にもアクセスできます。

{{ include "mychart.labels" $ }}

クイックチェック

ドットがリスト項目に再束縛された range ループの中にいます。

振り返り: ファイルとルートコンテキスト

ドットがルートコンテキストであり、$を使えば常にそこへアクセスできること、さらに .Files と .Template を使うと同梱ファイルを埋め込んだり、現在のテンプレートを特定したりできることを学びました。

よくある質問

「Files、Template、Root Context」レッスンは無料ですか?

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

「Files、Template、Root Context」で何を学びますか?

同梱ファイルとドットのスコープにアクセスします。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「Files、Template、Root Context」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. Values オブジェクトとネストしたアクセス
  2. .Release による Release メタデータ
  3. Chart オブジェクトと Capabilities オブジェクト
  4. Files、Template、Root Context
← Helm Academyに戻る