• Stars
    star
    291
  • Rank 142,563 (Top 3 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created almost 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Java implementation of an Envoy gRPC control plane

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.

Only v3 resources as well as transport versions are now supported. Migrating to v3 is necessary as Envoy dropped v2 support at EOY 2020 (see API_VERSIONING.md)

See the v2-to-v3 migration guide for an explanation 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.

Envoy API

There is automation built into this repo to keep the Envoy API (i.e. protobuf files) up to date with the latest available Envoy release.

This automation uses Github Workflows and works as follows: a scheduled workflow runs with weekly cadence, and calls a reusable workflow that fetches the latest available Envoy release and compares it with the version currently used in the repo.

If the latest available Envoy release doesn't match the version currently used, another reusable workflow is called which creates a PR that upgrades the Envoy API to the latest available release.

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 -X POST \
    -H "Content-Type: application/json" \
    -d '{ "build_parameters": { "RELEASE": "<e.g. 0.1.29>", "NEXT": "<e.g. 0.1.30-SNAPSHOT>" } }' \
    "https://circleci.com/api/v1.1/project/github/envoyproxy/java-control-plane/tree/main?circle-token=<API token>"

More Repositories

1

envoy

Cloud-native high-performance edge/middle/service proxy
C++
24,546
star
2

ratelimit

Go/gRPC service designed to enable generic rate limit scenarios from different types of applications.
Go
2,245
star
3

go-control-plane

Go implementation of data-plane-api
Go
1,498
star
4

gateway

Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway
Go
1,496
star
5

envoy-mobile

Client HTTP and networking library based on the Envoy project for iOS, Android, and more.
Java
559
star
6

data-plane-api

[READ ONLY MIRROR] Envoy REST/proto API definitions and documentation.
Starlark
558
star
7

nighthawk

L7 (HTTP/HTTPS/HTTP2/HTTP3) performance characterization tool
C++
361
star
8

envoy-filter-example

Example of consuming Envoy and adding a custom filter
C++
330
star
9

envoy-wasm

*ATTENTION!: The content of this repo is merged into https://github.com/envoyproxy/envoy and future development is happening there.
C++
205
star
10

xds-relay

Caching, aggregation, and relaying for xDS compliant clients and origin servers
Go
131
star
11

envoy-perf

Envoy performance testing
Python
130
star
12

learnenvoy

LearnEnvoy is a community content site that helps organizations get the most out of the Envoy proxy.
HTML
55
star
13

envoy-tools

Companion tooling for Envoy proxy
Go
49
star
14

envoy-openssl

Envoy OpenSSL extensions
C++
46
star
15

envoy-build-tools

Common build tools shared by the Envoy/UDPA ecosystem
Shell
43
star
16

envoy-website

Envoy Proxy website
HTML
41
star
17

katacoda-scenarios

Katacoda Scenarios for Envoy Proxy
Python
27
star
18

artwork

Envoy Logo and Artwork
11
star
19

toolshed

Python
10
star
20

playground

Playing nice with the neighbours
JavaScript
8
star
21

community

Issues global to the Envoy Proxy organization
8
star
22

ci-infra

HCL
7
star
23

management-plane-api

API definitions for the network management plane
Shell
5
star
24

envoybot

3
star
25

examples

Shell
3
star
26

envoy-distro

Starlark
2
star
27

archive

2
star
28

misc

1
star
29

apt

Starlark
1
star
30

mobile-website

Starlark
1
star