<p>Given a situation where we have Helm chart <code>A</code> which contains a sub-chart <code>B</code>. Let's perform below sequence of operations.</p>
<ol>
<li><code>helm install test /path/to/A</code> . It installs the sub-chart <code>B</code> as well under the same <code>Helm release</code> name i.e. <code>test</code></li>
<li>Do some configuration changes that impacts both the charts. e.g. change some env variables.</li>
<li>Do <code>helm upgrade test /path/to/A</code> . Upgrades all the affected pods under chart <code>A</code> and <code>B</code></li>
<li>Due to some reasons, I want to just rollback the new changes done on <code>sub-chart B</code> but keep the new changes on <code>A</code>.</li>
<li>Do <code>helm rollback test</code>.</li>
</ol>
<p>Now, the step 5th rollbacks the chart <code>A</code> changes as well. Now, the question is, Can I restrict the rollback just to chart <code>B</code> ? Is it possible.</p>

Nish
<p>This is not possible.  The parent chart <code>A</code> and the subchart <code>B</code> are parts of the same Helm release once they're installed, and you can only upgrade or roll back the entire release, not fragments of it.</p>
<p>If you keep your deployment configuration in source control, you could do a partial revert of your per-environment configuration file the same way you'd do a partial revert of any other file, and then <code>helm upgrade</code> again to the &quot;new&quot; (partially-reverted) configuration.</p>
