<p>So I am using the helm chart <a href="https://github.com/helm/charts/tree/master/stable/traefik" rel="noreferrer">stable/traefik</a> to deploy a reverse proxy to my cluster. I need to customise it beyond what is possible with the variables I can set for the template.</p>

<p>I want to enable the dashboard service while not creating an ingress for it (I set up OpenVPN to access the traefik dashboard only via VPN).
Both <code>dashboard-ingress.yaml</code> and <code>dashboard-service.yaml</code> conditionally include the ingress or the respective service based on the same variable <code>{{- if .Values.dashboard.enabled }}</code></p>

<p>From my experience I would fork the helm chart and push the customised version to my own repository.</p>

<p><strong>Is there a way to add that customization but keep the original helm chart from the stable repository?</strong></p>

Hedge
<p>You don't necessarily have to push to your own repository as you could take the source code and include the chart in your own as source. For example, if you dig into the <a href="https://gitlab.com/charts/gitlab/tree/master" rel="noreferrer">gitlab chart</a> in their <a href="https://gitlab.com/charts/gitlab/tree/master/charts" rel="noreferrer">charts</a> dependencies they've included multiple other charts as source their, not packaged .tgz files. That enables you to make changes in the chart within your own source (much as the gitlab guys have). You could get the source using <code>helm fetch stable/traefik --untar</code></p>

<p>However, including the chart as source is still quite close to forking. If you want to upgrade to get fixes then you still have to reapply your changes. I believe your only other option is to raise the issue <a href="https://github.com/helm/charts/tree/master/stable/traefik" rel="noreferrer">on the official chart repo</a>. Perhaps for your case you could suggest to the <a href="https://github.com/helm/charts/blob/master/stable/traefik/OWNERS" rel="noreferrer">maintainers</a> that the ingress be included only when .Values.dashboard.enabled and a separate ingress condition is met. </p>
