envoy

package
v0.9.0-1.2.0-adobe Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2019 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package envoy contains a configuration writer for v2 YAML config. To avoid a dependncy on a YAML library, we generate the YAML using the text/template package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Cluster

func Cluster(s dag.Service) *v2.Cluster

Cluster creates new v2.Cluster from service.

func ClusterCommonLBConfig added in v0.8.0

func ClusterCommonLBConfig() *v2.Cluster_CommonLbConfig

func Clustername added in v0.7.0

func Clustername(service *dag.TCPService) string

Clustername returns the name of the CDS cluster for this service.

func ConfigSource added in v0.7.0

func ConfigSource(cluster string) *core.ConfigSource

ConfigSource returns a *core.ConfigSource for cluster.

func DownstreamTLSContext added in v0.7.0

func DownstreamTLSContext(cert, key []byte, tlsMinProtoVersion auth.TlsParameters_TlsProtocol, alpnProtos ...string) *auth.DownstreamTlsContext

DownstreamTLSContext creates a new DownstreamTlsContext.

func HTTPConnectionManager added in v0.7.0

func HTTPConnectionManager(routename, accessLogPath string) listener.Filter

HTTPConnectionManager creates a new HTTP Connection Manager filter for the supplied route and access log.

func LBEndpoint added in v0.7.0

func LBEndpoint(addr string, port int) endpoint.LbEndpoint

LBEndpoint creates a new SocketAddress LbEndpoint..

func PerFilterConfig

func PerFilterConfig(r *dag.Route) (conf map[string]*types.Struct)

func PrefixMatch added in v0.7.0

func PrefixMatch(prefix string) route.RouteMatch

PrefixMatch creates a RouteMatch for the supplied prefix.

func RouteRoute added in v0.7.0

func RouteRoute(r *dag.Route, services []*dag.HTTPService) *route.Route_Route

RouteRoute creates a route.Route_Route for the services supplied. If len(services) is greater than one, the route's action will be a weighted cluster.

func SocketAddress added in v0.7.0

func SocketAddress(address string, port int) core.Address

SocketAddress creates a new TCP core.Address.

func TCPProxy added in v0.8.0

func TCPProxy(statPrefix string, proxy *dag.TCPProxy, accessLogPath string) listener.Filter

TCPProxy creates a new TCPProxy filter.

func TLSInspector added in v0.7.0

func TLSInspector() listener.ListenerFilter

TLSInspector returns a new TLS inspector listener filter.

func UpgradeHTTPS added in v0.7.0

func UpgradeHTTPS() *route.Route_Redirect

UpgradeHTTPS returns a route Action that redirects the request to HTTPS.

func UpstreamTLSContext added in v0.7.0

func UpstreamTLSContext() *auth.UpstreamTlsContext

UpstreamTLSContext creates an ALPN h2 enabled TLS Context.

func VirtualHost

func VirtualHost(hostname string, port int) route.VirtualHost

VirtualHost creates a new route.VirtualHost.

Types

type ConfigWriter

type ConfigWriter struct {
	// AdminAccessLogPath is the path to write the access log for the administration server.
	// Defaults to /dev/null.
	AdminAccessLogPath string

	// AdminAddress is the TCP address that the administration server will listen on.
	// Defaults to 127.0.0.1.
	AdminAddress string

	// AdminPort is the port that the administration server will listen on.
	// Defaults to 9001.
	AdminPort int

	// StatsAddress is the address that the /stats path will listen on.
	// Defaults to 0.0.0.0 and is only enabled if StatsdEnabled is true.
	StatsAddress string

	// StatsPort is the port that the /stats path will listen on.
	// Defaults to 8002 and is only enabled if StatsdEnabled is true.
	StatsPort int

	// XDSAddress is the TCP address of the XDS management server. For JSON configurations
	// this is the address of the v1 REST API server. For YAML configurations this is the
	// address of the v2 gRPC management server.
	// Defaults to 127.0.0.1.
	XDSAddress string

	// XDSRESTPort is the management server port that provides the v1 REST API.
	// Defaults to 8000.
	XDSRESTPort int

	// XDSGRPCPort is the management server port that provides the v2 gRPC API.
	// Defaults to 8001.
	XDSGRPCPort int

	// StatsdEnabled enables metrics output via statsd
	// Defaults to false.
	StatsdEnabled bool

	// StatsdAddress is the UDP address of the statsd endpoint
	// Defaults to 127.0.0.1.
	StatsdAddress string

	// StatsdPort is port of the statsd endpoint
	// Defaults to 9125.
	StatsdPort int

	// Default: false
	PrometheusListenerEnabled bool

	// Default: 0.0.0.0
	PrometheusListenerAddress string

	// Default: 39090
	PrometheusListenerPort int

	// Default: /etc/envoy/ca-cert.pem
	PrometheusListenerCACertPath string

	// Default: /etc/envoy/cert.pem
	PrometheusListenerCertPath string

	// Default: /etc/envoy/key.pem
	PrometheusListenerKeyPath string

	// Default: prometheus
	PrometheusClusterAddress string

	// Default: 9090
	PrometheusClusterPort int

	// Default: false
	BufferFilterEnabled bool

	// Default: 2^32-1
	// Envoy's buffer limit is a uint32 and we expect per-route config to override/disable it
	// https://github.com/envoyproxy/envoy/blob/v1.8.0/include/envoy/http/filter.h#L287-L292
	BufferFilterMaxRequestBytes uint32

	// Default: 60s
	// Matches nginx's proxy_read_timeout and proxy_send_timeout
	BufferFilterMaxRequestTime int

	// Default: false
	HeaderSizeFilterEnabled bool

	// Default: 63KiB
	// https://github.com/envoyproxy/envoy/pull/5654/files#diff-62f92f4fe8350a66ff9e3ca9e5299228R140
	HeaderSizeFilterMaxBytes uint32
}

A ConfigWriter knows how to write a bootstap Envoy configuration in YAML format.

func (*ConfigWriter) WriteYAML

func (c *ConfigWriter) WriteYAML(w io.Writer) error

WriteYAML writes the configuration to the supplied writer in YAML v2 format. If the supplied io.Writer is a file, it should end with a .yaml extension.

Jump to

Keyboard shortcuts

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