<p>In k8s - I have an helm chart already installed and running deployments.</p>
<p>After the installation, I want to change only one specific value of the helm chart, that reflects some of k8s yaml files (templates using helm).</p>
<p>I don't have the helm values file, but need to use the same values, and change only one value for the chart.</p>
<p>Can I upgrade helm chart, by changing only one value.</p>
<p><code>helm upgrade</code> takes chart name and folder of yaml file, but I don't want any use for yaml file.</p>

Eitan
<p>You can use the <code>--set key=value</code> to override a single value and that switch can be used multiple times to set multiple values (although you need to be aware of some escaping shenanigans such as with &quot;.&quot; characters)</p>
<p>Anything you don't override by the use of a <code>--set</code> or <code>--values</code> switch will fall back to the <code>values.yaml</code> embedded within the chart.</p>
<p>But this also comes with a caveat. Some charts deliberately do not embed a <code>values.yaml</code> file, opting for profiles such that an install <em>must</em> explicitly declare which one to use or the chart will fail to install. Such an example I discussed in <a href="https://stackoverflow.com/questions/71489528/is-there-a-way-to-specify-which-values-file-to-use-in-a-helm-chart/71493152#71493152">this answer</a></p>
<p>The safest way to update a chart with only a single value is to dump the values of the release using</p>
<pre><code>helm get values -n {namespace} {release} &gt; values.yaml
</code></pre>
<p>Then install using those values and override with your single override.</p>
<pre><code>helm upgrade --install --atomic --wait -n {namespace} {release} repo/chart-name \
  --values values.yaml \
  --set override-key=override-value
</code></pre>
<p>This guarantees the same values are provided that are currently being used in the chart, without needing to know the profile(s) used originally.</p>
