<p>I use a helm to deploy cluster and include ingress chart dependency.</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: v2
name: aloco
description: A Helm chart for Kubernetes

type: application

version: 0.1.0

appVersion: &quot;1.16.0&quot;

dependencies:
  - name: ingress-nginx
    version: &quot;4.7.*&quot;
    repository: &quot;https://kubernetes.github.io/ingress-nginx&quot;
</code></pre>
<p>Helm when deploys ingress adds <code>aloco</code> to the service name and ingress becomes to <code>aloco-ingress-nginx-controller-admission</code> because helm adds chart name.</p>
<pre><code>NAMESPACE     NAME                                       TYPE           CLUSTER-IP       EXTERNAL-IP       PORT(S)                      AGE
default       aloco-ingress-nginx-controller             LoadBalancer   10.245.104.155   159.223.250.102   80:31357/TCP,443:30712/TCP   12m
default       aloco-ingress-nginx-controller-admission   ClusterIP      10.245.42.135    &lt;none&gt;            443/TCP                      12m
</code></pre>
<p>Because helm adds the chart name to the ingress, I got an error that <code>ingress-nginx-controller-admission</code> not found</p>
<pre><code>Error: UPGRADE FAILED: failed to create resource: Internal error occurred: failed calling webhook &quot;validate.nginx.ingress.kubernetes.io&quot;: failed to call webhook: Post &quot;https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=29s&quot;: service &quot;ingress-nginx-controller-admission&quot; not found
</code></pre>
<p>Is their option to remove <code>aloco</code> or change <code>validate.nginx.ingress.kubernetes.io</code> ?</p>

Vitalii
<p>This error occurs if you have another Nginx ingress controller installed on your cluster and the admission webhook pod for that chart is down or erroring. Or, as in your case, looks like the other service was not torn down correctly</p>
<p>The cause is actually in your output:</p>
<pre><code>failed to call webhook: Post &quot;https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=29s&quot;: service &quot;ingress-nginx-controller-admission&quot; not found
</code></pre>
<p>Check if you have an nginx chart installed in the <code>ingress-nginx</code> namespace.</p>
<p>Did you remove it manually and not via <code>helm delete</code>? You likely did, since that's the most common reason for leaving configs around.</p>
<p>To remove the webhook config that's blocking your install:</p>
<pre><code>kubectl get validatingwebhookconfigurations
</code></pre>
<p>This will list all the validatingwebhookconfigurations. There should be one in there labelled <code>ingress-nginx-admission</code> or similar.</p>
<p>Edit it or use <code>jq</code> (or use <code>-o jsonpath</code>) to make sure its the one pointing at your removed service (you'll see the service the config points to under <code>webhooks[0].clientConfig.service</code></p>
<pre><code>kubectl edit validatingwebhookconfiguration {name of config}
</code></pre>
<p>or</p>
<pre><code>kubectl get validatingwebhookconfigurations {name of config} -o json | jq .webhooks[0].clientConfig.service
</code></pre>
<p>If it is the one that is pointing at the deleted service, you can remove it</p>
<pre><code>kubectl delete validatingwebhookconfiguration -n {namespace} {name of config}
</code></pre>
