example

package
v0.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 2, 2024 License: Apache-2.0 Imports: 28 Imported by: 0

README

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.

Documentation

Index

Constants

View Source
const (
	ClusterName  = "example_proxy_cluster"
	RouteName    = "local_route"
	ListenerName = "listener_0"
	ListenerPort = 10000
	UpstreamHost = "www.envoyproxy.io"
	UpstreamPort = 80
)

Variables

This section is empty.

Functions

func GenerateSnapshot

func GenerateSnapshot() *cache.Snapshot

func RunServer

func RunServer(srv server.Server, port uint)

RunServer starts an xDS server at the given port.

Types

type Logger

type Logger struct {
	Debug bool
}

An example of a logger that implements `pkg/log/Logger`. Logs to stdout. If Debug == false then Debugf() and Infof() won't output anything.

func (Logger) Debugf

func (logger Logger) Debugf(format string, args ...interface{})

Log to stdout only if Debug is true.

func (Logger) Errorf

func (logger Logger) Errorf(format string, args ...interface{})

Log to stdout always.

func (Logger) Infof

func (logger Logger) Infof(format string, args ...interface{})

Log to stdout only if Debug is true.

func (Logger) Warnf

func (logger Logger) Warnf(format string, args ...interface{})

Log to stdout always.

type Server added in v0.11.0

type Server struct {
	// contains filtered or unexported fields
}

func NewServer added in v0.11.0

func NewServer(ctx context.Context, cache cache.Cache, cb *test.Callbacks) *Server

func (*Server) Run added in v0.11.0

func (s *Server) Run(port uint)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL