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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Values オブジェクトとネストしたアクセス
- .Release による Release メタデータ
- Chart オブジェクトと Capabilities オブジェクト
- Files、Template、Root Context