xDS is the control plane protocol of Envoy. An Envoy instance can be configured to contact an xDS endpoint for additional config (see envoy-data/bootstrap-xdsv3.yaml).
Via xDS these 5 root level configuration types can be configured:
- endpoints (implement only this for just an Endpoint Discovery Service (EDS))
- clusters
- routes
- listeners
- runtimes
This repository shows:
- how to run a custom xDS control-plane; uses go-control-plane example.
- how to run a EDS discovery service; uses go-control-plane dyplomat example.
- how to add metadata via web assembly.
- how to add metadata via a gRPC call.
- how to dynamically select cluster endpoints based on some kind of metadata.
- https://github.com/envoyproxy/go-control-plane/tree/master/internal/example/
- https://github.com/envoyproxy/go-control-plane/tree/master/examples/dyplomat/
- https://docs.solo.io/gloo/latest/guides/dev/writing-upstream-plugins/
- WebAssembly Gloo
- https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/subsets