This repository contains a Java-based implementation of an API server that implements the discovery service APIs defined in data-plane-api. It started life as a port of go-control-plane, but building an idiomatic Java implementation is prioritized over exact interface parity with the Go implementation.
Both v2 and v3 resources as well as transport versions are supported. Migrating to v3 is recommended as Envoy will drop v2 support at EOY 2020 (see API_VERSIONING.md)
See the (v2-to-v3 migration guide)[V2_TO_V3_GUIDE.md] for an exmplanation of migration paths.
- Java 8+
- Maven
mvn clean package
More thorough usage examples are still TODO, but there is a basic test implementation in TestMain.
To bring this repository's protobuf files up-to-date with the source of truth protobuf files in in envoyproxy/data-plane-api, do the following:
- update tools/API_SHAS (instructions are in the file) and then
- run tools/update-api.sh from the
tools
directory. - update envoy-alpine-dev docker image version [EnvoyContainer.java] according to envoy SHA in first point.
To release and publish a new version, do the following:
- create a personal API token in CircleCI by following the instructions listed here
- from terminal, curl the CircleCI API as follows
curl --request POST \
--url https://circleci.com/api/v2/project/github/envoyproxy/java-control-plane/pipeline \
--header 'Circle-Token: <API token>' \
--header 'content-type: application/json' \
--data '{"branch":"main","parameters":{"RELEASE":"<e.g. 0.1.29>","NEXT":"<e.g. 0.1.30-SNAPSHOT>"}}'