v3

package
v1.28.1 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 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_listener_v3.Listener

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

func CORSVirtualHost added in v1.11.0

func CORSVirtualHost(hostname string, corspolicy *envoy_cors_v3.CorsPolicy, routes ...*envoy_route_v3.Route) *envoy_route_v3.VirtualHost

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

func Cluster added in v1.11.0

func Cluster(c *dag.Cluster) *envoy_cluster_v3.Cluster

Cluster creates new envoy_cluster_v3.Cluster from dag.Cluster.

func ClusterCommonLBConfig added in v1.11.0

func ClusterCommonLBConfig() *envoy_cluster_v3.Cluster_CommonLbConfig

ClusterCommonLBConfig creates a *envoy_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

func ClusterDiscoveryTypeForAddress(address string, t envoy_cluster_v3.Cluster_DiscoveryType) *envoy_cluster_v3.Cluster_Type

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

func ClusterLoadAssignment(name string, addrs ...*envoy_core_v3.Address) *envoy_endpoint_v3.ClusterLoadAssignment

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

func ConfigSource

func ConfigSource(cluster string) *envoy_core_v3.ConfigSource

ConfigSource returns a *envoy_core_v3.ConfigSource for cluster.

func ContainsFallbackFilterChain added in v1.11.0

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

func DNSNameCluster added in v1.23.0

func DNSNameCluster(c *dag.DNSNameCluster) *envoy_cluster_v3.Cluster

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

func DownstreamTLSContext added in v1.11.0

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

DownstreamTLSContext creates a new DownstreamTlsContext.

func DownstreamTLSTransportSocket

func DownstreamTLSTransportSocket(tls *envoy_tls_v3.DownstreamTlsContext) *envoy_core_v3.TransportSocket

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_core_v3.Address supplied.

func ExtensionCluster added in v1.11.0

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

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

func ExternalNameClusterLoadAssignment added in v1.23.0

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

ExternalNameClusterLoadAssignment creates a *envoy_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_api_v1alpha1.AccessLogLevel) []*envoy_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

func FilterChain(filters ...*envoy_listener_v3.Filter) *envoy_listener_v3.FilterChain

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

func FilterChainTLS added in v1.11.0

func FilterChainTLS(domain string, downstream *envoy_tls_v3.DownstreamTlsContext, filters []*envoy_listener_v3.Filter) *envoy_listener_v3.FilterChain

FilterChainTLS returns a TLS enabled envoy_listener_v3.FilterChain.

func FilterChainTLSFallback added in v1.11.0

func FilterChainTLSFallback(downstream *envoy_tls_v3.DownstreamTlsContext, filters []*envoy_listener_v3.Filter) *envoy_listener_v3.FilterChain

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

func FilterChains added in v1.11.0

func FilterChains(filters ...*envoy_listener_v3.Filter) []*envoy_listener_v3.FilterChain

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

func FilterExternalAuthz added in v1.11.0

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

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

func FilterJWTAuthN added in v1.28.0

func FilterJWTAuthN(jwtProviders []dag.JWTProvider) *http.HttpFilter

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

func FilterMisdirectedRequests added in v1.11.0

func FilterMisdirectedRequests(fqdn string) *http.HttpFilter

func Filters added in v1.11.0

func Filters(filters ...*envoy_listener_v3.Filter) []*envoy_listener_v3.Filter

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

func GlobalRateLimitFilter added in v1.13.0

func GlobalRateLimitFilter(config *GlobalRateLimitConfig) *http.HttpFilter

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_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_core_v3.GrpcService

GRPCService returns a envoy_core_v3.GrpcService for the given parameters.

func HTTPConnectionManager added in v1.11.0

func HTTPConnectionManager(routename string, accesslogger []*accesslog.AccessLog, requestTimeout time.Duration) *envoy_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_endpoint_v3.Endpoint_HealthCheckConfig

HealthCheckConfig returns an *envoy_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_listener_v3.ListenerFilter, filters ...*envoy_listener_v3.Filter) *envoy_listener_v3.Listener

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

func ListenerFilters added in v1.11.0

func ListenerFilters(filters ...*envoy_listener_v3.ListenerFilter) []*envoy_listener_v3.ListenerFilter

ListenerFilters returns a []*envoy_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 ParseTLSVersion(version string) envoy_tls_v3.TlsParameters_TlsProtocol

func PathRouteMatch added in v1.23.0

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

PathRouteMatch creates a *envoy_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

func ProxyProtocol() *envoy_listener_v3.ListenerFilter

ProxyProtocol returns a new Proxy Protocol listener filter.

func RouteConfiguration added in v1.11.0

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

RouteConfiguration returns a *envoy_route_v3.RouteConfiguration.

func RouteMatch added in v1.11.0

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

RouteMatch creates a *envoy_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) *matcher.RegexMatcher

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

func Secret added in v1.11.0

func Secret(s *dag.Secret) *envoy_tls_v3.Secret

Secret creates new envoy_tls_v3.Secret from secret.

func SocketAddress

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

SocketAddress creates a new TCP envoy_core_v3.Address.

func StatsListeners added in v1.20.0

StatsListeners returns an array of *envoy_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

func StatsSecrets(metricsTLS *contour_api_v1alpha1.MetricsTLS) []*envoy_tls_v3.Secret

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 []*accesslog.AccessLog) *envoy_listener_v3.Filter

TCPProxy creates a new TCPProxy filter.

func TLSInspector added in v1.11.0

func TLSInspector() *envoy_listener_v3.ListenerFilter

TLSInspector returns a new TLS inspector listener filter.

func TracingConfig added in v1.25.0

func TracingConfig(tracing *EnvoyTracingConfig) *http.HttpConnectionManager_Tracing

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

func UnixSocketAddress added in v1.14.2

func UnixSocketAddress(address string) *envoy_core_v3.Address

UnixSocketAddress creates a new Unix Socket envoy_core_v3.Address.

func UpgradeHTTPS added in v1.11.0

func UpgradeHTTPS() *envoy_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_v3_tls.UpstreamTlsContext

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

func UpstreamTLSTransportSocket

func UpstreamTLSTransportSocket(tls *envoy_tls_v3.UpstreamTlsContext) *envoy_core_v3.TransportSocket

UpstreamTLSTransportSocket returns a custom transport socket using the UpstreamTlsContext provided.

func VirtualHost added in v1.11.0

func VirtualHost(hostname string, routes ...*envoy_route_v3.Route) *envoy_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_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_core_v3.Address) []*envoy_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 HTTPVersionType added in v1.11.0

type HTTPVersionType = http.HttpConnectionManager_CodecType

func CodecForVersions added in v1.11.0

func CodecForVersions(versions ...HTTPVersionType) HTTPVersionType

CodecForVersions determines a single Envoy HTTP codec constant that support all the given HTTP protocol versions.

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 (so *SocketOptions) Build() []*envoy_core_v3.SocketOption

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