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