0Pricing
DevOps Bootcamp · レッスン

tpl:Values の文字列をレンダリングする

値に格納されたテンプレート式を評価します。

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

values 内のテンプレート

values.yaml 内の値にテンプレート構文が含まれることがあります。デフォルトでは、Helm はそれを単なる文字列として扱い、評価しません。

tpl 関数

tpl 関数は文字列とコンテキストを受け取り、呼び出した場所でその文字列を Go テンプレートとしてレンダリングします。

{{ tpl .Values.greeting . }}

コンテキストが必要です

tpl の2番目の引数は、レンダリング時に使うスコープです。ルートのドットを渡すと、文字列から Values と Release にアクセスできます。

{{ tpl "Hello {{ .Release.Name }}" . }}

テンプレート化された値

これでユーザーは、リリース名から組み立てたホスト名のような dynamic 文字列を values に保存し、レンダリング時に展開できるようになります。

host: "{{ .Release.Name }}.example.com"

その値をレンダリングします

テンプレート内でそのフィールドをルートコンテキストとともに tpl に渡し、保存されているプレースホルダーを実際の値に変換します。

host: {{ tpl .Values.host . | quote }}

単に参照するだけでは不十分な理由

直接参照すると、生の波括弧がテキストとして出力されます。保存された文字列内の埋め込みディレクティブを実際に評価できるのは tpl だけです。

ファイルもレンダリングする

ファイルの内容をtplに渡すこともできます。これにより、チャートに同梱した設定ファイルにリリース固有のプレースホルダーを含められます。

{{ tpl (.Files.Get "config.tpl") . }}

カスタムスコープを渡す

コンテキストはルートである必要はありません。任意のdictを渡せば、レンダリングされる文字列から、選択した変数だけを正確に参照できます。

{{ tpl .Values.msg (dict "name" "api") }}

実際のユースケース

チャートでは、この方法でingressのホストやアノテーションをテンプレート化することがよくあります。柔軟な設定をテンプレートではなくvaluesに置けます。

エラーに注意する

保存した文字列に誤りがあると、tplはレンダリング時に失敗します。そのため、テンプレート化したvaluesを追加したら、helm templateでテストしてください。

quoteと組み合わせる

テンプレート化したホストにはドットやコロンが含まれる場合があるため、tplの結果をquoteにパイプしてください。最終的なYAMLの値を安全な文字列として扱えます。

host: {{ tpl .Values.host . | quote }}

クイックチェック

tplの動作を確認しましょう。

まとめ

tplは、valuesやファイルに保存されたテンプレート文字列を、ルートのドットなど指定したコンテキストを使って評価することを学びました。🎉

よくある質問

「tpl:Values の文字列をレンダリングする」レッスンは無料ですか?

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

「tpl:Values の文字列をレンダリングする」で何を学びますか?

値に格納されたテンプレート式を評価します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「tpl:Values の文字列をレンダリングする」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. mergeOverwrite と dict による Deep Merge
  2. tpl:Values の文字列をレンダリングする
  3. range を使った .Files.Glob のファイルループ
  4. fail とカスタム検証ガード
← DevOps Bootcampに戻る