How I setup my Traefik Dashboard
I’ve been learning how to work with ingress with Traefik on my k3s cluster. Most of these have been fairly simple. Adding an Ingress manifest, pointing a domain to a service and port. But the traefik dashboard was a little different.
I found some explanations to get that done that were out of date. One was actually really close but used an out of date CRD: ingressroutes.traefik.containo.us.
When applying, this gave me an error:
error: resource mapping not found for name: "traefik-dashboard" namespace: "kube-system" from "kube-system/traefik/_ingress.yaml": no matches for kind "IngressRoute" in version "traefik.containo.us/v1alpha1"
ensure CRDs are installed first
Looking at available CRDs showed me I did have one for IngressRoute:
kubectl get crds | grep -i traefik
Output:
...
ingressroutes.traefik.io 2026-03-28T20:46:13Z
...
Looking at the documentation , I could then figure out how to use it.
With that, and adding a mkcert generated certificate, my manifest for the dashboard looks like this
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: traefik-dashboard
namespace: kube-system
spec:
tls:
domains:
- main: traefik.local
secretName: traefik-tls
entryPoints:
- websecure
routes:
- match: Host(`traefik.local`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
kind: Rule
services:
- name: api@internal
kind: TraefikService
Another thing that was required was to edit the config with kubectl edit helmchartconfig traefik -n kube-system
I added this to it
ingressRoute:
dashboard:
enabled: true