<p>I would like to install Ingress on my Kubernetes cluster with Helm, so I did</p>

<pre><code>$&gt; helm install stable/nginx-ingress
... a lot of output
NOTES:
The nginx-ingress controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status by running 'kubectl --namespace default get services -o wide -w solemn-toucan-nginx-ingress-controller'

An example Ingress that makes use of the controller:

  apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    annotations:
      kubernetes.io/ingress.class: nginx
    name: example
    namespace: foo
  spec:
    rules:
 ...
</code></pre>

<p>Because I'm installing everything with Helm, it is not clear to me how I should install Ingress. As you can see in the output generated by Helm, they show an example <code>Ingress</code> but not how I should provide it. </p>

<p>I can think of 2:</p>

<ul>
<li>Copy the whole chart and move my ingress.yaml into the <code>templates</code> folder</li>
<li>Use kubectl</li>
<li>Create a Helm Chart which provides the Ingress resource</li>
</ul>

<p>From the above 3 I like the last one most, but maybe there is another way (maybe with some configuration option)?</p>

<p>A rough analogy here is that using Helm to install the nginx Ingress controller is like using <code>apt-get</code> or <code>brew</code> to install nginx on a machine. But you wouldn’t use <code>apt-get</code> to create your nginx configuration for your application and install it on that machine.</p>

<p>If you just have a Hello World app, apply the Ingress resources directly with <code>kubectl</code>. If you get to the point that you want to encapsulate all the resources that constitute your application (Services, Ingress, Deployments, Roles, RoleBindings, ServiceAccounts, etc.) into a single artifact so that other people could consume to deploy their own copies of your application on their own K8s clusters, Helm would be a packaging and distribution option you could explore using. You would put templates for <em>your</em> Ingress resources in your Helm chart, there’s no reason for you to try to modify the nginx controller Helm chart.</p>
