Sovereign is a JSON control-plane for Lyft's Envoy proxy.
A control-plane communicates with Envoy using the XDS protocol in order to supply it with configuration.
Sovereign is written to be simple and extensible so that you can start basic and increase customizations when needed.
An example of incrementally adding complexity would be:
Start with static templates that serve the same envoy config every time
Add context using a built-in plugin such as HTTP, to serve templates differently based on some polled data
Write your own context plugin to bring in data using advanced/bespoke methods
Features
Dynamic configuration: Using context plugins, sovereign can retrieve data from anywhere, whether it be over HTTP, file, inline, or some other format.
Extensibility: Define your own context plugins to bring data into sovereign
User Interface: A read-only web interface is supplied so that you can view the resources served by the control-plane.
Interface example
Planned features
These are not yet implemented but are on the roadmap.
gRPC support
Robust response caching
an xDS client that can run alongside envoy
Ability to produce artifacts (fully-rendered configs) and push them to object stores
Stateful API that allows pushing resources to Sovereign