<p>I am trying to set up a helmfile deployment for my local kubernetes cluster which is running using 'kind' (a lightweight alternative to minikube). I have charts set up for my app which are all deploying correctly, however I require an nginx-ingress controller. Luckily 'kind' provides one, which I am currently applying with the command:</p>
<p><code>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml</code></p>
<p>It seems perverse that I should have everything else set up to deploy at the touch of a button, but still have to 'remember' (and also train my colleagues to remember...) to run this additional command.</p>
<p>I realise I could copy and paste and create my own version, but I would like to keep up to date with any changes made at source. Is it possible to create a chart that makes a reference to an external template?</p>
<p>I am looking at solutions using either helm or helmfile.</p>

Abulafia
<p>Your linked YAML file seems to have been generated from the <a href="https://artifacthub.io/packages/helm/ingress-nginx/ingress-nginx" rel="nofollow noreferrer">ingress-nginx</a> chart.</p>
<h2>Subchart</h2>
<p>You can include ingress-nginx as a subchart in Helm 3 by adding it as a dependency to your own chart. In Helm 3, this is done with the <code>dependencies</code> field in <code>Chart.yaml</code>, e.g.:</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: v2
name: my-chart
version: 0.1.0
dependencies:
  - name: ingress-nginx
    version: ~4.0.6
    repository: https://kubernetes.github.io/ingress-nginx
    condition: ingress-nginx.enabled
</code></pre>
<p>This may be problematic, however, if you need to install multiple versions of your own chart in the same cluster.  To handle this, you'd need to consider the implications of <a href="https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/" rel="nofollow noreferrer">multiple Ingress controllers</a>.</p>
<h2>Chart</h2>
<p>Ingress controllers are capable of handling ingresses from various releases across multiple namespaces.  Therefore, I would recommend maintaining ingress-nginx separately from your own releases that depend on it.  This would mean installing ingress-nginx like you already are or as a separate chart (<a href="https://artifacthub.io/packages/helm/ingress-nginx/ingress-nginx#install-chart" rel="nofollow noreferrer">guide</a>).</p>
<p>If you go this route, there are tools that help make it easier for devs to take a hands-off approach for setting up their K8s environments.  Some popular ones include <a href="https://skaffold.dev/" rel="nofollow noreferrer">Skaffold</a>, <a href="https://devspace.sh/" rel="nofollow noreferrer">DevSpace</a>, <a href="https://tilt.dev/" rel="nofollow noreferrer">Tilt</a>, and <a href="https://github.com/roboll/helmfile" rel="nofollow noreferrer">Helmfile</a>.</p>
