This is a simple control plane for envoy which pulls xDS data from files on the file system. It uses java-control-plane to maintain configuration snapshots and manage propagating configuration changes to listening envoys, and makes use of file watching to monitor the configuration files for updates.
java-controle-plane uses the idea of a node group: a group of envoys that map to the same configuration group will receive the same set of configurations and updated whenever the configuration for that group has changed.
This control plane employs the following scheme:
$CONFIG_ROOT/<group>/<resource_type>/xxx.json
where group
is the string representing of a node group and resource_type
is one of the
xds resources (e.g. clusters
, endpoints
, routes
, listeners
, etc.).
This allows updating the xDS configuration for a single group simply by writing the update to one of the config files.