<p>I can specify a specific version of a chart by doing: <code>helm install --version &lt;some_version&gt; stable/&lt;some_chart&gt;</code></p>

<p>But, how do I know which versions are available?</p>

Job Evers
<h3>Short Answer</h3>
<p>You can list all available versions of a chart using the <code>search repo</code> functionality together with the <code>--versions</code> flag:</p>
<p><code>helm search repo &lt;reponame&gt;/&lt;chartname&gt; --versions</code></p>
<p>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 <code>helm repo update</code> to also see recently released versions.</p>
<p>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.</p>
<h3>Helm v3</h3>
<p>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 <code>stable</code> repository. Listing the versions of a certain chart can be accomplished running the command <code>helm search repo</code> and specifying the full path of the chart (specifying repo and chart name) in combination with the <code>--versions</code> flag (or shorthand <code>-l</code>) like so:</p>
<p><code>helm search repo &lt;reponame&gt;/&lt;chartname&gt; --versions</code></p>
<p>If you are interested in pre-release builds like <code>1.1.0-rc.1</code> or <code>3.0.0-alpha.2</code>, you have to add the <code>--devel</code> flag to also include those.</p>
<p><code>helm search repo &lt;reponame&gt;/&lt;chartname&gt; --versions --devel</code></p>
<p>You can limit the amount of results by specifying a version constraint using SEMVER notation with the <code>--version</code> flag in addition to <code>--versions</code>. This allows for example limiting the results to e.g. only v1 charts:</p>
<p><code>helm search repo &lt;reponame&gt;/&lt;chartname&gt; --versions --version ^v1.0</code></p>
<p>Depending on your shell, it can be required to put the version string in single quotes (<code>'</code>) due to special characters like <code>^</code>.</p>
<p><strong>Example</strong></p>
<p>One concrete example using jetstack's charts for cert-manager:</p>
<pre><code>$ helm repo add jetstack https://charts.jetstack.io
&quot;jetstack&quot; has been added to your repositories
</code></pre>
<p>Regular search for results that contain <code>jetstack</code></p>
<pre><code>$ 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
</code></pre>
<p>Regular search for a specific chart</p>
<pre><code>$ 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
</code></pre>
<p>Listing all the versions for one specific chart</p>
<pre><code>$ 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
...
</code></pre>
<p>Listing unstable/pre-release builds will also include the alpha versions.</p>
<pre><code>$ 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
...
</code></pre>
<p>As listing the versions is integrated into the search, using <code>--versions</code> is not limited to a single chart. Specifying this flag will list all available versions for all charts that match the query string.</p>
<p>For additional information, please check the helm docs at <a href="https://helm.sh/docs/helm/helm_search_repo/" rel="noreferrer">https://helm.sh/docs/helm/helm_search_repo/</a></p>
<h3>Helm v2</h3>
<p>For Helm v2, many artifacts were accessible through the <code>stable</code> 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:</p>
<p><code>helm search -l stable/&lt;some_chart&gt;</code></p>
<p>The <code>-l</code> or <code>--versions</code> flag is used to display all and not only the latest version per chart.</p>
<p>With Helm v2 you were able to keep your repos updated using the <code>helm update</code> command.</p>
<p>Reference: <a href="https://v2.helm.sh/docs/helm/#helm-search" rel="noreferrer">https://v2.helm.sh/docs/helm/#helm-search</a></p>
