Skip to content

Latest commit

 

History

History
52 lines (39 loc) · 2.58 KB

README.md

File metadata and controls

52 lines (39 loc) · 2.58 KB

java-control-plane

CircleCI codecov Maven Central

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.

Requirements

  1. Java 8+
  2. Maven

Build & Test

mvn clean package

More thorough usage examples are still TODO, but there is a basic test implementation in TestMain.

Bring api up-to-date with data-plane-api

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:

  1. update tools/API_SHAS (instructions are in the file) and then
  2. run tools/update-api.sh from the tools directory.
  3. update envoy-alpine-dev docker image version [EnvoyContainer.java] according to envoy SHA in first point.

Releasing a new version

To release and publish a new version, do the following:

  1. create a personal API token in CircleCI by following the instructions listed here
  2. 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>"}}'