<p>I have a Helm Chart that looks like this:</p>
<pre><code>apiVersion: v1
name: my-app
version: 1.0-123.4b3k32
</code></pre>
<p>I am trying to use helm template (or lint, it doesn't matter, they both throw the same error). With helm2 this wasn't a problem, but with helm3, it is complaining that</p>
<pre><code>Error: validation: chart.metadata.version &quot;1.0-304.0770996&quot; is invalid
</code></pre>
<p>Now when executing helm template, I want to override this value using</p>
<pre><code>helm template --set chart.metadata.version='0.0.0'
</code></pre>
<p>but I keep getting the same error, what am I doing wrong here?</p>
<p>Changing it in the Chart itself is not an option. I tested by changing it manually to 0.0.0 to see if it works and it does. Setting it to 0.0.0 during templating would be fine for me.</p>

<p>The <a href="https://docs.helm.sh/docs/topics/charts/#charts-and-versioning" rel="nofollow noreferrer">Chart.yaml <code>version:</code> field</a> is specified to be a <a href="https://semver.org" rel="nofollow noreferrer">semantic version</a>; quoting the Helm documentation, &quot;non-SemVer names are explicitly disallowed by the system.&quot;  SerVer's rule 2 is:</p>
<blockquote>
<p>A normal version number MUST take the form X.Y.Z where X, Y, and Z are non-negative integers....</p>
</blockquote>
<p>So changing the chart version to <code>1.0.0-456.a1b2c3d</code> might resolve this problem.  (SerVer rule 9 allows the <code>-456...</code> suffix to indicate a pre-release version but all of its examples have three-part versions before the hyphen.)</p>
<p>There is no way to override these <code>Chart.yaml</code> values with <a href="https://docs.helm.sh/docs/helm/helm_install/" rel="nofollow noreferrer"><code>helm install</code></a> or related commands.  In particular <code>helm install --set</code> provides overrides to the <code>values.yaml</code> file, what template code sees as <code>.Values</code>.</p>
