<p>I have several apps of different shapes and purposes, each with their own <code>templates/</code> folder as generated by <code>helm create chart</code>.  The templates within each App are sufficiently different to justify having them as one-offs.  However, the <code>_helpers.tpl</code> is identical for all of them.  I'd like to externalize/reuse this <code>_helpers.tpl</code> template so that I don't need a copy of it in every app.</p>
<p>What I have currently looks something like this:</p>
<pre><code>App1
|--app (random source code crap, irrelevant)
|--chart
|---templates
|------_helpers.tpl
|------ deployment.yaml
|------ other unique templates

App2
|--app (random source code crap, irrelevant)
|--chart
|---templates
|------_helpers.tpl
|------ deployment.yaml
|------ other unique templates
</code></pre>
<p>I'd like to centralize this <code>_helpers.tpl</code> so that I don't need to maintain N versions of it.  I'm imagining something like this, but I'm open to whatever:</p>
<pre><code>Common
|--chart
|----templates
|------ _helpers.tpl (I live here now and was removed from the 2 Apps below)

App1
|-- app (random source code crap, irrelevant)
|-- chart
|--- templates
|------ deployment.yaml
|------ other unique templates

App2
|-- app (random source code crap, irrelevant)
|-- chart
|--- templates
|------ deployment.yaml
|------ other unique templates
</code></pre>
<p>I have tried doing this with a symlink pointing <code>AppN/chart/templates/_helper.tpl</code> to <code>Common/chart/templates/_helper.tpl</code> but that's clearly bad and I imagine there's a built-in way to do this that I'm just not finding.</p>
<p>Even if <code>AppN/chart/templates/_helpers.tpl</code> needs to exist only to read <code>../../_helpers.tpl</code>, that's good enough but I'm not sure how to approach that given the YAML-y/Go-y syntax.</p>

oooyaya
<p>I wound up solving this by inverting my file structure into something like:</p>
<pre><code>Parent App
|--Chart.yaml // new
|--values.yaml // new
|--templates // new
|----_helpers.tpl // automagically gets referenced in charts/*/templates
|--apps (source code stuff, irrelevant)
|--charts
|----App1
|------Chart.yaml
|------values.yaml
|------templates
|--------deployment.yaml (and others)
|----App2
|------Chart.yaml
|------values.yaml
|------templates
|--------deployment.yaml (and others)
</code></pre>
<p>Which follows the &quot;subchart&quot; pattern outlined here more closely:  <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>
<p>Even though these are independent charts, not dependencies on some parent chart like this structure would indicate, this is good enough for me.</p>
