<p>I had previously installed Traefik 2 via Helm on my K8s cluster at home. I don't remember the specific version but I know it was some version of Traefik 2. My cluster is actually several Raspberry Pis where I installed Kubernetes with K3s. For many months it had been working great. When I created Services with Ingress objects, Traefik would detect this and act like a load balancer, exposing the service to a specific host name.</p>
<p>Today I ran a job that was apparently a little too resource intensive because it evicted the Traefik pods for OOM errors. Even after killing the large job, the Traefik pods didn't come back up on their own, so I uninstalled Traefik (via <code>helm uninstall</code>) and then used Helm to install the latest version (2.9.10). In particular I used the following command to install it (where I substitued 1.2.3.4 with my real IP):</p>
<pre><code>helm upgrade --install traefik --set dashboard.enabled=true --set rbac.enabled=true --set=&quot;service.externalIPs={1.2.3.4}&quot; --set=&quot;additionalArguments={--api=true,--log.level=INFO,--providers.kubernetesingress.ingressclass=traefik-internal,--serversTransport.insecureSkipVerify=true}&quot; traefik/traefik
</code></pre>
<p>However, although Traefik is now running without any obvious errors, the Ingress Controller functionality doesn't seem to work. When I look at the Traefik dashboard under Services, I see api@internal, dashboard@internal, noop@internal, ping@internal, and prometheus@internal... but nothing else. Previously I saw services listed there on the dashboard to correspond to each Ingress object I had defined. I can post the full YAML of any of my Ingress objects if desired, but suffice it to say that all of them have the <code>kubernetes.io/ingress.class: traefik</code> annotation defined.</p>
<p>Has something changed with the most recent version of Traefik? The <code>helm upgrade --install</code> command that I used is identical to the one I used many months ago. But like I said, this time around the Ingress Controller functionality no longer seems to work.</p>

soapergem
<p>It &quot;doesn't work&quot; because you provided in your additional arg <code>--providers.kubernetesingress.ingressclass=traefik-internal</code> in your helm install command and <a href="https://github.com/traefik/traefik/blob/8174860770e536b4afb541e0ab13b3611a101430/docs/content/providers/kubernetes-ingress.md#ingressclass" rel="nofollow noreferrer">traefik docs for this argument</a> says that with this arg specified, only <code>Ingress</code> object with annotation <code>kubernetes.io/ingress.class: traefik-internal</code> will be processed.</p>
<p>However, your <code>Ingress</code> objects' annotation is <code>kubernetes.io/ingress.class: traefik</code> -- that's why it &quot;no longer works&quot;.</p>
<p>To resolve this, you can run the helm upgrade command you ran with adjusted args:</p>
<p><code>helm upgrade --install traefik --set dashboard.enabled=true --set rbac.enabled=true --set=&quot;service.externalIPs={1.2.3.4}&quot; --set=&quot;additionalArguments={--api=true,--log.level=INFO,--serversTransport.insecureSkipVerify=true}&quot; traefik/traefik</code></p>
<p>This will make traefik process all <code>Ingress</code> objects <em>without the annotation, having an empty value, or the value <code>traefik</code></em></p>
<p>If you wanna be restrictive, then</p>
<p><code>helm upgrade --install traefik --set dashboard.enabled=true --set rbac.enabled=true --set=&quot;service.externalIPs={1.2.3.4}&quot; --set=&quot;additionalArguments={--api=true,--log.level=INFO,--providers.kubernetesingress.ingressclass=traefik,--serversTransport.insecureSkipVerify=true}&quot; traefik/traefik</code></p>
