Protoconf XDS is an implementation of the Envoy's External Data Service (XDS) API that uses Protoconf as a configuration backend. It provides an easy way to manage and update Envoy's configuration dynamically.
- Go 1.16 or later
- Protoconf v0.1.7 or later
-
Clone the repository:
git clone https://github.com/protoconf/protoconf-xds.git
-
Build the binary:
cd protoconf-xds go build
Start the Protoconf XDS server by running:
./protoconf-xdsBy default, the server listens on port 18000. You can change the port by specifying the -port flag:
./protoconf-xds -port 8080Protoconf XDS reads its configuration from the environment variables or command line:
-debug env key: PROTOCONF_XDS_DEBUG type: bool (default false) -nodeId value (repeatable) env key: PROTOCONF_XDS_NODE_ID (comma separate for multiple node ids) type: string (default []) -port value env key: PROTOCONF_XDS_PORT type: uint32 (default 18000) -prefix value env key: PROTOCONF_XDS_PREFIX type: string (default example) -protoconfAgentAddr value env key: PROTOCONF_XDS_PROTOCONF_AGENT_ADDR type: string (default localhost:4300) The example in this repository is inspired by Envoy's ratelimit project.
To run the protoconf agent:
protoconf agent -dev .To run the proxy, mock and ratelimit:
docker-compose upProtoconf XDS is licensed under the MIT License. See LICENSE file for more information.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
This project was inspired by the Envoy xDS server example and uses Protoconf gRPC Client to communicate with the Protoconf API server.
