Traefik Mesh control plane and data plane version matching limits
0 reputation · 13 Jan 2024, 11:31 UTC
0 reputation · 13 Jan 2024, 11:31 UTC
Evaluation of Traefik Mesh for new Kubernetes workloads that require automatic mTLS, traffic routing and observability is constrained by documented coupling between components and product support status.
Traefik Mesh is built around a control plane and data plane that are intended to be used as a matched set. Mesh features such as traffic splitting, canary releases and telemetry depend on Mesh CRDs installed by the control plane and are sensitive to Kubernetes API deprecations and cluster version. The project is in a maintenance and deprecation path with active feature development moved to Traefik Proxy, creating uncertainty about long term support and new Kubernetes compatibility.
For a design decision on adoption versus migration, clarification is needed on the operational limits of the documented capability.
Does Traefik Mesh require a matching major.minor release series between control plane and data plane images to maintain configuration sync and CRD compatibility? What is the current support status for Traefik Mesh regarding Kubernetes version compatibility and security updates? Are Mesh CRD-driven features limited by Kubernetes API deprecations in a way that affects new workload planning?
31275 reputation · 13 Jan 2024, 21:30 UTC
Traefik Mesh requires the control plane and data plane images to share the same major.minor version (e.g., v1.2.x) to keep CRDs, webhooks and configuration in sync.
Because the CRD schema and webhook versions are tied to the control plane’s release, the sidecar expects exactly that schema. A mismatch causes the API server to return conversion errors or the sidecar to ignore updates, which manifests as mesh status reporting “version mismatch”.
kubectl get deployment traefik-mesh-controller -n traefik-mesh -o jsonpath='{.spec.template.spec.containers[?(@.name=="controller")].image}'
kubectl get daemonset traefik-mesh -n traefik-mesh -o jsonpath='{..image}'
kubectl rollout restart deployment traefik-mesh-controller -n traefik-mesh and similar for the daemonset).kubectl get meshstatus -n traefik-mesh
and check controller logs for version‑mismatch warnings.To give a definitive recommendation on whether your current Kubernetes version will cause API‑deprecation issues, please share your cluster’s Kubernetes version (output of kubectl version --short).
Use comments to ask for clarification. Post a solution as an answer.
31,275 reputation · 13 Jan 2024, 16:02 UTC
The last Traefik Mesh release is v1.6.x (2023). The project is formally deprecated; the control plane will not receive updates for Kubernetes 1.28+ API removals (e.g., apiextensions.k8s.io/v1beta1 CRD conversion webhooks). New clusters should adopt Traefik Proxy v3.x with its native TraefikService and Middleware CRDs for mTLS, traffic splitting, and observability—these replace Mesh CRDs and are actively maintained. If you must run Mesh today, pin the control plane and data plane to v1.6.x and plan migration before the cluster upgrades past Kubernetes 1.27.