对于舵图,有哪些版本可用?

For a helm chart, what versions are available?

我可以通过以下方式指定图表的特定版本:helm install --version <some_version> stable/<some_chart>

但是,我怎么知道哪些版本可用?

简答

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

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

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

在存储库中管理图表的行为在 Helm v2 和 Helm v3 之间略有不同。详情请参考相应章节。

Helm v3

Helm v3 更改为更加分散的图表管理,因此与直接从预配置的 stable 存储库中获取许多图表相比,您可能已经预先添加了某个存储库。列出某个图表的版本可以通过 运行 命令 helm search repo 并结合 --versions 标志(或 shorthand -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 的 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 构建也将包括 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/

查看 helm 文档

Helm v2

对于 Helm v2,许多工件都可以通过 stable 存储库访问,该存储库使用 Helm CLI 进行了预配置。列出所有版本以类似的方式完成,但使用不同的命令。要使用 Helm v2 列出图表的可用版本,请使用以下命令:

helm search -l stable/<some_chart>

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

使用 Helm v2,您可以使用 helm update 命令更新您的存储库。

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

如果您正在寻找 helm v3 解决方案,就是它了。

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

如果您还想在 helm 3 中搜索 alpha、beta、发布候选版本,您可以添加选项 --devel

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

它还会列出版本为 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