Back to projects View source on GitHub
xds
In ProgressA production-ready control plane for Envoy Proxy, implementing the xDS (Discovery Service) protocol. It dynamically configures Envoy proxies across a cluster or service mesh without restarting them or dropping connections.
GoEnvoygRPCDevOps
What it does
The control plane serves configuration to connected Envoy proxies over gRPC. Each xDS API is configured from its own file, loaded, validated, and hot-reloaded independently of the others — all five files are polled every 2 seconds.
- CDSCluster Discovery Service — upstream clusters — required
- LDSListener Discovery Service — listeners — required
- EDSEndpoint Discovery Service — endpoints within clusters — optional
- RDSRoute Discovery Service — routing rules — optional
- SDSSecret Discovery Service — TLS certificates and secrets — optional
Highlights
- •Each xDS API is loaded from its own YAML file, validated, and hot-reloaded independently — a failure parsing one file leaves the others’ last-good config untouched.
- •Cross-resource validation: a listener’s RDS reference and a cluster’s EDS reference must resolve to a loaded resource, or the load (or reload) fails instead of reaching Envoy as an empty config.
- •Admin HTTP server alongside the gRPC server: /healthz, /readyz, and a Prometheus /metrics endpoint.
- •Built on the official envoyproxy/go-control-plane library, serving config over gRPC via ADS.
Stack
Go, gRPC/Protobuf (Envoy API v3), and go-control-plane for the snapshot cache.