Documentation
¶
Index ¶
- Constants
- Variables
- type AddHeader
- type BackendWeights
- type DirectResponse
- type GlobalRateLimit
- type HTTPListener
- type HTTPPathModifier
- type HTTPRoute
- type Infra
- type InfraMetadata
- type JwtRequestAuthentication
- type ListenerPort
- type ProtocolType
- type ProxyInfra
- type ProxyListener
- type RateLimit
- type RateLimitDBBackend
- type RateLimitInfra
- type RateLimitRedis
- type RateLimitRule
- type RateLimitServiceConfig
- type RateLimitUnit
- type RateLimitValue
- type Redirect
- type RequestAuthentication
- type RouteDestination
- type StringMatch
- type TCPListener
- type TLSInspectorConfig
- type TLSListenerConfig
- type UDPListener
- type URLRewrite
- type Xds
Constants ¶
const ( DefaultProxyName = "default" DefaultProxyImage = "envoyproxy/envoy:v1.25-latest" )
Variables ¶
var ( ErrListenerNameEmpty = errors.New("field Name must be specified") ErrListenerAddressInvalid = errors.New("field Address must be a valid IP address") ErrListenerPortInvalid = errors.New("field Port specified is invalid") ErrHTTPListenerHostnamesEmpty = errors.New("field Hostnames must be specified with at least a single hostname entry") ErrTCPListenesSNIsEmpty = errors.New("field SNIs must be specified with at least a single server name entry") ErrTLSServerCertEmpty = errors.New("field ServerCertificate must be specified") ErrTLSPrivateKey = errors.New("field PrivateKey must be specified") ErrHTTPRouteNameEmpty = errors.New("field Name must be specified") ErrHTTPRouteMatchEmpty = errors.New("either PathMatch, HeaderMatches or QueryParamMatches fields must be specified") ErrRouteDestinationHostInvalid = errors.New("field Address must be a valid IP address") ErrRouteDestinationPortInvalid = errors.New("field Port specified is invalid") ErrStringMatchConditionInvalid = errors.New("only one of the Exact, Prefix, SafeRegex or Distinct fields must be set") ErrStringMatchNameIsEmpty = errors.New("field Name must be specified") ErrDirectResponseStatusInvalid = errors.New("only HTTP status codes 100 - 599 are supported for DirectResponse") ErrRedirectUnsupportedStatus = errors.New("only HTTP status codes 301 and 302 are supported for redirect filters") ErrRedirectUnsupportedScheme = errors.New("only http and https are supported for the scheme in redirect filters") ErrHTTPPathModifierDoubleReplace = errors.New("redirect filter cannot have a path modifier that supplies both fullPathReplace and prefixMatchReplace") ErrHTTPPathModifierNoReplace = errors.New("redirect filter cannot have a path modifier that does not supply either fullPathReplace or prefixMatchReplace") ErrAddHeaderEmptyName = errors.New("header modifier filter cannot configure a header without a name to be added") ErrAddHeaderDuplicate = errors.New("header modifier filter attempts to add the same header more than once (case insensitive)") ErrRemoveHeaderDuplicate = errors.New("header modifier filter attempts to remove the same header more than once (case insensitive)") ErrRequestAuthenRequiresJwt = errors.New("jwt field is required when request authentication is set") )
Functions ¶
This section is empty.
Types ¶
type AddHeader ¶
Add header configures a header to be added to a request or response. +k8s:deepcopy-gen=true
func (*AddHeader) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddHeader.
func (*AddHeader) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackendWeights ¶
DestinationWeights stores the weights of valid and invalid backends for the route so that 500 error responses can be returned in the same proportions
type DirectResponse ¶
type DirectResponse struct {
// Body configures the body of the direct response. Currently only a string response
// is supported, but in the future a config.core.v3.DataSource may replace it.
Body *string
// StatusCode will be used for the direct response's status code.
StatusCode uint32
}
Direct response holds the details for returning a body and status code for a route. +k8s:deepcopy-gen=true
func (*DirectResponse) DeepCopy ¶
func (in *DirectResponse) DeepCopy() *DirectResponse
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DirectResponse.
func (*DirectResponse) DeepCopyInto ¶
func (in *DirectResponse) DeepCopyInto(out *DirectResponse)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (DirectResponse) Validate ¶
func (r DirectResponse) Validate() error
Validate the fields within the DirectResponse structure
type GlobalRateLimit ¶ added in v0.3.0
type GlobalRateLimit struct {
// Rules for rate limiting.
Rules []*RateLimitRule
}
GlobalRateLimit holds the global rate limiting configuration. +k8s:deepcopy-gen=true
func (*GlobalRateLimit) DeepCopy ¶ added in v0.3.0
func (in *GlobalRateLimit) DeepCopy() *GlobalRateLimit
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlobalRateLimit.
func (*GlobalRateLimit) DeepCopyInto ¶ added in v0.3.0
func (in *GlobalRateLimit) DeepCopyInto(out *GlobalRateLimit)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HTTPListener ¶
type HTTPListener struct {
// Name of the HttpListener
Name string
// Address that the listener should listen on.
Address string
// Port on which the service can be expected to be accessed by clients.
Port uint32
// Hostnames (Host/Authority header value) with which the service can be expected to be accessed by clients.
// This field is required. Wildcard hosts are supported in the suffix or prefix form.
// Refer to https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#config-route-v3-virtualhost
// for more info.
Hostnames []string
// Tls certificate info. If omitted, the gateway will expose a plain text HTTP server.
TLS *TLSListenerConfig
// Routes associated with HTTP traffic to the service.
Routes []*HTTPRoute
// IsHTTP2 is set if the upstream client as well as the downstream server are configured to serve HTTP2 traffic.
IsHTTP2 bool
}
HTTPListener holds the listener configuration. +k8s:deepcopy-gen=true
func (*HTTPListener) DeepCopy ¶
func (in *HTTPListener) DeepCopy() *HTTPListener
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPListener.
func (*HTTPListener) DeepCopyInto ¶
func (in *HTTPListener) DeepCopyInto(out *HTTPListener)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (HTTPListener) Validate ¶
func (h HTTPListener) Validate() error
Validate the fields within the HTTPListener structure
type HTTPPathModifier ¶
type HTTPPathModifier struct {
// FullReplace provides a string to replace the full path of the request.
FullReplace *string
// PrefixMatchReplace provides a string to replace the matched prefix of the request.
PrefixMatchReplace *string
}
HTTPPathModifier holds instructions for how to modify the path of a request on a redirect response +k8s:deepcopy-gen=true
func (*HTTPPathModifier) DeepCopy ¶
func (in *HTTPPathModifier) DeepCopy() *HTTPPathModifier
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPPathModifier.
func (*HTTPPathModifier) DeepCopyInto ¶
func (in *HTTPPathModifier) DeepCopyInto(out *HTTPPathModifier)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (HTTPPathModifier) Validate ¶
func (r HTTPPathModifier) Validate() error
Validate the fields within the HTTPPathModifier structure
type HTTPRoute ¶
type HTTPRoute struct {
// Name of the HTTPRoute
Name string
// PathMatch defines the match conditions on the path.
PathMatch *StringMatch
// HeaderMatches define the match conditions on the request headers for this route.
HeaderMatches []*StringMatch
// QueryParamMatches define the match conditions on the query parameters.
QueryParamMatches []*StringMatch
// DestinationWeights stores the weights of valid and invalid backends for the route so that 500 error responses can be returned in the same proportions
BackendWeights BackendWeights
// AddRequestHeaders defines header/value sets to be added to the headers of requests.
AddRequestHeaders []AddHeader
// RemoveRequestHeaders defines a list of headers to be removed from requests.
RemoveRequestHeaders []string
// AddResponseHeaders defines header/value sets to be added to the headers of response.
AddResponseHeaders []AddHeader
// RemoveResponseHeaders defines a list of headers to be removed from response.
RemoveResponseHeaders []string
// Direct responses to be returned for this route. Takes precedence over Destinations and Redirect.
DirectResponse *DirectResponse
// Redirections to be returned for this route. Takes precedence over Destinations.
Redirect *Redirect
// Destinations that requests to this HTTPRoute will be mirrored to
Mirrors []*RouteDestination
// Destinations associated with this matched route.
Destinations []*RouteDestination
// Rewrite to be changed for this route.
URLRewrite *URLRewrite
// RateLimit defines the more specific match conditions as well as limits for ratelimiting
// the requests on this route.
RateLimit *RateLimit
// RequestAuthentication defines the schema for authenticating HTTP requests.
RequestAuthentication *RequestAuthentication
}
HTTPRoute holds the route information associated with the HTTP Route +k8s:deepcopy-gen=true
func (*HTTPRoute) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRoute.
func (*HTTPRoute) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Infra ¶
type Infra struct {
// Proxy defines managed proxy infrastructure.
Proxy *ProxyInfra
}
Infra defines managed infrastructure. +k8s:deepcopy-gen=true
func (*Infra) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Infra.
func (*Infra) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Infra) GetProxyInfra ¶
func (i *Infra) GetProxyInfra() *ProxyInfra
GetProxyInfra returns the ProxyInfra.
type InfraMetadata ¶
type InfraMetadata struct {
// Labels define a map of string keys and values that can be used to organize
// and categorize proxy infrastructure objects.
Labels map[string]string
}
InfraMetadata defines metadata for the managed proxy infrastructure. +k8s:deepcopy-gen=true
func NewInfraMetadata ¶
func NewInfraMetadata() *InfraMetadata
NewInfraMetadata returns a new InfraMetadata.
func (*InfraMetadata) DeepCopy ¶
func (in *InfraMetadata) DeepCopy() *InfraMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InfraMetadata.
func (*InfraMetadata) DeepCopyInto ¶
func (in *InfraMetadata) DeepCopyInto(out *InfraMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JwtRequestAuthentication ¶ added in v0.3.0
type JwtRequestAuthentication struct {
// Providers defines a list of JSON Web Token (JWT) authentication providers.
Providers []egv1a1.JwtAuthenticationFilterProvider
}
JwtRequestAuthentication defines the schema for authenticating HTTP requests using JSON Web Tokens (JWT).
+k8s:deepcopy-gen=true
func (*JwtRequestAuthentication) DeepCopy ¶ added in v0.3.0
func (in *JwtRequestAuthentication) DeepCopy() *JwtRequestAuthentication
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JwtRequestAuthentication.
func (*JwtRequestAuthentication) DeepCopyInto ¶ added in v0.3.0
func (in *JwtRequestAuthentication) DeepCopyInto(out *JwtRequestAuthentication)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JwtRequestAuthentication) Validate ¶ added in v0.3.0
func (j *JwtRequestAuthentication) Validate() error
type ListenerPort ¶
type ListenerPort struct {
// Name is the name of the listener port.
Name string
// Protocol is the protocol that the listener port will listener for.
Protocol ProtocolType
// ServicePort is the port number the proxy service is listening on.
ServicePort int32
// ContainerPort is the port number the proxy container is listening on.
ContainerPort int32
}
ListenerPort defines a network port of a listener. +k8s:deepcopy-gen=true
func (*ListenerPort) DeepCopy ¶
func (in *ListenerPort) DeepCopy() *ListenerPort
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerPort.
func (*ListenerPort) DeepCopyInto ¶
func (in *ListenerPort) DeepCopyInto(out *ListenerPort)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProtocolType ¶
type ProtocolType string
ProtocolType defines the application protocol accepted by a ListenerPort.
Valid values include "HTTP" and "HTTPS".
const ( // HTTPProtocolType accepts cleartext HTTP/1.1 sessions over TCP or HTTP/2 // over cleartext. HTTPProtocolType ProtocolType = "HTTP" // HTTPSProtocolType accepts HTTP/1.1 or HTTP/2 sessions over TLS. HTTPSProtocolType ProtocolType = "HTTPS" // TLSProtocolType accepts TLS sessions over TCP. TLSProtocolType ProtocolType = "TLS" // TCPProtocolType accepts TCP connection. TCPProtocolType ProtocolType = "TCP" // UDPProtocolType accepts UDP connection. UDPProtocolType ProtocolType = "UDP" )
type ProxyInfra ¶
type ProxyInfra struct {
// Metadata defines metadata for the managed proxy infrastructure.
Metadata *InfraMetadata
// Name is the name used for managed proxy infrastructure.
Name string
// Config defines user-facing configuration of the managed proxy infrastructure.
Config *v1alpha1.EnvoyProxy
// Image is the container image used for the managed proxy infrastructure.
// If unset, defaults to "envoyproxy/envoy-dev:latest".
Image string
// Listeners define the listeners exposed by the proxy infrastructure.
Listeners []ProxyListener
}
ProxyInfra defines managed proxy infrastructure. +k8s:deepcopy-gen=true
func NewProxyInfra ¶
func NewProxyInfra() *ProxyInfra
NewProxyInfra returns a new ProxyInfra with default parameters.
func (*ProxyInfra) DeepCopy ¶
func (in *ProxyInfra) DeepCopy() *ProxyInfra
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyInfra.
func (*ProxyInfra) DeepCopyInto ¶
func (in *ProxyInfra) DeepCopyInto(out *ProxyInfra)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxyInfra) GetProxyConfig ¶ added in v0.3.0
func (p *ProxyInfra) GetProxyConfig() *v1alpha1.EnvoyProxy
GetProxyConfig returns the ProxyInfra config.
func (*ProxyInfra) GetProxyMetadata ¶
func (p *ProxyInfra) GetProxyMetadata() *InfraMetadata
GetProxyMetadata returns the InfraMetadata.
func (*ProxyInfra) ObjectName ¶
func (p *ProxyInfra) ObjectName() string
ObjectName returns the name of the proxy infrastructure object.
func (*ProxyInfra) Validate ¶
func (p *ProxyInfra) Validate() error
Validate validates the provided ProxyInfra.
type ProxyListener ¶
type ProxyListener struct {
// Address is the address that the listener should listen on.
Address string
// Ports define network ports of the listener.
Ports []ListenerPort
}
ProxyListener defines the listener configuration of the proxy infrastructure. +k8s:deepcopy-gen=true
func NewProxyListeners ¶
func NewProxyListeners() []ProxyListener
NewProxyListeners returns a new slice of ProxyListener with default parameters.
func (*ProxyListener) DeepCopy ¶
func (in *ProxyListener) DeepCopy() *ProxyListener
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyListener.
func (*ProxyListener) DeepCopyInto ¶
func (in *ProxyListener) DeepCopyInto(out *ProxyListener)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RateLimit ¶ added in v0.3.0
type RateLimit struct {
// Global rate limit settings.
Global *GlobalRateLimit
}
RateLimit holds the rate limiting configuration. +k8s:deepcopy-gen=true
func (*RateLimit) DeepCopy ¶ added in v0.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimit.
func (*RateLimit) DeepCopyInto ¶ added in v0.3.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RateLimitDBBackend ¶ added in v0.3.0
type RateLimitDBBackend struct {
// Redis backend details.
Redis *RateLimitRedis
}
RateLimitDBBackend defines the database backend properties associated with the rate limit service. +k8s:deepcopy-gen=true
func (*RateLimitDBBackend) DeepCopy ¶ added in v0.3.0
func (in *RateLimitDBBackend) DeepCopy() *RateLimitDBBackend
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitDBBackend.
func (*RateLimitDBBackend) DeepCopyInto ¶ added in v0.3.0
func (in *RateLimitDBBackend) DeepCopyInto(out *RateLimitDBBackend)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RateLimitInfra ¶ added in v0.3.0
type RateLimitInfra struct {
// Rate limit service configuration
Configs []*RateLimitServiceConfig
// Backend holds configuration associated with the backend database.
Backend *RateLimitDBBackend
}
RateLimitInfra defines managed rate limit service infrastructure. +k8s:deepcopy-gen=true
func (*RateLimitInfra) DeepCopy ¶ added in v0.3.0
func (in *RateLimitInfra) DeepCopy() *RateLimitInfra
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitInfra.
func (*RateLimitInfra) DeepCopyInto ¶ added in v0.3.0
func (in *RateLimitInfra) DeepCopyInto(out *RateLimitInfra)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RateLimitRedis ¶ added in v0.3.0
type RateLimitRedis struct {
// URL of the Redis Database.
URL string
}
RateLimitRedis defines the redis database configuration. +k8s:deepcopy-gen=true
func (*RateLimitRedis) DeepCopy ¶ added in v0.3.0
func (in *RateLimitRedis) DeepCopy() *RateLimitRedis
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitRedis.
func (*RateLimitRedis) DeepCopyInto ¶ added in v0.3.0
func (in *RateLimitRedis) DeepCopyInto(out *RateLimitRedis)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RateLimitRule ¶ added in v0.3.0
type RateLimitRule struct {
// HeaderMatches define the match conditions on the request headers for this route.
HeaderMatches []*StringMatch
// Limit holds the rate limit values.
Limit *RateLimitValue
}
RateLimitRule holds the match and limit configuration for ratelimiting. +k8s:deepcopy-gen=true
func (*RateLimitRule) DeepCopy ¶ added in v0.3.0
func (in *RateLimitRule) DeepCopy() *RateLimitRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitRule.
func (*RateLimitRule) DeepCopyInto ¶ added in v0.3.0
func (in *RateLimitRule) DeepCopyInto(out *RateLimitRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RateLimitServiceConfig ¶ added in v0.3.0
type RateLimitServiceConfig struct {
// Name of the config file.
Name string
// Config contents saved as a YAML string.
Config string
}
RateLimitServiceConfig holds the rate limit service configurations defined here https://github.com/envoyproxy/ratelimit#configuration-1 +k8s:deepcopy-gen=true
func (*RateLimitServiceConfig) DeepCopy ¶ added in v0.3.0
func (in *RateLimitServiceConfig) DeepCopy() *RateLimitServiceConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitServiceConfig.
func (*RateLimitServiceConfig) DeepCopyInto ¶ added in v0.3.0
func (in *RateLimitServiceConfig) DeepCopyInto(out *RateLimitServiceConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RateLimitUnit ¶ added in v0.3.0
type RateLimitUnit egv1a1.RateLimitUnit
type RateLimitValue ¶ added in v0.3.0
type RateLimitValue struct {
// Requests are the number of requests that need to be rate limited.
Requests uint
// Unit of rate limiting.
Unit RateLimitUnit
}
RateLimitValue holds the +k8s:deepcopy-gen=true
func (*RateLimitValue) DeepCopy ¶ added in v0.3.0
func (in *RateLimitValue) DeepCopy() *RateLimitValue
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitValue.
func (*RateLimitValue) DeepCopyInto ¶ added in v0.3.0
func (in *RateLimitValue) DeepCopyInto(out *RateLimitValue)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Redirect ¶
type Redirect struct {
// Scheme configures the replacement of the request's scheme.
Scheme *string
// Hostname configures the replacement of the request's hostname.
Hostname *string
// Path contains config for rewriting the path of the request.
Path *HTTPPathModifier
// Port configures the replacement of the request's port.
Port *uint32
// Status code configures the redirection response's status code.
StatusCode *int32
}
Redirect holds the details for how and where to redirect a request +k8s:deepcopy-gen=true
func (*Redirect) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Redirect.
func (*Redirect) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RequestAuthentication ¶ added in v0.3.0
type RequestAuthentication struct {
// JWT defines the schema for authenticating HTTP requests using JSON Web Tokens (JWT).
JWT *JwtRequestAuthentication
}
RequestAuthentication defines the schema for authenticating HTTP requests. Only one of "jwt" can be specified.
TODO: Add support for additional request authentication providers, i.e. OIDC.
+k8s:deepcopy-gen=true
func (*RequestAuthentication) DeepCopy ¶ added in v0.3.0
func (in *RequestAuthentication) DeepCopy() *RequestAuthentication
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestAuthentication.
func (*RequestAuthentication) DeepCopyInto ¶ added in v0.3.0
func (in *RequestAuthentication) DeepCopyInto(out *RequestAuthentication)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouteDestination ¶
type RouteDestination struct {
// Host refers to the FQDN or IP address of the backend service.
Host string
// Port on the service to forward the request to.
Port uint32
// Weight associated with this destination.
// Note: Weight is not used in UDP route.
Weight uint32
}
RouteDestination holds the destination details associated with the route
func (RouteDestination) Validate ¶
func (r RouteDestination) Validate() error
Validate the fields within the RouteDestination structure
type StringMatch ¶
type StringMatch struct {
// Name of the field to match on.
Name string
// Exact match condition.
Exact *string
// Prefix match condition.
Prefix *string
// Suffix match condition.
Suffix *string
// SafeRegex match condition.
SafeRegex *string
// Distinct match condition.
// Used to match any and all possible unique values encountered within the Name field.
Distinct bool
}
StringMatch holds the various match conditions. Only one of Exact, Prefix, SafeRegex or Distinct can be set. +k8s:deepcopy-gen=true
func (*StringMatch) DeepCopy ¶
func (in *StringMatch) DeepCopy() *StringMatch
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringMatch.
func (*StringMatch) DeepCopyInto ¶
func (in *StringMatch) DeepCopyInto(out *StringMatch)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (StringMatch) Validate ¶
func (s StringMatch) Validate() error
Validate the fields within the StringMatch structure
type TCPListener ¶
type TCPListener struct {
// Name of the TCPListener
Name string
// Address that the listener should listen on.
Address string
// Port on which the service can be expected to be accessed by clients.
Port uint32
// TLS information required for TLS Passthrough, If provided, incoming
// connections' server names are inspected and routed to backends accordingly.
TLS *TLSInspectorConfig
// Destinations associated with TCP traffic to the service.
Destinations []*RouteDestination
}
TCPListener holds the TCP listener configuration. +k8s:deepcopy-gen=true
func (*TCPListener) DeepCopy ¶
func (in *TCPListener) DeepCopy() *TCPListener
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPListener.
func (*TCPListener) DeepCopyInto ¶
func (in *TCPListener) DeepCopyInto(out *TCPListener)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (TCPListener) Validate ¶
func (h TCPListener) Validate() error
Validate the fields within the TCPListener structure
type TLSInspectorConfig ¶
type TLSInspectorConfig struct {
// Server names that are compared against the server names of a new connection.
// Wildcard hosts are supported in the prefix form. Partial wildcards are not
// supported, and values like *w.example.com are invalid.
// SNIs are used only in case of TLS Passthrough.
SNIs []string
}
TLSInspectorConfig holds the configuration required for inspecting TLS passthrough connections. +k8s:deepcopy-gen=true
func (*TLSInspectorConfig) DeepCopy ¶
func (in *TLSInspectorConfig) DeepCopy() *TLSInspectorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSInspectorConfig.
func (*TLSInspectorConfig) DeepCopyInto ¶
func (in *TLSInspectorConfig) DeepCopyInto(out *TLSInspectorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (TLSInspectorConfig) Validate ¶
func (t TLSInspectorConfig) Validate() error
type TLSListenerConfig ¶
type TLSListenerConfig struct {
// ServerCertificate of the server.
ServerCertificate []byte
// PrivateKey for the server.
PrivateKey []byte
}
TLSListenerConfig holds the configuration for downstream TLS context. +k8s:deepcopy-gen=true
func (*TLSListenerConfig) DeepCopy ¶
func (in *TLSListenerConfig) DeepCopy() *TLSListenerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSListenerConfig.
func (*TLSListenerConfig) DeepCopyInto ¶
func (in *TLSListenerConfig) DeepCopyInto(out *TLSListenerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (TLSListenerConfig) Validate ¶
func (t TLSListenerConfig) Validate() error
Validate the fields within the TLSListenerConfig structure
type UDPListener ¶ added in v0.3.0
type UDPListener struct {
// Name of the UDPListener
Name string
// Address that the listener should listen on.
Address string
// Port on which the service can be expected to be accessed by clients.
Port uint32
// Destinations associated with UDP traffic to the service.
Destinations []*RouteDestination
}
UDPListener holds the UDP listener configuration. +k8s:deepcopy-gen=true
func (*UDPListener) DeepCopy ¶ added in v0.3.0
func (in *UDPListener) DeepCopy() *UDPListener
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPListener.
func (*UDPListener) DeepCopyInto ¶ added in v0.3.0
func (in *UDPListener) DeepCopyInto(out *UDPListener)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (UDPListener) Validate ¶ added in v0.3.0
func (h UDPListener) Validate() error
Validate the fields within the UDPListener structure
type URLRewrite ¶ added in v0.3.0
type URLRewrite struct {
// Path contains config for rewriting the path of the request.
Path *HTTPPathModifier
// Hostname configures the replacement of the request's hostname.
Hostname *string
}
Re holds the details for how to rewrite a request +k8s:deepcopy-gen=true
func (*URLRewrite) DeepCopy ¶ added in v0.3.0
func (in *URLRewrite) DeepCopy() *URLRewrite
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new URLRewrite.
func (*URLRewrite) DeepCopyInto ¶ added in v0.3.0
func (in *URLRewrite) DeepCopyInto(out *URLRewrite)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (URLRewrite) Validate ¶ added in v0.3.0
func (r URLRewrite) Validate() error
Validate the fields within the URLRewrite structure
type Xds ¶
type Xds struct {
// HTTP listeners exposed by the gateway.
HTTP []*HTTPListener
// TCP Listeners exposed by the gateway.
TCP []*TCPListener
// UDP Listeners exposed by the gateway.
UDP []*UDPListener
}
Xds holds the intermediate representation of a Gateway and is used by the xDS Translator to convert it into xDS resources. +k8s:deepcopy-gen=true
func (*Xds) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Xds.
func (*Xds) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Xds) GetHTTPListener ¶
func (x Xds) GetHTTPListener(name string) *HTTPListener
func (Xds) GetTCPListener ¶
func (x Xds) GetTCPListener(name string) *TCPListener
func (Xds) GetUDPListener ¶ added in v0.3.0
func (x Xds) GetUDPListener(name string) *UDPListener