For a helm chart, what versions are available?

KubernetesKubernetes Helm

Kubernetes Problem Overview


I can specify a specific version of a chart by doing: helm install --version <some_version> stable/<some_chart>

But, how do I know which versions are available?

Kubernetes Solutions


Solution 1 - Kubernetes

Short Answer

You can list all available versions of a chart using the search repo functionality together with the --versions flag:

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

This requires that the repo was added previously and is up to date. If your repo was added some time ago, please make sure to keep the local cache updated using helm repo update to also see recently released versions.

The behaviour of managing charts in a repository changed slightly between Helm v2 and Helm v3. So please refer to the corresponding section for details.

Helm v3

Helm v3 changed to a more decentralized management of charts, so you might have added a certain repository upfront compared to obtaining many of them directly from the preconfigured stable repository. Listing the versions of a certain chart can be accomplished running the command helm search repo and specifying the full path of the chart (specifying repo and chart name) in combination with the --versions flag (or shorthand -l) like so:

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

If you are interested in pre-release builds like 1.1.0-rc.1 or 3.0.0-alpha.2, you have to add the --devel flag to also include those.

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

You can limit the amount of results by specifying a version constraint using SEMVER notation with the --version flag in addition to --versions. This allows for example limiting the results to e.g. only v1 charts:

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

Depending on your shell, it can be required to put the version string in single quotes (') due to special characters like ^.

Example

One concrete example using jetstack's charts for cert-manager:

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

Regular search for results that contain 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

Listing all the versions for one specific chart

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

Listing unstable/pre-release builds will also include the alpha versions.

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

As listing the versions is integrated into the search, using --versions is not limited to a single chart. Specifying this flag will list all available versions for all charts that match the query string.

For additional information, please check the helm docs at https://helm.sh/docs/helm/helm_search_repo/

Helm v2

For Helm v2, many artifacts were accessible through the stable repo which came preconfigured with the Helm CLI. Listing all versions was done in a similar way but with a different command. To list the available versions of the chart with Helm v2 use the following command:

helm search -l stable/<some_chart>

The -l or --versions flag is used to display all and not only the latest version per chart.

With Helm v2 you were able to keep your repos updated using the helm update command.

Reference: https://v2.helm.sh/docs/helm/#helm-search

Solution 2 - Kubernetes

If you are looking for a helm v3 solution this is it.

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

Solution 3 - Kubernetes

If you want also search for alpha, beta, release candidate version in helm 3 you can add options --devel

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

it will also lists charts with version like 1.0.0-rc1

Solution 4 - Kubernetes

You can check the version of the current chart using helm show chart <chart>, for example:

$ 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: [email protected]
  name: Bitnami
- email: [email protected]
  name: desaintmartin
name: postgresql
sources:
- https://github.com/bitnami/bitnami-docker-postgresql
- https://www.postgresql.org/
version: 10.1.0

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionjobeversView Question on Stackoverflow
Solution 1 - KubernetesAndreas JägleView Answer on Stackoverflow
Solution 2 - KubernetesMartin NaughtonView Answer on Stackoverflow
Solution 3 - KubernetesSlawomir JaranowskiView Answer on Stackoverflow
Solution 4 - KubernetesFabrice JammesView Answer on Stackoverflow