Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

multipurpose xds

This started as the example xds server from envoyproxy/go-control-plane, and several features have been added.

It is intended to be used as a control plane for Grpc services to demonstrate fault tolerance features like Fault Injection and traffic direction.

Added features:

  • load a yaml Bootstrap config for serving Listener and Cluster resources
  • support grpc service introspection

TODO:

  • document required resources from the config, and their simplest form.
  • custom grpc service config that creates the right resources
  • server-side xds integrations, allowing for fault injection on server side

Example xDS Server

This is an example of a trivial xDS V3 control plane server. It serves an Envoy configuration that's roughly equivalent to the one used by the Envoy "Quick Start" docs: a simple http proxy. You can run the example using the project top-level Makefile, e.g.:

$ make example

The Makefile builds the example server and then runs build/example.sh which runs both Envoy and the example server. The example server serves a configuration defined in internal/example/resource.go. If everything works correctly, you should be able to open a browser to http://localhost:10000 and see Envoy's website.

Files

  • main/main.go is the example program entrypoint. It instantiates the cache and xDS server and runs the xDS server process.
  • resource.go generates a Snapshot structure which describes the configuration that the xDS server serves to Envoy.
  • server.go runs the xDS control plane server.
  • logger.go implements the pkg/log/Logger interface which provides logging services to the cache.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages