0Pricing
Helm Academy · レッスン

Values オブジェクトとネストしたアクセス

ツリーの深い位置にあるユーザー設定を読み取ります。

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

Values オブジェクトを知る

テンプレート内では、.Values にチャートの values.yaml のすべての設定と、渡した上書き値が格納されます。これは設定ツリーです。

トップレベルキーを読み取る

replicaCount のようなトップレベルキーは .Values.replicaCount になります。ドットでつないだパスは YAML の構造をそのまま反映します。🌳

# values.yaml
replicaCount: 3

# template
replicas: {{ .Values.replicaCount }}

ネストされたマップを掘り下げる

値がネストされている場合は、ドットを連結します。key タグを持つ image マップには、.Values.image.tag として、階層ごとに 1 つのセグメントを指定してアクセスします。

# values.yaml
image:
  repository: nginx
  tag: "1.27"

# template
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}

キーでは大文字と小文字が区別される

パスの各セグメントは、YAML のキーと 1 文字ずつ一致していなければなりません。.Values.Image は .Values.image とは異なり、空としてレンダリングされます。

存在しないキーは空にレンダリングされる

存在しない値を要求しても、デフォルトではエラーになりません。Helm は何もレンダリングしないため、無効な YAML が気付かないうちに生成される可能性があります。

ハイフンを含むキーには index が必要

ハイフンを含むキーではドット記法が機能しません。代わりに、キーを引用符で囲んだ文字列として指定し、index 関数でアクセスします。

# values.yaml
service-port: 8080

# template
port: {{ index .Values "service-port" }}

デフォルト値の由来

チャートの作成者は、values.yaml に適切なデフォルト値を用意します。ユーザーが上書きしない限り、そこにあるすべてのキーを .Values から利用できます。

.Values に上書き値が反映される仕組み

ユーザーの --set フラグまたは -f ファイルは、レンダリング前にデフォルト値の上にマージされます。テンプレートの実行時には、.Values が最終的にマージされたツリーになります。

helm install web ./mychart --set replicaCount=5

リストも .Values の下にある

YAML のリストは、.Values の下ではスライスになります。単一のドットパスで読み取るのではなく、range で反復して項目を繰り返しレンダリングします。🔁

# values.yaml
ports:
  - 80
  - 443

値を安全にクォートする

数値やブール値はそのままレンダリングされるため、YAML が壊れる可能性があります。ユーザーが入力した文字列を quote 関数で囲み、正しいテキストのまま保持してください。

tag: {{ .Values.image.tag | quote }}

使う前にツリーを確認する

チャートに対して helm show values を実行すると、values ツリー全体を出力できます。その出力が、.Values で指定する正確な形です。

helm show values ./mychart

クイックチェック

ハイフンを含む service-port という名前の values キーが必要です。

まとめ:Values ツリー

.Values はマージ済みの設定ツリーであり、ドット区切りのパスで、大文字と小文字を区別してアクセスすることを学びました。扱いにくいキーには index を使用します。helm show values で確認できます。

よくある質問

「Values オブジェクトとネストしたアクセス」レッスンは無料ですか?

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

「Values オブジェクトとネストしたアクセス」で何を学びますか?

ツリーの深い位置にあるユーザー設定を読み取ります。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「Values オブジェクトとネストしたアクセス」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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