Service Mesh Platform · View 02 of 31 · 1 · Context and scope
Decisions
- Intent is declared in Git and checked twice: by policy checks before merge, and by admission guards when it reaches a cluster. The second check exists because the first one can be bypassed by anyone with kubectl.
- The data plane stage is the only one on a request path. Everything to its left pushes; nothing to its left is pulled from during a call.
- The loop closes through observation. The rollout controller reads the traffic share the proxies actually applied, which is how a weight change that never landed gets noticed.
Why this shape lasts
- Each stage is a replaceable product behind a stable interface: Git, the Kubernetes API, xDS, SPIFFE and OTLP. Istio, SPIRE or Argo can each be swapped without redrawing this page.
Risks
- istiod also serves the sidecar injector. Losing it blocks new meshed pods as well as new config; view 21 shows that this is survivable, and view 31 how injection fails per namespace.