<p>We have an umbrella structure like that:</p>

<pre><code> -app1
  templates/...
  values.yaml
 -app2
  templates/...
  values.yaml
  values/dev.yaml
</code></pre>

<p>I want to be able to deploy the entire umbrella with different values file according to different environment (dev, prod), of the sub chart</p>

<ol>
<li>app2 to be installed with values.yaml only</li>
<li>app2 to be installed with values.yaml and the values/dev.yaml</li>
</ol>

<p>Is that possible? </p>

Mickey Hovel
<p>Nope that's not possible, but there is a workaround to achieve the functionality, a change in the directory structure will be required. Before reading any further check out the similar question here
<a href="https://stackoverflow.com/questions/47590788/how-to-set-environment-related-values-yaml-in-helm-subcharts">How to set environment related values.yaml in Helm subcharts?</a></p>

<p>The above scenario can be achieved with the following directory structure:</p>

<pre><code>test-umbrella - Chart.yaml
      - values.yaml
      - requirements.yaml
      - charts - test-dev - Chart.yaml
                           - values.yaml
               - test-prod - Chart.yaml
                           - values.yaml
      - templates - deployment.yaml
                  - _helpers.tpl
                  - secret.yaml
</code></pre>

<p>The chart dependencies should be defined like this:
<strong>requirements.yaml</strong></p>

<pre><code>dependencies:
  - name: tesy-dev
    repository: "file://charts/test-dev"
    version: "&gt;= 0.0.1"
    tags:
      - dev-values
    import-values:
      - data

  - name: test-prod
    repository: "file://charts/test-prd"
    version: "&gt;= 0.0.1"
    tags:
      - prd-values
    import-values:
      - data
</code></pre>

<p>Parent chart's values.yaml file should contain values like this:</p>

<p><strong>values.yaml</strong></p>

<pre><code># Default values

tags:
  dev-values: false
  prd-values: false
</code></pre>

<p>And then finally you should install it with the following flag <strong>--set tags.dev-values=true</strong></p>

<p>In umbrella chart you must be having a parent values.yaml file. If you define your keys there, then the values of subcharts will be overwritten by it. </p>

<p>So you can have a values-dev.yaml outside the subchart to overwrite the internal subchart values.</p>

<p>Moreover you should have all the values that can be changed accordingly due to environment in the parent charts values.yaml so that they can be overwritten easily.</p>

<p>Please check best practices and flow of execution <a href="https://helm.sh/docs/chart_template_guide/subcharts_and_globals/" rel="nofollow noreferrer">https://helm.sh/docs/chart_template_guide/subcharts_and_globals/</a></p>
