1. ホーム
  2. kubernetes

[解決済み] ヘルムチャートの場合、どのようなバージョンがありますか?[クローズド]

2023-01-23 13:05:28

質問

することで、チャートの特定のバージョンを指定することができますね。 helm install --version <some_version> stable/<some_chart>

しかし、どのバージョンが利用可能かを知るにはどうしたらよいのでしょうか?

どのように解決するのですか?

短い回答

あるチャートについて、利用可能なすべてのバージョンをリストアップするには search repo という関数と --versions フラグと一緒に使用することができます。

helm search repo <reponame>/<chartname> --versions

このためには、レポが以前に追加され、最新であることが必要です。もしあなたのレポが少し前に追加されたのであれば、ローカルキャッシュを更新するために helm repo update を使用してローカルキャッシュを更新してください。

Helm v2とHelm v3では、リポジトリでのチャート管理の挙動が若干変更されています。 詳細は該当箇所を参照してください。

Helm v3

Helm v3 はチャートをより分散的に管理するように変更されたため、多くのチャートを直接取得するのに比べて、特定のリポジトリを前もって追加しておいたり、設定済みの stable リポジトリから直接取得するのに比べて、前もって特定のリポジトリを追加しておく必要があります。あるチャートのバージョンをリストアップするには、次のコマンドを実行します。 helm search repo を実行して、チャートのフルパス (リポジトリとチャート名を指定) を指定し、さらに --versions フラグ (または省略形の -l ) のようにします。

helm search repo <reponame>/<chartname> --versions

のようなプレリリース・ビルドに興味がある場合は、以下のようになります。 1.1.0-rc.1 または 3.0.0-alpha.2 を追加する必要があります。 --devel フラグを追加してください。

helm search repo <reponame>/<chartname> --versions --devel

SEMVER記法でバージョン制約を指定することで、結果の量を制限することができます。 --version フラグに加え --versions . これにより、例えば、結果を v1 チャートのみに制限することができます。

helm search repo <reponame>/<chartname> --versions --version ^v1.0

シェルによっては、バージョンの文字列を一重引用符で囲むことが必要になる場合があります ( ' のような特殊文字があるためです。 ^ .

jetstackのcert-manager用チャートを使った具体的な例を一つ。

$ helm repo add jetstack https://charts.jetstack.io
"jetstack" has been added to your repositories

を含む結果を通常検索する。 jetstack

$ helm search repo jetstack
NAME                    CHART VERSION   APP VERSION DESCRIPTION
jetstack/cert-manager   v1.0.4          v1.0.4      A Helm chart for cert-manager
jetstack/tor-proxy      0.1.1                       A Helm chart for Kubernetes

特定のグラフの通常検索

$ helm search repo jetstack/cert-manager
NAME                    CHART VERSION   APP VERSION DESCRIPTION
jetstack/cert-manager   v1.0.4          v1.0.4      A Helm chart for cert-manager

ある特定のチャートについて、すべてのバージョンをリストアップする

$ helm search repo jetstack/cert-manager --versions
NAME                    CHART VERSION   APP VERSION DESCRIPTION
jetstack/cert-manager   v1.0.4          v1.0.4      A Helm chart for cert-manager
jetstack/cert-manager   v1.0.3          v1.0.3      A Helm chart for cert-manager
jetstack/cert-manager   v1.0.2          v1.0.2      A Helm chart for cert-manager
jetstack/cert-manager   v1.0.1          v1.0.1      A Helm chart for cert-manager
...

unstable/pre-release builds をリストアップすると、alpha 版も含まれます。

$ helm search repo jetstack/cert-manager --versions --devel
NAME                    CHART VERSION   APP VERSION     DESCRIPTION
jetstack/cert-manager   v1.1.0-alpha.1  v1.1.0-alpha.1  A Helm chart for cert-manager
jetstack/cert-manager   v1.1.0-alpha.0  v1.1.0-alpha.0  A Helm chart for cert-manager
jetstack/cert-manager   v1.0.4          v1.0.4          A Helm chart for cert-manager
jetstack/cert-manager   v1.0.3          v1.0.3          A Helm chart for cert-manager
...

バージョンのリストが検索に統合されているので --versions を使用することは、単一のチャートに限定されるものではありません。このフラグを指定すると、クエリ文字列にマッチするすべてのチャートについて、利用可能なすべてのバージョンをリストアップします。

追加情報については、以下のhelmのドキュメントを確認してください。 https://helm.sh/docs/helm/helm_search_repo/

ヘルム v2

Helm v2 では、多くのアーティファクトが stable レポからアクセスできました。すべてのバージョンをリストアップするのは同じような方法ですが、異なるコマンドを使用します。Helm v2 で利用可能なチャートのバージョンをリストアップするには、次のコマンドを使用します。

helm search -l stable/<some_chart>

-l または --versions フラグは、チャートごとに最新バージョンだけでなく、すべてを表示するために使用されます。

Helm v2 では、レポを更新し続けるために helm update コマンドで更新することができました。

参考にしてください。 https://v2.helm.sh/docs/helm/#helm-search