title: When do I put a subchart in the charts/ directory, dependencies in Chart.yaml, or requirements.yaml in Helm?
body: <p>If I have a chart that depends on another chart, what's the best practices around when it should be included as a package in the <code>charts/</code> directory vs <code>requirements.yaml</code> vs the <code>dependencies</code> property in <code>Chart.yaml</code>?</p>
  <p>For example, if I have a shared dependency that multiple Helm charts will use, should I always put that in a Helm repo and then just refer to it in each chart's <code>requirements.yaml</code>? Or is there a benefit to including it in the <code>charts/</code> directory?</p>
  <p><strong>Example</strong></p>
  <p><em>requirements.yaml</em></p>
  <pre class="lang-yaml prettyprint-override"><code>dependencies:
    - name: mariadb
      version: 7.x.x
      repository: https://charts.bitnami.com/bitnami
      condition: mariadb.enabled
      tags:
        - wordpress-database
  </code></pre>
  <p><em>Chart.yaml</em></p>
  <pre class="lang-yaml prettyprint-override"><code>dependencies:
    - name: mariadb
      version: 7.x.x
      repository: https://charts.bitnami.com/bitnami
      condition: mariadb.enabled
      tags:
        - wordpress-database
  </code></pre>
  <p><em>charts/ directory</em></p>
  <pre><code>my-package.tgz
    /charts
       mariadb-7.0.0.tgz
       ...elided...
  </code></pre>
  <p>(and there's technically a 4th where I put the actual exploded chart into the charts directory)</p>