Should Traefik create an IngressClass resource?

I have a setup where I install Traefik and Cert-Manager via their respective Helm charts. Cert-Manager is used to issue certs from Let's Encrypt. I had a setup that worked just fine. Cert-Manager would create Ingress resources on demand for the Let's Encrypt challenges.

Recently, we updated Kubernetes and all Helm charts to their latest versions, and redeployed the cluster from scratch. That caused the cert issuing to stop working.

I figured out that it came down to the fact the there was a missing IngressClass resource. (So the Traefik wouldn't setup those routes).

I'm installing Traefik via Helm (10.6.1) with additional arguments like:

    additionalArguments:
      - "--providers.kubernetesIngress.ingressClass=traefik-cert-manager"

This is the Cert-Manager ClusterIssuer:

...
    solvers:
      - http01:
          ingress:
            class: traefik-cert-manager
            ingressTemplate:
              metadata:
                annotations:
                  traefik.ingress.kubernetes.io/router.tls: "true"

Was that IngressClass automatically created in previous versions of Traefik? Or had I created one manually and fortgotten about it? :smiley:

Anyway, if I manually create an IngressClass, everything works as expected again. So I'm just curious to know if that is an expected behaviour?

Thanks!

I think I found the reason:

Looks like it's more related to Kubernetes networking.k8s.io/v1 Ingress type changes then: :blush:

"As a result of the change to networking.k8s.io/v1 Ingress type, the ingress class annotation changed from a simple string to a reference to an IngressClass object. Your Ingress controller installation instructions should include setting up an Ingress Class, but a lot of people upgrade their old installations and don't end up with one."