K8 CRD issues after doing helm install with latest

Short version.. Installed latest v2 with helm on k8 (1.23.8).
kubectl get ingressroutes --all-namespaces shows nothing. Same for middleware etc.
i know from the helm chart output it created the dashboard ingress route. i can access the dashboard and i see there is a route and its a crd.

if i apply a chart but change the api to use traefik.containo.us/v1alpha1, it will create the ingress route and will show up when I do a get.
The issue is that the existing route is still there somewhere. I tried apply changes to the route with api (ie added basic auth to dashboard etc) and it wont recognise the changes etc.

Basically, seems to be an issue with how the crd's are using the api.

I backed out and installed version 22.3.0. Works correctly immediately.
Installing 23.x and ingressroute it stops working. Its something to do with the CRDS change and how the api's a referenced.

Its very frustrating...
Any help would be great.

I can provide the outputs from helm during install etc if it helps.
(fyi. I even tried install v3 hoping all the crd rename changes were done and it would be fixed.. same issue)..

If you consider this a real bug, you can open an issue on Traefik Github (link).

Hello @chrispward,

From what I understand the issue seems to come from the Helm Chart.
I recommend opening an issue on the Traefik Helm Chart repository instead of the Traefik one

It's related to CRD change, yes.

Starting with Traefik Proxy v2.10, CRDs are supported on two API Groups: ingressroute.traefik.io and ingressroute.containo.us.

Traefik Helm Chart v23 introduced support of Traefik Proxy v2.10.

With those versions, kubectl get ingressroutes --all-namespaces give the feeling it does not work, but in fact, it's just requesting ingressroute.containo.us.

When specifying full API group:

kubectl get ingressroute.traefik.io --all-namespaces

One can see all Ingressroute using traefik.io API Group.

On the Chart, we have discussed about how to fix it, see Allow an easy way to disable legacy CRDs in Helm chart · Issue #895 · traefik/traefik-helm-chart · GitHub
FTM, it's not possible : Traefik Proxy v2.10 does not start without CRDs on both API Groups.
=> We have reverted the change: revert: "fix: 🐛 remove old CRDs using traefik.containo.us" by mloiseleur · Pull Request #944 · traefik/traefik-helm-chart · GitHub

We should be able to finish the transition with Traefik v3.

Thanks. Following your links and this solved the issue.

After a little clean up.
(I was able to see both ingressroutes with the kubectl get ingressroute.traefik.io and kubectl get ingressroute so I deleted the ones that were using ingressroute.containo.us 1st.)

This solved the issue for me
kubectl get crd | grep 'traefik.containo.us' | awk '{ print $1 }' | xargs kubectl delete crd
kubectl get ingressroute.traefik.io --all-namespaces
kubectl get ingressroute --all-namespaces

Thanks for your help. This had been driving me nuts..

Ah... just restarted the traefik pod and its now getting errors.

failed to list *v1alpha1.Middleware: the server could not find the requested resource (get middlewares.traefik.containo.us)
failed to list *v1alpha1.IngressRoute: the server could not find the requested resource (get ingressroutes.traefik.containo.us)
list *v1alpha1.TLSStore: the server could not find the requested resource (get tlsstores.traefik.containo.us)

FTM, Traefik Proxy cannot start without both traefik.io and traefik.containo.us CRDs.

1 Like

yeah. I reinstalled the crds. It started working but then the get ingressroutes etc defaults to using the traefik_containo_us apis

What I'm finding is that if I do...

kubectl get ingressroute_traefik_io --all-namespaces
and same for the other resources (middleware etc)
it then reverts to using the ingressroute.traefik.io when doing kubectl get ingressroutes etc..

Sort of a work around for now until we upgrade to r3 when its ready.