<p>Can anyone explain to me how to set up a <strong>SINGLE</strong> nginx ingress controller with configuration that I currently have, as follows:</p>

<ul>
<li>A.MY-SITE.COM = Service, Ingress, Pods..etc live under the "A" namespace</li>
<li>B.MY-SITE.COM = Service, Ingress, Pods..etc live under the "B" namepsace</li>
</ul>

<p>I've seen here </p>

<p><a href="https://github.com/nginxinc/kubernetes-ingress/tree/v1.7.0/examples-of-custom-resources/cross-namespace-configuration" rel="nofollow noreferrer">https://github.com/nginxinc/kubernetes-ingress/tree/v1.7.0/examples-of-custom-resources/cross-namespace-configuration</a></p>

<p>This seems to be on the right track, but it's for paths "/cafe".  When I need it to be "a.my-site.com".</p>

<p>The main reason I want to do this is I don't want to have to install an ingress controller for every client (namespace) we have.</p>

<p>So I figured this out,
The default HELM nginx-ingress controller installation works fine without SSL certificates. NGINX Controller actually does work with ingress resources from various namespaces.</p>
<p>I installed my <code>*.domain.com</code> certificate and key using</p>
<pre><code>kubectl create secret tls {SECRET_NAME} --key {KEY_FILE} --cert {CERT_FILE}
</code></pre>
<p>Then in the nginx-ingress-controller deployment I added:</p>
<pre><code>-args:
 - --default-ssl-certificate=tenancy/whatevername-wildcard={NAMESPACE}/{SECRET_NAME}
</code></pre>
<p>The ingresses live in the namespace.  For example:</p>
<p>Namespace A: Ingress -&gt; <code>Host: a.domain.com</code></p>
<p>Namespace B: Ingress with <code>host: b.domain.com</code></p>
<p>the only thing listed in the annotations for the ingress controllers is
<code>kubernetes.io/ingress.class: &quot;nginx&quot;</code></p>
<p>All domains points to the nginx load balancer IP.</p>
<p>Now it works perfectly.  Very simple, but it was also very unclear scouring through the docs.</p>
