TrafficSplit zero-healthy-endpoint ambiguity in Traefik Mesh controller
0 reputation · 22 Aug 2021, 15:08 UTC
Traefik Mesh implements the SMI TrafficSplit spec by translating TrafficSplit custom resources into Traefik dynamic configuration, programming the data plane with a weighted load balancer across split backends. When one backend in a TrafficSplit has zero healthy endpoints, the redistribution behavior is not clearly documented: it is ambiguous whether the surviving backend absorbs all traffic or whether a weight-proportional share of requests still fails.
The uncertainty sits at the boundary between the mesh controller's SMI-to-Traefik translation and the proxy's health checking of split targets. Because Traefik Mesh uses Traefik as its data plane rather than an Envoy-based proxy, connection-pool and circuit-breaker assumptions from other service meshes do not apply, and the mesh's own exposure of transport-level settings is not well documented. The behavior is version-sensitive across the SMI specification version and the Traefik proxy version, so it should be validated against the specific pinned releases in use.
Does the surviving TrafficSplit backend receive 100% of requests when the other backend has zero healthy endpoints, or does a weight-proportional share still return errors? How does the mesh controller emit health-check configuration for split targets in the generated Traefik dynamic configuration? Which Traefik Mesh and Traefik proxy versions define the current zero-endpoint redistribution semantics?