For a helm chart, what versions are available?

我可以指定一个图表的特定版本,方法是: helm install --version <some_version> stable/<some_chart>

But, how do I know which versions are available?

75933 次浏览

简短的回答

您可以使用 search repo功能和 --versions标志列出一个图表的所有可用版本:

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

这要求回购是以前添加的,并且是最新的。如果您的回购是前一段时间添加的,请确保使用 helm repo update保持本地缓存更新,以查看最近发布的版本。

在 Helm v2和 Helm v3之间,在存储库中管理图表的行为略有变化。详情请参阅相关章节。

舵手 V3

Helm v3更改为更分散的图表管理,因此与直接从预先配置的 stable存储库获取许多图表相比,您可能已经预先添加了一个特定的存储库。列出某个图表的版本可以通过运行命令 helm search repo并结合 --versions标志(或简写 -l)指定图表的完整路径(指定回购和图表名称)来完成,如下所示:

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

如果您对预发布版本(如 1.1.0-rc.13.0.0-alpha.2)感兴趣,那么您必须添加 --devel标志以包含这些内容。

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

除了 --versions之外,还可以使用带有 --version标志的 SEMVER 表示法指定版本约束,从而限制结果的数量。这允许例如限制结果,例如仅 v1图表:

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

根据您的 shell,可能需要将版本字符串放在单引号(')中,这是由于像 ^这样的特殊字符。

例子

使用 Jetstack 的图表作为证书管理者的一个具体例子:

$ 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

Regular search for a specific chart

$ 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
...

列出不稳定/预发布版本也将包括 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不限于一个单一的图表。指定此标志将列出与查询字符串匹配的所有图表的所有可用版本。

欲了解更多信息,请检查在 https://helm.sh/docs/helm/helm_search_repo/的舵文件

舵手 V2

对于 Helmv2,许多工件可以通过使用 HelmCLI 预先配置的 stable repo 进行访问。列出所有版本的操作方式相似,但使用的命令不同。要使用 Helm v2列出图表的可用版本,请使用以下命令:

helm search -l stable/<some_chart>

-l--versions标志用于显示每个图表的所有版本,而不仅仅是最新版本。

在 Helmv2中,您可以使用 helm update命令更新您的回购协议。

参考资料: https://v2.helm.sh/docs/helm/#helm-search

如果你正在寻找一个舵 v3解决方案,这是它。

helm search repo -l stable/<some-chart>

如果你还想搜索阿尔法,测试版,发布候选版在舵3你可以添加选项 --devel

helm search repo <chart keyword> -l --devel

it will also lists charts with version like 1.0.0-rc1

您可以使用 helm show chart <chart>检查当前图表的版本,例如:

$ helm show chart bitnami/postgresql
annotations:
category: Database
apiVersion: v2
appVersion: 11.10.0
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.x.x
description: Chart for PostgreSQL, an object-relational database management system
(ORDBMS) with an emphasis on extensibility and on standards-compliance.
home: https://github.com/bitnami/charts/tree/master/bitnami/postgresql
icon: https://bitnami.com/assets/stacks/postgresql/img/postgresql-stack-110x117.png
keywords:
- postgresql
- postgres
- database
- sql
- replication
- cluster
maintainers:
- email: containers@bitnami.com
name: Bitnami
- email: cedric@desaintmartin.fr
name: desaintmartin
name: postgresql
sources:
- https://github.com/bitnami/bitnami-docker-postgresql
- https://www.postgresql.org/
version: 10.1.0