<p>In the past I've installed them using:</p>
<pre><code>helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

helm install ingress-nginx-01 ingress-nginx/ingress-nginx
</code></pre>
<p>and could have multiple.</p>
<p>Now I'm getting this error when I try to install another:</p>
<pre><code>Error: rendered manifests contain a resource that already exists. Unable to continue with
install: IngressClass &quot;nginx&quot; in namespace &quot;&quot; exists and cannot be imported into the
current release: invalid ownership metadata; annotation validation error: key
&quot;meta.helm.sh/release-name&quot; must equal &quot;ingress-nginx-02&quot;: current value is
&quot;ingress-nginx-01&quot;; annotation validation error: key
&quot;meta.helm.sh/release-namespace&quot; must equal &quot;ingress-02&quot;: current value is &quot;ingress-01&quot;
</code></pre>

mitchldtn
<p>You have to set the <strong>Class Name</strong> while installing the new Nginx ingress controller again.</p>
<p>For example :</p>
<pre><code>helm install stable/nginx-ingress --set controller.ingressClass=gce --namespace kube-system --set controller.replicaCount=2 --set rbac.create=false
helm install stable/nginx-ingress --set controller.ingressClass=nginx --namespace kube-system --set controller.replicaCount=2 --set rbac.create=false
helm install stable/nginx-ingress --set controller.ingressClass=third --namespace kube-system --set controller.replicaCount=2 --set rbac.create=false
</code></pre>
<p>based on your helm version you can pass the name of Helm as you did <code>ingress-nginx-01</code>, <code>ingress-nginx-02</code> but main thing is class name: <code>--set controller.ingressClass=gce</code></p>
<p>as error says</p>
<pre><code>install: IngressClass &quot;nginx&quot; in namespace &quot;&quot; exists**strong text**
</code></pre>
<p><strong>Multiple Ingress controllers</strong></p>
<p>If you're running multiple ingress controllers or running on a cloud provider that natively handles ingress such as <strong>GKE</strong>, you need to specify the annotation <code>kubernetes.io/ingress.class: &quot;nginx&quot;</code> in all ingresses that you would like the <code>ingress-nginx</code> controller to claim.</p>
<p>For instance,</p>
<pre><code>metadata:
  name: foo
  annotations:
    kubernetes.io/ingress.class: &quot;gce&quot;
</code></pre>
<p>will target the <strong>GCE controller</strong>, forcing the Nginx controller to ignore it, while an annotation like</p>
<pre><code>metadata:
  name: foo
  annotations:
    kubernetes.io/ingress.class: &quot;nginx&quot;
</code></pre>
<p>will target the nginx controller, forcing the GCE controller to ignore it.</p>
<p>Example : <a href="https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/" rel="nofollow noreferrer">https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/</a></p>
<p>Ref : <a href="https://vincentlauzon.com/2018/11/28/understanding-multiple-ingress-in-aks/" rel="nofollow noreferrer">https://vincentlauzon.com/2018/11/28/understanding-multiple-ingress-in-aks/</a></p>
