ir

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultProxyName = "default"
)

Variables

View Source
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")
	ErrTCPListenerSNIsEmpty          = 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

type AddHeader struct {
	Name   string
	Value  string
	Append bool
}

AddHeader configures a header to be added to a request or response. +k8s:deepcopy-gen=true

func (*AddHeader) DeepCopy

func (in *AddHeader) DeepCopy() *AddHeader

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddHeader.

func (*AddHeader) DeepCopyInto

func (in *AddHeader) DeepCopyInto(out *AddHeader)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (AddHeader) Validate

func (h AddHeader) Validate() error

Validate the fields within the AddHeader structure

type BackendWeights

type BackendWeights struct {
	Valid   uint32
	Invalid uint32
}

BackendWeights stores the weights of valid and invalid backends for the route so that 500 error responses can be returned in the same proportions

type CIDRMatch added in v0.4.0

type CIDRMatch struct {
	CIDR    string
	IPv6    bool
	MaskLen int
}

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
}

DirectResponse 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
	// ExtensionRefs holds unstructured resources that were introduced by an extension and used on the HTTPRoute as extensionRef filters
	ExtensionRefs []*UnstructuredRef
}

HTTPRoute holds the route information associated with the HTTP Route +k8s:deepcopy-gen=true

func (*HTTPRoute) DeepCopy

func (in *HTTPRoute) DeepCopy() *HTTPRoute

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRoute.

func (*HTTPRoute) DeepCopyInto

func (in *HTTPRoute) DeepCopyInto(out *HTTPRoute)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (HTTPRoute) Validate

func (h HTTPRoute) Validate() error

Validate the fields within the HTTPRoute structure

type Infra

type Infra struct {
	// Proxy defines managed proxy infrastructure.
	Proxy *ProxyInfra
}

Infra defines managed infrastructure. +k8s:deepcopy-gen=true

func NewInfra

func NewInfra() *Infra

NewInfra returns a new Infra with default parameters.

func (*Infra) DeepCopy

func (in *Infra) DeepCopy() *Infra

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Infra.

func (*Infra) DeepCopyInto

func (in *Infra) DeepCopyInto(out *Infra)

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.

func (*Infra) Validate

func (i *Infra) Validate() error

Validate validates the provided Infra.

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

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
	// 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

func (in *RateLimit) DeepCopy() *RateLimit

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimit.

func (*RateLimit) DeepCopyInto added in v0.3.0

func (in *RateLimit) DeepCopyInto(out *RateLimit)

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 {
	// ServiceConfigs for Rate limit service configuration.
	ServiceConfigs []*RateLimitServiceConfig
}

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 RateLimitRule added in v0.3.0

type RateLimitRule struct {
	// HeaderMatches define the match conditions on the request headers for this route.
	HeaderMatches []*StringMatch
	// CIDRMatch define the match conditions on the source IP's CIDR for this route.
	CIDRMatch *CIDRMatch
	// 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.

func (*RateLimitRule) IsMatchSet added in v0.4.0

func (r *RateLimitRule) IsMatchSet() bool

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

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

func (in *Redirect) DeepCopy() *Redirect

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Redirect.

func (*Redirect) DeepCopyInto

func (in *Redirect) DeepCopyInto(out *Redirect)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Redirect) Validate

func (r Redirect) Validate() error

Validate the fields within the Redirect structure

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

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 TCP/UDP route.
	Weight *uint32
}

RouteDestination holds the destination details associated with the route +kubebuilder:object:generate=true

func NewRouteDest added in v0.4.0

func NewRouteDest(host string, port uint32) *RouteDestination

NewRouteDest creates a new RouteDestination.

func NewRouteDestWithWeight added in v0.4.0

func NewRouteDestWithWeight(host string, port uint32, weight uint32) *RouteDestination

func (*RouteDestination) DeepCopy added in v0.4.0

func (in *RouteDestination) DeepCopy() *RouteDestination

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteDestination.

func (*RouteDestination) DeepCopyInto added in v0.4.0

func (in *RouteDestination) DeepCopyInto(out *RouteDestination)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

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 {
	// Name of the Secret object.
	Name string
	// 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
}

URLRewrite 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 UnstructuredRef added in v0.4.0

type UnstructuredRef struct {
	Object *unstructured.Unstructured
}

UnstructuredRef holds unstructured data for an arbitrary k8s resource introduced by an extension Envoy Gateway does not need to know about the resource types in order to store and pass the data for these objects to an extension.

+k8s:deepcopy-gen=true

func (*UnstructuredRef) DeepCopy added in v0.4.0

func (in *UnstructuredRef) DeepCopy() *UnstructuredRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnstructuredRef.

func (*UnstructuredRef) DeepCopyInto added in v0.4.0

func (in *UnstructuredRef) DeepCopyInto(out *UnstructuredRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

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

func (in *Xds) DeepCopy() *Xds

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Xds.

func (*Xds) DeepCopyInto

func (in *Xds) DeepCopyInto(out *Xds)

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

func (Xds) Printable

func (x Xds) Printable() *Xds

Printable returns a deep copy of the resource that can be safely logged.

func (Xds) Validate

func (x Xds) Validate() error

Validate the fields within the Xds structure.

Jump to

Keyboard shortcuts

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