v3

package
v1.29.0 Latest Latest
Warning

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

Go to latest
Published: May 7, 2024 License: Apache-2.0 Imports: 67 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CORSFilterName            string = "envoy.filters.http.cors"
	LocalRateLimitFilterName  string = "envoy.filters.http.local_ratelimit"
	GlobalRateLimitFilterName string = "envoy.filters.http.ratelimit"
	RBACFilterName            string = "envoy.filters.http.rbac"
	ExtAuthzFilterName        string = "envoy.filters.http.ext_authz"
	JWTAuthnFilterName        string = "envoy.filters.http.jwt_authn"
	LuaFilterName             string = "envoy.filters.http.lua"
	CompressorFilterName      string = "envoy.filters.http.compressor"
	GRPCWebFilterName         string = "envoy.filters.http.grpc_web"
	GRPCStatsFilterName       string = "envoy.filters.http.grpc_stats"
)
View Source
const (
	DynamicRuntimeLayerName = "dynamic"
)

Variables

This section is empty.

Functions

func AdminListener added in v1.14.2

func AdminListener(port int) *envoy_config_listener_v3.Listener

AdminListener returns a *envoy_config_listener_v3.Listener configured to serve Envoy debug routes from the admin webpage.

func CORSVirtualHost added in v1.11.0

CORSVirtualHost creates a new route.VirtualHost with a CORS policy.

func Cluster added in v1.11.0

Cluster creates new envoy_config_cluster_v3.Cluster from dag.Cluster.

func ClusterCommonLBConfig added in v1.11.0

func ClusterCommonLBConfig() *envoy_config_cluster_v3.Cluster_CommonLbConfig

ClusterCommonLBConfig creates a *envoy_config_cluster_v3.Cluster_CommonLbConfig with HealthyPanicThreshold disabled.

func ClusterDiscoveryType

ClusterDiscoveryType returns the type of a ClusterDiscovery as a Cluster_type.

func ClusterDiscoveryTypeForAddress added in v1.15.0

ClusterDiscoveryTypeForAddress returns the type of a ClusterDiscovery as a Cluster_type. If the provided address is an IP, overrides the type to STATIC, otherwise uses the passed in type.

func ClusterLoadAssignment added in v1.11.0

ClusterLoadAssignment returns a *envoy_config_endpoint_v3.ClusterLoadAssignment with a single LocalityLbEndpoints of the supplied addresses.

func ConfigSource

func ConfigSource(cluster string) *envoy_config_core_v3.ConfigSource

ConfigSource returns a *envoy_config_core_v3.ConfigSource for cluster.

func ContainsFallbackFilterChain added in v1.11.0

func ContainsFallbackFilterChain(filterchains []*envoy_config_listener_v3.FilterChain) bool

func DNSNameCluster added in v1.23.0

DNSNameCluster builds a envoy_config_cluster_v3.Cluster for the given *dag.DNSNameCluster.

func DownstreamTLSContext added in v1.11.0

func DownstreamTLSContext(serverSecret *dag.Secret, tlsMinProtoVersion, tlsMaxProtoVersion envoy_transport_socket_tls_v3.TlsParameters_TlsProtocol, cipherSuites []string, peerValidationContext *dag.PeerValidationContext, alpnProtos ...string) *envoy_transport_socket_tls_v3.DownstreamTlsContext

DownstreamTLSContext creates a new DownstreamTlsContext.

func DownstreamTLSTransportSocket

DownstreamTLSTransportSocket returns a custom transport socket using the DownstreamTlsContext provided.

func Endpoints

Endpoints returns a slice of LocalityLbEndpoints. The slice contains one entry, with one LbEndpoint per *envoy_config_core_v3.Address supplied.

func ExtensionCluster added in v1.11.0

func ExtensionCluster(ext *dag.ExtensionCluster) *envoy_config_cluster_v3.Cluster

ExtensionCluster builds a envoy_config_cluster_v3.Cluster struct for the given extension service.

func ExternalNameClusterLoadAssignment added in v1.23.0

func ExternalNameClusterLoadAssignment(service *dag.Service) *envoy_config_endpoint_v3.ClusterLoadAssignment

ExternalNameClusterLoadAssignment creates a *envoy_config_endpoint_v3.ClusterLoadAssignment pointing to service's ExternalName DNS address.

func FileAccessLogEnvoy added in v1.11.0

func FileAccessLogEnvoy(path, format string, extensions []string, level contour_v1alpha1.AccessLogLevel) []*envoy_config_accesslog_v3.AccessLog

FileAccessLogEnvoy returns a new file based access log filter

func FileAccessLogJSON added in v1.11.0

FileAccessLogJSON returns a new file based access log filter that will log in JSON format

func FilterChain added in v1.11.0

FilterChain returns a *envoy_config_listener_v3.FilterChain for the supplied filters.

func FilterChainTLS added in v1.11.0

FilterChainTLS returns a TLS enabled envoy_config_listener_v3.FilterChain.

func FilterChainTLSFallback added in v1.11.0

FilterChainTLSFallback returns a TLS enabled envoy_config_listener_v3.FilterChain configured for FallbackCertificate.

func FilterChains added in v1.11.0

FilterChains returns a []*envoy_config_listener_v3.FilterChain for the supplied filters.

func FilterExternalAuthz added in v1.11.0

func FilterExternalAuthz(externalAuthorization *dag.ExternalAuthorization) *envoy_filter_network_http_connection_manager_v3.HttpFilter

FilterExternalAuthz returns an `ext_authz` filter configured with the requested parameters.

func FilterJWTAuthN added in v1.28.0

FilterJWTAuthN returns a `jwt_authn` filter configured with the requested parameters.

func FilterMisdirectedRequests added in v1.11.0

func FilterMisdirectedRequests(fqdn string) *envoy_filter_network_http_connection_manager_v3.HttpFilter

func Filters added in v1.11.0

Filters returns a []*envoy_config_listener_v3.Filter for the supplied filters.

func GlobalRateLimitFilter added in v1.13.0

GlobalRateLimitFilter returns a configured HTTP global rate limit filter, or nil if config is nil.

func GlobalRateLimits added in v1.13.0

func GlobalRateLimits(descriptors []*dag.RateLimitDescriptor) []*envoy_config_route_v3.RateLimit

GlobalRateLimits converts DAG RateLimitDescriptors to Envoy RateLimits.

func GrpcService added in v1.22.0

func GrpcService(clusterName, sni string, timeout timeout.Setting) *envoy_config_core_v3.GrpcService

GRPCService returns a envoy_config_core_v3.GrpcService for the given parameters.

func HTTPConnectionManager added in v1.11.0

func HTTPConnectionManager(routename string, accesslogger []*envoy_config_accesslog_v3.AccessLog, requestTimeout time.Duration) *envoy_config_listener_v3.Filter

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

func HTTPConnectionManagerBuilder added in v1.11.0

func HTTPConnectionManagerBuilder() *httpConnectionManagerBuilder

HTTPConnectionManagerBuilder creates a new HTTP connection manager builder. nolint:revive

func HealthCheckConfig added in v1.24.0

func HealthCheckConfig(healthCheckPort int32) *envoy_config_endpoint_v3.Endpoint_HealthCheckConfig

HealthCheckConfig returns an *envoy_config_endpoint_v3.Endpoint_HealthCheckConfig with a single

func LBEndpoint

LBEndpoint creates a new LbEndpoint.

func Listener added in v1.11.0

func Listener(name, address string, port int, perConnectionBufferLimitBytes *uint32, so *SocketOptions, lf []*envoy_config_listener_v3.ListenerFilter, filters ...*envoy_config_listener_v3.Filter) *envoy_config_listener_v3.Listener

Listener returns a new envoy_config_listener_v3.Listener for the supplied address, port, and filters.

func ListenerFilters added in v1.11.0

ListenerFilters returns a []*envoy_config_listener_v3.ListenerFilter for the supplied listener filters.

func LocalRateLimitConfig added in v1.12.0

func LocalRateLimitConfig(config *dag.LocalRateLimitPolicy, statPrefix string) *anypb.Any

LocalRateLimitConfig returns a config for the HTTP local rate limit filter.

func ParseTLSVersion added in v1.11.0

func PathRouteMatch added in v1.23.0

func PathRouteMatch(pathMatchCondition dag.MatchCondition) *envoy_config_route_v3.RouteMatch

PathRouteMatch creates a *envoy_config_route_v3.RouteMatch with *only* a PathSpecifier populated.

func ProtoNamesForVersions added in v1.11.0

func ProtoNamesForVersions(versions ...HTTPVersionType) []string

ProtoNamesForVersions returns the slice of ALPN protocol names for the give HTTP versions.

func ProxyProtocol added in v1.11.0

ProxyProtocol returns a new Proxy Protocol listener filter.

func RouteConfiguration added in v1.11.0

func RouteConfiguration(name string, virtualhosts ...*envoy_config_route_v3.VirtualHost) *envoy_config_route_v3.RouteConfiguration

RouteConfiguration returns a *envoy_config_route_v3.RouteConfiguration.

func RouteMatch added in v1.11.0

func RouteMatch(route *dag.Route) *envoy_config_route_v3.RouteMatch

RouteMatch creates a *envoy_config_route_v3.RouteMatch for the supplied *dag.Route.

func RuntimeLayers added in v1.22.0

func RuntimeLayers(configurableRuntimeFields map[string]*structpb.Value) []*envoy_service_runtime_v3.Runtime

func SafeRegexMatch added in v1.11.0

func SafeRegexMatch(regex string) *envoy_matcher_v3.RegexMatcher

SafeRegexMatch returns a envoy_matcher_v3.RegexMatcher for the supplied regex. SafeRegexMatch does not escape regex meta characters.

func Secret added in v1.11.0

Secret creates new envoy_transport_socket_tls_v3.Secret from secret.

func SocketAddress

func SocketAddress(address string, port int) *envoy_config_core_v3.Address

SocketAddress creates a new TCP envoy_config_core_v3.Address.

func StatsListeners added in v1.20.0

StatsListeners returns an array of *envoy_config_listener_v3.Listeners, either single HTTP listener or HTTP and HTTPS listeners depending on config. The listeners are configured to serve:

  • prometheus metrics on /stats (either over HTTP or HTTPS)
  • readiness probe on /ready (always over HTTP)

func StatsSecrets added in v1.20.0

StatsSecrets returns SDS secrets that refer to local file paths in Envoy container.

func TCPProxy added in v1.11.0

func TCPProxy(statPrefix string, proxy *dag.TCPProxy, accesslogger []*envoy_config_accesslog_v3.AccessLog) *envoy_config_listener_v3.Filter

TCPProxy creates a new TCPProxy filter.

func TLSInspector added in v1.11.0

TLSInspector returns a new TLS inspector listener filter.

func TracingConfig added in v1.25.0

TracingConfig returns a tracing config, or nil if config is nil.

func UnixSocketAddress added in v1.14.2

func UnixSocketAddress(address string) *envoy_config_core_v3.Address

UnixSocketAddress creates a new Unix Socket envoy_config_core_v3.Address.

func UpgradeHTTPS added in v1.11.0

func UpgradeHTTPS() *envoy_config_route_v3.Route_Redirect

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

func UpstreamTLSContext added in v1.11.0

func UpstreamTLSContext(peerValidationContext *dag.PeerValidationContext, sni string, clientSecret *dag.Secret, upstreamTLS *dag.UpstreamTLS, alpnProtocols ...string) *envoy_transport_socket_tls_v3.UpstreamTlsContext

UpstreamTLSContext creates an envoy_transport_socket_tls_v3.UpstreamTlsContext. By default UpstreamTLSContext returns a HTTP/1.1 TLS enabled context. A list of additional ALPN protocols can be provided.

func UpstreamTLSTransportSocket

UpstreamTLSTransportSocket returns a custom transport socket using the UpstreamTlsContext provided.

func VirtualHost added in v1.11.0

func VirtualHost(hostname string, routes ...*envoy_config_route_v3.Route) *envoy_config_route_v3.VirtualHost

VirtualHost creates a new route.VirtualHost.

func VirtualHostAndRoutes added in v1.20.0

func VirtualHostAndRoutes(vh *dag.VirtualHost, dagRoutes []*dag.Route, secure bool) *envoy_config_route_v3.VirtualHost

VirtualHostAndRoutes converts a DAG virtual host and routes to an Envoy virtual host.

func WeightedEndpoints added in v1.11.0

func WeightedEndpoints(weight uint32, addrs ...*envoy_config_core_v3.Address) []*envoy_config_endpoint_v3.LocalityLbEndpoints

func WriteBootstrap

func WriteBootstrap(c *envoy.BootstrapConfig) error

WriteBootstrap writes bootstrap configuration to files.

Types

type CustomTag added in v1.25.0

type CustomTag struct {
	TagName           string
	Literal           string
	EnvironmentName   string
	RequestHeaderName string
}

type EnvoyTracingConfig added in v1.25.0

type EnvoyTracingConfig struct {
	ExtensionService types.NamespacedName
	ServiceName      string
	SNI              string
	Timeout          timeout.Setting
	OverallSampling  float64
	MaxPathTagLength uint32
	CustomTags       []*CustomTag
}

type GlobalRateLimitConfig added in v1.13.0

type GlobalRateLimitConfig struct {
	ExtensionService            types.NamespacedName
	SNI                         string
	FailOpen                    bool
	Timeout                     timeout.Setting
	Domain                      string
	EnableXRateLimitHeaders     bool
	EnableResourceExhaustedCode bool
}

GlobalRateLimitConfig stores configuration for an HTTP global rate limiting filter.

type SocketOptions added in v1.26.0

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

func NewSocketOptions added in v1.26.0

func NewSocketOptions() *SocketOptions

func (*SocketOptions) Build added in v1.26.0

func (*SocketOptions) TCPKeepalive added in v1.26.0

func (so *SocketOptions) TCPKeepalive() *SocketOptions

func (*SocketOptions) TOS added in v1.26.0

func (so *SocketOptions) TOS(value int32) *SocketOptions

TOS sets the IP_TOS socket option for IPv4 socket.

func (*SocketOptions) TrafficClass added in v1.26.0

func (so *SocketOptions) TrafficClass(value int32) *SocketOptions

TrafficClass sets the IPV6_TCLASS socket option for IPv4 socket.

Jump to

Keyboard shortcuts

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