0Pricing
Helm Academy · レッスン

Chart オブジェクトと Capabilities オブジェクト

Chart メタデータとクラスターの API バージョンを確認します。

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

さらに 2 つの組み込みオブジェクト

.Values と .Release に加えて、Helm はチャートのメタデータを扱う .Chart と、対象クラスターに関する情報を扱う .Capabilities を公開しています。

Chart オブジェクトは Chart.yaml を反映する

.Chart は、テンプレートから利用できる Chart.yaml の内容です。そこに記述したすべてのフィールドをレンダリング中に読み取れます。📦

チャート名とバージョン

.Chart.Name と .Chart.Version は、チャートの識別情報を示します。Version はチャート自体の SemVer であり、公開するたびに更新します。

chart: {{ .Chart.Name }}-{{ .Chart.Version }}

AppVersion は別物

.Chart.AppVersion はデプロイするアプリのバージョンであり、チャートのバージョンではありません。デフォルトのイメージタグやラベルを決めるためによく使われます。

app.kubernetes.io/version: {{ .Chart.AppVersion }}

フィールド名は大文字で始まる

Chart.yaml ではキーが小文字ですが、オブジェクトでは先頭が大文字になります。ファイルに appVersion と書かれていても、.Chart.AppVersion と記述します。

Capabilities オブジェクト

.Capabilities は、Helm が接続しているクラスターの情報を示します。Kubernetes のバージョンや、利用できる API グループを確認できます。

Kubernetes のバージョンを確認する

.Capabilities.KubeVersion はクラスターのバージョンを示します。チャートはこれを使って、新しい Kubernetes リリースと古い Kubernetes リリースに合わせてマニフェストを調整します。

# {{ .Capabilities.KubeVersion.Version }}

API バージョンを検査する

.Capabilities.APIVersions.Has は、クラスターに API が存在するかを確認し、適切なリソース種別を安全に選べるようにします。

{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}...{{ end }}

Capabilities が移植性に役立つ理由

クラスターによって、バージョンやインストール済みの API は異なります。.Capabilities を条件に使えば、1 つのチャートをさまざまなクラスター構成で正しくレンダリングできます。

helm template で Capabilities を使う

オフラインでは helm template は実際のクラスターに問い合わせられないため、デフォルトのバージョンを想定します。--kube-version を渡すと、特定の対象をシミュレートできます。

helm template ./mychart --kube-version 1.29

ラベルには Chart、ロジックには Capabilities を使う

便利なルールは、ラベルに識別情報を付けるときは .Chart を読み取り、どの形式のマニフェストを出力するか決めるときは .Capabilities を確認することです。

クイックチェック

デプロイするアプリケーションのバージョンをリソースにラベル付けする必要があります。

まとめ:Chart と Capabilities

.Chart からは Name、Version、AppVersion などの Chart.yaml メタデータを利用でき、.Capabilities からはクラスターのバージョンと利用可能な API を確認できることを学びました。

よくある質問

「Chart オブジェクトと Capabilities オブジェクト」レッスンは無料ですか?

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

「Chart オブジェクトと Capabilities オブジェクト」で何を学びますか?

Chart メタデータとクラスターの API バージョンを確認します。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「Chart オブジェクトと Capabilities オブジェクト」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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