ir

package
v1.1.3 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TLSAuto allows Envoy to choose the optimal TLS Version
	TLSAuto = TLSVersion(egv1a1.TLSAuto)
	// TLSv10 specifies TLS version 1.0
	TLSv10 = TLSVersion(egv1a1.TLSv10)
	// TLSv11 specifies TLS version 1.1
	TLSv11 = TLSVersion(egv1a1.TLSv11)
	// TLSv12 specifies TLS version 1.2
	TLSv12 = TLSVersion(egv1a1.TLSv12)
	// TLSv13 specifies TLS version 1.3
	TLSv13 = TLSVersion(egv1a1.TLSv13)
)
View Source
const (
	WithUnderscoresActionAllow         = WithUnderscoresAction(egv1a1.WithUnderscoresActionAllow)
	WithUnderscoresActionRejectRequest = WithUnderscoresAction(egv1a1.WithUnderscoresActionRejectRequest)
	WithUnderscoresActionDropHeader    = WithUnderscoresAction(egv1a1.WithUnderscoresActionDropHeader)
)
View Source
const (
	Error5XX             = TriggerEnum(egv1a1.Error5XX)
	GatewayError         = TriggerEnum(egv1a1.GatewayError)
	Reset                = TriggerEnum(egv1a1.Reset)
	ConnectFailure       = TriggerEnum(egv1a1.ConnectFailure)
	Retriable4XX         = TriggerEnum(egv1a1.Retriable4XX)
	RefusedStream        = TriggerEnum(egv1a1.RefusedStream)
	RetriableStatusCodes = TriggerEnum(egv1a1.RetriableStatusCodes)
	Cancelled            = TriggerEnum(egv1a1.Cancelled)
	DeadlineExceeded     = TriggerEnum(egv1a1.DeadlineExceeded)
	Internal             = TriggerEnum(egv1a1.Internal)
	ResourceExhausted    = TriggerEnum(egv1a1.ResourceExhausted)
	Unavailable          = TriggerEnum(egv1a1.Unavailable)
)
View Source
const (
	// ExtProcBodyStreamed sets the streamed body processing mode
	ExtProcBodyStreamed = ExtProcBodyProcessingMode(egv1a1.StreamedExtProcBodyProcessingMode)
	// ExtProcBodyBuffered sets the buffered body processing mode
	ExtProcBodyBuffered = ExtProcBodyProcessingMode(egv1a1.BufferedExtProcBodyProcessingMode)
	// ExtProcBodyBufferedPartial sets the partial buffered body processing mode
	ExtProcBodyBufferedPartial = ExtProcBodyProcessingMode(egv1a1.BufferedPartialExtBodyHeaderProcessingMode)
)
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")
	ErrTCPRouteSNIsEmpty                       = 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")
	ErrRouteNameEmpty                          = errors.New("field Name must be specified")
	ErrHTTPRouteHostnameEmpty                  = errors.New("field Hostname must be specified")
	ErrDestinationNameEmpty                    = errors.New("field Name must be specified")
	ErrDestEndpointHostInvalid                 = errors.New("field Address must be a valid IP or FQDN address")
	ErrDestEndpointPortInvalid                 = errors.New("field Port specified is invalid")
	ErrDestEndpointUDSPortInvalid              = errors.New("field Port must not be specified for Unix Domain Socket address")
	ErrDestEndpointUDSHostInvalid              = errors.New("field Host must not be specified for Unix Domain Socket address")
	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)")
	ErrLoadBalancerInvalid                     = errors.New("loadBalancer setting is invalid, only one setting can be set")
	ErrHealthCheckTimeoutInvalid               = errors.New("field HealthCheck.Timeout must be specified")
	ErrHealthCheckIntervalInvalid              = errors.New("field HealthCheck.Interval must be specified")
	ErrHealthCheckUnhealthyThresholdInvalid    = errors.New("field HealthCheck.UnhealthyThreshold should be greater than 0")
	ErrHealthCheckHealthyThresholdInvalid      = errors.New("field HealthCheck.HealthyThreshold should be greater than 0")
	ErrHealthCheckerInvalid                    = errors.New("health checker setting is invalid, only one health checker can be set")
	ErrHCHTTPHostInvalid                       = errors.New("field HTTPHealthChecker.Host should be specified")
	ErrHCHTTPPathInvalid                       = errors.New("field HTTPHealthChecker.Path should be specified")
	ErrHCHTTPMethodInvalid                     = errors.New("only one of the GET, HEAD, POST, DELETE, OPTIONS, TRACE, PATCH of HTTPHealthChecker.Method could be set")
	ErrHCHTTPExpectedStatusesInvalid           = errors.New("field HTTPHealthChecker.ExpectedStatuses should be specified")
	ErrHealthCheckPayloadInvalid               = errors.New("one of Text, Binary fields must be set in payload")
	ErrHTTPStatusInvalid                       = errors.New("HTTPStatus should be in [200,600)")
	ErrOutlierDetectionBaseEjectionTimeInvalid = errors.New("field OutlierDetection.BaseEjectionTime must be specified")
	ErrOutlierDetectionIntervalInvalid         = errors.New("field OutlierDetection.Interval must be specified")
)

Functions

This section is empty.

Types

type ALSAccessLog added in v1.1.0

type ALSAccessLog struct {
	CELMatches  []string                          `json:"celMatches,omitempty" yaml:"celMatches,omitempty"`
	LogName     string                            `json:"name" yaml:"name"`
	Destination RouteDestination                  `json:"destination,omitempty" yaml:"destination,omitempty"`
	Type        egv1a1.ALSEnvoyProxyAccessLogType `json:"type" yaml:"type"`
	Text        *string                           `json:"text,omitempty" yaml:"text,omitempty"`
	Attributes  map[string]string                 `json:"attributes,omitempty" yaml:"attributes,omitempty"`
	HTTP        *ALSAccessLogHTTP                 `json:"http,omitempty" yaml:"http,omitempty"`
}

ALSAccessLog holds the configuration for gRPC ALS access logging. +k8s:deepcopy-gen=true

func (*ALSAccessLog) DeepCopy added in v1.1.0

func (in *ALSAccessLog) DeepCopy() *ALSAccessLog

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

func (*ALSAccessLog) DeepCopyInto added in v1.1.0

func (in *ALSAccessLog) DeepCopyInto(out *ALSAccessLog)

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

type ALSAccessLogHTTP added in v1.1.0

type ALSAccessLogHTTP struct {
	RequestHeaders   []string `json:"requestHeaders,omitempty" yaml:"requestHeaders,omitempty"`
	ResponseHeaders  []string `json:"responseHeaders,omitempty" yaml:"responseHeaders,omitempty"`
	ResponseTrailers []string `json:"responseTrailers,omitempty" yaml:"responseTrailers,omitempty"`
}

ALSAccessLogHTTP holds the configuration for HTTP ALS access logging. +k8s:deepcopy-gen=true

func (*ALSAccessLogHTTP) DeepCopy added in v1.1.0

func (in *ALSAccessLogHTTP) DeepCopy() *ALSAccessLogHTTP

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

func (*ALSAccessLogHTTP) DeepCopyInto added in v1.1.0

func (in *ALSAccessLogHTTP) DeepCopyInto(out *ALSAccessLogHTTP)

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

type AccessLog added in v0.5.0

type AccessLog struct {
	Text          []*TextAccessLog          `json:"text,omitempty" yaml:"text,omitempty"`
	JSON          []*JSONAccessLog          `json:"json,omitempty" yaml:"json,omitempty"`
	ALS           []*ALSAccessLog           `json:"als,omitempty" yaml:"als,omitempty"`
	OpenTelemetry []*OpenTelemetryAccessLog `json:"openTelemetry,omitempty" yaml:"openTelemetry,omitempty"`
}

AccessLog holds the access logging configuration. +k8s:deepcopy-gen=true

func (*AccessLog) DeepCopy added in v0.5.0

func (in *AccessLog) DeepCopy() *AccessLog

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

func (*AccessLog) DeepCopyInto added in v0.5.0

func (in *AccessLog) DeepCopyInto(out *AccessLog)

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

type ActiveHealthCheck added in v1.0.0

type ActiveHealthCheck struct {
	// Timeout defines the time to wait for a health check response.
	Timeout *metav1.Duration `json:"timeout"`
	// Interval defines the time between active health checks.
	Interval *metav1.Duration `json:"interval"`
	// UnhealthyThreshold defines the number of unhealthy health checks required before a backend host is marked unhealthy.
	UnhealthyThreshold *uint32 `json:"unhealthyThreshold"`
	// HealthyThreshold defines the number of healthy health checks required before a backend host is marked healthy.
	HealthyThreshold *uint32 `json:"healthyThreshold"`
	// HTTP defines the configuration of http health checker.
	HTTP *HTTPHealthChecker `json:"http,omitempty" yaml:"http,omitempty"`
	// TCP defines the configuration of tcp health checker.
	TCP *TCPHealthChecker `json:"tcp,omitempty" yaml:"tcp,omitempty"`
}

ActiveHealthCheck defines active health check settings +k8s:deepcopy-gen=true

func (*ActiveHealthCheck) DeepCopy added in v1.0.0

func (in *ActiveHealthCheck) DeepCopy() *ActiveHealthCheck

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

func (*ActiveHealthCheck) DeepCopyInto added in v1.0.0

func (in *ActiveHealthCheck) DeepCopyInto(out *ActiveHealthCheck)

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

type AddHeader

type AddHeader struct {
	Name   string   `json:"name" yaml:"name"`
	Value  []string `json:"value" yaml:"value"`
	Append bool     `json:"append" yaml:"append"`
}

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 AppProtocol added in v0.6.0

type AppProtocol string
const (
	// GRPC declares that the port carries gRPC traffic.
	GRPC AppProtocol = "GRPC"
	// GRPCWeb declares that the port carries gRPC traffic.
	GRPCWeb AppProtocol = "GRPC-Web"
	// HTTP declares that the port carries HTTP/1.1 traffic.
	// Note that HTTP/1.0 or earlier may not be supported by the proxy.
	HTTP AppProtocol = "HTTP"
	// HTTP2 declares that the port carries HTTP/2 traffic.
	HTTP2 AppProtocol = "HTTP2"
	// HTTPS declares that the port carries HTTPS traffic.
	HTTPS AppProtocol = "HTTPS"
	// TCP declares the port uses TCP.
	// This is the default protocol for a service port.
	TCP AppProtocol = "TCP"
	// UDP declares that the port uses UDP.
	UDP AppProtocol = "UDP"
)

type Authorization added in v1.1.0

type Authorization struct {
	// Rules defines the authorization rules.
	Rules []*AuthorizationRule `json:"rules,omitempty"`

	// DefaultAction defines the default action to be taken if no rules match.
	DefaultAction egv1a1.AuthorizationAction `json:"defaultAction"`
}

Authorization defines the schema for the authorization.

+k8s:deepcopy-gen=true

func (*Authorization) DeepCopy added in v1.1.0

func (in *Authorization) DeepCopy() *Authorization

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

func (*Authorization) DeepCopyInto added in v1.1.0

func (in *Authorization) DeepCopyInto(out *Authorization)

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

type AuthorizationRule added in v1.1.0

type AuthorizationRule struct {
	// Name is a user-defined name for the rule.
	// If not specified, a name will be generated by EG.
	Name string `json:"name"`

	// Action defines the action to be taken if the rule matches.
	Action egv1a1.AuthorizationAction `json:"action"`

	// Principal defines the principal to be matched.
	Principal Principal `json:"principal"`
}

AuthorizationRule defines the schema for the authorization rule.

+k8s:deepcopy-gen=true

func (*AuthorizationRule) DeepCopy added in v1.1.0

func (in *AuthorizationRule) DeepCopy() *AuthorizationRule

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

func (*AuthorizationRule) DeepCopyInto added in v1.1.0

func (in *AuthorizationRule) DeepCopyInto(out *AuthorizationRule)

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

type BackOffPolicy added in v1.0.0

type BackOffPolicy struct {
	// BaseInterval is the base interval between retries.
	BaseInterval *metav1.Duration `json:"baseInterval,omitempty"`
	// MaxInterval is the maximum interval between retries.
	MaxInterval *metav1.Duration `json:"maxInterval,omitempty"`
}

+k8s:deepcopy-gen=true

func (*BackOffPolicy) DeepCopy added in v1.0.0

func (in *BackOffPolicy) DeepCopy() *BackOffPolicy

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

func (*BackOffPolicy) DeepCopyInto added in v1.0.0

func (in *BackOffPolicy) DeepCopyInto(out *BackOffPolicy)

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

type BackendConnection added in v1.1.0

type BackendConnection struct {
	// BufferLimitBytes is the maximum number of bytes that can be buffered for a connection.
	BufferLimitBytes *uint32 `json:"bufferLimit,omitempty" yaml:"bufferLimit,omitempty"`
}

BackendConnection settings for upstream connections +k8s:deepcopy-gen=true

func (*BackendConnection) DeepCopy added in v1.1.0

func (in *BackendConnection) DeepCopy() *BackendConnection

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

func (*BackendConnection) DeepCopyInto added in v1.1.0

func (in *BackendConnection) DeepCopyInto(out *BackendConnection)

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

type BackendWeights

type BackendWeights struct {
	Name    string `json:"name" yaml:"name"`
	Valid   uint32 `json:"valid" yaml:"valid"`
	Invalid uint32 `json:"invalid" yaml:"invalid"`
}

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 BasicAuth added in v1.0.0

type BasicAuth struct {
	// Name is a unique name for an BasicAuth configuration.
	// The xds translator only generates one basic auth filter for each unique name.
	Name string `json:"name" yaml:"name"`

	// The username-password pairs in htpasswd format.
	Users []byte `json:"users,omitempty" yaml:"users,omitempty"`
}

BasicAuth defines the schema for the HTTP Basic Authentication.

+k8s:deepcopy-gen=true

func (*BasicAuth) DeepCopy added in v1.0.0

func (in *BasicAuth) DeepCopy() *BasicAuth

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

func (*BasicAuth) DeepCopyInto added in v1.0.0

func (in *BasicAuth) DeepCopyInto(out *BasicAuth)

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

type CIDRMatch added in v0.4.0

type CIDRMatch struct {
	CIDR    string `json:"cidr" yaml:"cidr"`
	IP      string `json:"ip" yaml:"ip"`
	MaskLen uint32 `json:"maskLen" yaml:"maskLen"`
	IsIPv6  bool   `json:"isIPv6" yaml:"isIPv6"`
	// Distinct means that each IP Address within the specified Source IP CIDR is treated as a distinct client selector
	// and uses a separate rate limit bucket/counter.
	Distinct bool `json:"distinct" yaml:"distinct"`
}

type CORS added in v0.6.0

type CORS struct {
	// AllowOrigins defines the origins that are allowed to make requests.
	AllowOrigins []*StringMatch `json:"allowOrigins,omitempty" yaml:"allowOrigins,omitempty"`
	// AllowMethods defines the methods that are allowed to make requests.
	AllowMethods []string `json:"allowMethods,omitempty" yaml:"allowMethods,omitempty"`
	// AllowHeaders defines the headers that are allowed to be sent with requests.
	AllowHeaders []string `json:"allowHeaders,omitempty" yaml:"allowHeaders,omitempty"`
	// ExposeHeaders defines the headers that can be exposed in the responses.
	ExposeHeaders []string `json:"exposeHeaders,omitempty" yaml:"exposeHeaders,omitempty"`
	// MaxAge defines how long the results of a preflight request can be cached.
	MaxAge *metav1.Duration `json:"maxAge,omitempty" yaml:"maxAge,omitempty"`
	// AllowCredentials indicates whether a request can include user credentials.
	AllowCredentials bool `json:"allowCredentials,omitempty" yaml:"allowCredentials,omitempty"`
}

CORS holds the Cross-Origin Resource Sharing (CORS) policy for the route.

+k8s:deepcopy-gen=true

func (*CORS) DeepCopy added in v0.6.0

func (in *CORS) DeepCopy() *CORS

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

func (*CORS) DeepCopyInto added in v0.6.0

func (in *CORS) DeepCopyInto(out *CORS)

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

type CircuitBreaker added in v1.0.0

type CircuitBreaker struct {
	// The maximum number of connections that Envoy will establish.
	MaxConnections *uint32 `json:"maxConnections,omitempty" yaml:"maxConnections,omitempty"`

	// The maximum number of pending requests that Envoy will queue.
	MaxPendingRequests *uint32 `json:"maxPendingRequests,omitempty" yaml:"maxPendingRequests,omitempty"`

	// The maximum number of parallel requests that Envoy will make.
	MaxParallelRequests *uint32 `json:"maxParallelRequests,omitempty" yaml:"maxParallelRequests,omitempty"`

	// The maximum number of parallel requests that Envoy will make.
	MaxRequestsPerConnection *uint32 `json:"maxRequestsPerConnection,omitempty" yaml:"maxRequestsPerConnection,omitempty"`

	// The maximum number of parallel retries that Envoy will make.
	MaxParallelRetries *uint32 `json:"maxParallelRetries,omitempty" yaml:"maxParallelRetries,omitempty"`
}

Backend CircuitBreaker settings for the DEFAULT routing priority +k8s:deepcopy-gen=true

func (*CircuitBreaker) DeepCopy added in v1.0.0

func (in *CircuitBreaker) DeepCopy() *CircuitBreaker

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

func (*CircuitBreaker) DeepCopyInto added in v1.0.0

func (in *CircuitBreaker) DeepCopyInto(out *CircuitBreaker)

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

type ClientConnection added in v1.1.0

type ClientConnection struct {
	// ConnectionLimit is the limit of number of connections
	ConnectionLimit *ConnectionLimit `json:"limit,omitempty" yaml:"limit,omitempty"`
	// BufferLimitBytes is the maximum number of bytes that can be buffered for a connection.
	BufferLimitBytes *uint32 `json:"bufferLimit,omitempty" yaml:"bufferLimit,omitempty"`
}

ClientConnection settings for downstream connections +k8s:deepcopy-gen=true

func (*ClientConnection) DeepCopy added in v1.1.0

func (in *ClientConnection) DeepCopy() *ClientConnection

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

func (*ClientConnection) DeepCopyInto added in v1.1.0

func (in *ClientConnection) DeepCopyInto(out *ClientConnection)

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

type ClientIPDetectionSettings added in v1.0.0

type ClientIPDetectionSettings egv1a1.ClientIPDetectionSettings

ClientIPDetectionSettings provides configuration for determining the original client IP address for requests. +k8s:deepcopy-gen=true

func (*ClientIPDetectionSettings) DeepCopy added in v1.0.0

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

func (*ClientIPDetectionSettings) DeepCopyInto added in v1.0.0

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

type ClientTimeout added in v1.0.0

type ClientTimeout struct {
	// Timeout settings for TCP (not HTTP).
	TCP *TCPClientTimeout `json:"tcp,omitempty" yaml:"tcp,omitempty"`

	// Timeout settings for HTTP.
	HTTP *HTTPClientTimeout `json:"http,omitempty" yaml:"http,omitempty"`
}

ClientTimeout sets the timeout configuration for downstream connections +k8s:deepcopy-gen=true

func (*ClientTimeout) DeepCopy added in v1.0.0

func (in *ClientTimeout) DeepCopy() *ClientTimeout

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

func (*ClientTimeout) DeepCopyInto added in v1.0.0

func (in *ClientTimeout) DeepCopyInto(out *ClientTimeout)

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

type ConnectionLimit added in v1.1.0

type ConnectionLimit struct {
	// Value of the maximum concurrent connections limit.
	// When the limit is reached, incoming connections will be closed after the CloseDelay duration.
	Value *uint64 `json:"value,omitempty" yaml:"value,omitempty"`

	// CloseDelay defines the delay to use before closing connections that are rejected
	// once the limit value is reached.
	CloseDelay *metav1.Duration `json:"closeDelay,omitempty" yaml:"closeDelay,omitempty"`
}

ConnectionLimit contains settings for downstream connection limits +k8s:deepcopy-gen=true

func (*ConnectionLimit) DeepCopy added in v1.1.0

func (in *ConnectionLimit) DeepCopy() *ConnectionLimit

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

func (*ConnectionLimit) DeepCopyInto added in v1.1.0

func (in *ConnectionLimit) DeepCopyInto(out *ConnectionLimit)

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

type ConsistentHash added in v0.6.0

type ConsistentHash struct {
	// Hash based on the Source IP Address
	SourceIP  *bool          `json:"sourceIP,omitempty" yaml:"sourceIP,omitempty"`
	Header    *Header        `json:"header,omitempty" yaml:"header,omitempty"`
	Cookie    *egv1a1.Cookie `json:"cookie,omitempty" yaml:"cookie,omitempty"`
	TableSize *uint64        `json:"tableSize,omitempty" yaml:"tableSize,omitempty"`
}

ConsistentHash load balancer settings +k8s:deepcopy-gen=true

func (*ConsistentHash) DeepCopy added in v0.6.0

func (in *ConsistentHash) DeepCopy() *ConsistentHash

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

func (*ConsistentHash) DeepCopyInto added in v0.6.0

func (in *ConsistentHash) DeepCopyInto(out *ConsistentHash)

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

type CoreListenerDetails added in v1.1.0

type CoreListenerDetails struct {
	// Name of the HttpListener
	Name string `json:"name" yaml:"name"`
	// Address that the listener should listen on.
	Address string `json:"address" yaml:"address"`
	// Port on which the service can be expected to be accessed by clients.
	Port uint32 `json:"port" yaml:"port"`
	// ExtensionRefs holds unstructured resources that were introduced by an extension policy
	ExtensionRefs []*UnstructuredRef `json:"extensionRefs,omitempty" yaml:"extensionRefs,omitempty"`
	// Metadata is used to enrich envoy resource metadata with user and provider-specific information
	Metadata *ResourceMetadata `json:"metadata,omitempty" yaml:"metadata,omitempty"`
}

+k8s:deepcopy-gen=true

func (*CoreListenerDetails) DeepCopy added in v1.1.0

func (in *CoreListenerDetails) DeepCopy() *CoreListenerDetails

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

func (*CoreListenerDetails) DeepCopyInto added in v1.1.0

func (in *CoreListenerDetails) DeepCopyInto(out *CoreListenerDetails)

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

func (CoreListenerDetails) GetAddress added in v1.1.0

func (l CoreListenerDetails) GetAddress() string

func (CoreListenerDetails) GetExtensionRefs added in v1.1.0

func (l CoreListenerDetails) GetExtensionRefs() []*UnstructuredRef

func (CoreListenerDetails) GetName added in v1.1.0

func (l CoreListenerDetails) GetName() string

func (CoreListenerDetails) GetPort added in v1.1.0

func (l CoreListenerDetails) GetPort() uint32

type DestinationAddressType added in v1.0.0

type DestinationAddressType string

DestinationAddressType describes the address type state for a group of DestinationEndpoint

const (
	IP    DestinationAddressType = "IP"
	FQDN  DestinationAddressType = "FQDN"
	MIXED DestinationAddressType = "Mixed"
)

type DestinationEndpoint added in v0.6.0

type DestinationEndpoint struct {
	// Host refers to the FQDN or IP address of the backend service.
	Host string `json:"host" yaml:"host"`
	// Port on the service to forward the request to.
	Port uint32 `json:"port" yaml:"port"`
	// Path refers to the Unix Domain Socket
	Path *string `json:"path,omitempty" yaml:"path,omitempty"`
}

DestinationEndpoint holds the endpoint details associated with the destination +kubebuilder:object:generate=true

func NewDestEndpoint added in v0.6.0

func NewDestEndpoint(host string, port uint32) *DestinationEndpoint

NewDestEndpoint creates a new DestinationEndpoint.

func (*DestinationEndpoint) DeepCopy added in v0.6.0

func (in *DestinationEndpoint) DeepCopy() *DestinationEndpoint

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

func (*DestinationEndpoint) DeepCopyInto added in v0.6.0

func (in *DestinationEndpoint) DeepCopyInto(out *DestinationEndpoint)

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

func (DestinationEndpoint) Validate added in v0.6.0

func (d DestinationEndpoint) Validate() error

Validate the fields within the DestinationEndpoint structure

type DestinationFilters added in v1.1.0

type DestinationFilters struct {
	// AddRequestHeaders defines header/value sets to be added to the headers of requests.
	AddRequestHeaders []AddHeader `json:"addRequestHeaders,omitempty" yaml:"addRequestHeaders,omitempty"`
	// RemoveRequestHeaders defines a list of headers to be removed from requests.
	RemoveRequestHeaders []string `json:"removeRequestHeaders,omitempty" yaml:"removeRequestHeaders,omitempty"`
	// AddResponseHeaders defines header/value sets to be added to the headers of response.
	AddResponseHeaders []AddHeader `json:"addResponseHeaders,omitempty" yaml:"addResponseHeaders,omitempty"`
	// RemoveResponseHeaders defines a list of headers to be removed from response.
	RemoveResponseHeaders []string `json:"removeResponseHeaders,omitempty" yaml:"removeResponseHeaders,omitempty"`
}

DestinationFilters contains HTTP filters that will be used with the DestinationSetting. +k8s:deepcopy-gen=true

func (*DestinationFilters) DeepCopy added in v1.1.0

func (in *DestinationFilters) DeepCopy() *DestinationFilters

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

func (*DestinationFilters) DeepCopyInto added in v1.1.0

func (in *DestinationFilters) DeepCopyInto(out *DestinationFilters)

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

type DestinationSetting added in v0.6.0

type DestinationSetting struct {
	// Weight associated with this destination,
	// invalid endpoints are represents with a
	// non-zero weight with an empty endpoints list
	Weight *uint32 `json:"weight,omitempty" yaml:"weight,omitempty"`
	// Protocol associated with this destination/port.
	Protocol  AppProtocol            `json:"protocol,omitempty" yaml:"protocol,omitempty"`
	Endpoints []*DestinationEndpoint `json:"endpoints,omitempty" yaml:"endpoints,omitempty"`
	// AddressTypeState specifies the state of DestinationEndpoint address type.
	AddressType *DestinationAddressType `json:"addressType,omitempty" yaml:"addressType,omitempty"`

	TLS     *TLSUpstreamConfig  `json:"tls,omitempty" yaml:"tls,omitempty"`
	Filters *DestinationFilters `json:"filters,omitempty" yaml:"filters,omitempty"`
}

DestinationSetting holds the settings associated with the destination +kubebuilder:object:generate=true

func (*DestinationSetting) DeepCopy added in v0.6.0

func (in *DestinationSetting) DeepCopy() *DestinationSetting

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

func (*DestinationSetting) DeepCopyInto added in v0.6.0

func (in *DestinationSetting) DeepCopyInto(out *DestinationSetting)

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

func (*DestinationSetting) Validate added in v0.6.0

func (d *DestinationSetting) Validate() error

Validate the fields within the RouteDestination structure

type DirectResponse

type DirectResponse struct {
	// StatusCode will be used for the direct response's status code.
	StatusCode uint32 `json:"statusCode" yaml:"statusCode"`
}

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 EnvoyExtensionFeatures added in v1.1.0

type EnvoyExtensionFeatures struct {
	// External Processing extensions
	ExtProcs []ExtProc `json:"extProcs,omitempty" yaml:"extProcs,omitempty"`
	// Wasm extensions
	Wasms []Wasm `json:"wasms,omitempty" yaml:"wasms,omitempty"`
}

EnvoyExtensionFeatures holds the information associated with the Envoy Extension Policy. +k8s:deepcopy-gen=true

func (*EnvoyExtensionFeatures) DeepCopy added in v1.1.0

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

func (*EnvoyExtensionFeatures) DeepCopyInto added in v1.1.0

func (in *EnvoyExtensionFeatures) DeepCopyInto(out *EnvoyExtensionFeatures)

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

type EnvoyPatchPolicy added in v0.5.0

type EnvoyPatchPolicy struct {
	EnvoyPatchPolicyStatus
	// JSONPatches are the JSON Patches that
	// are to be applied to generated Xds linked to the gateway.
	JSONPatches []*JSONPatchConfig `json:"jsonPatches,omitempty" yaml:"jsonPatches,omitempty"`
}

EnvoyPatchPolicy defines the intermediate representation of the EnvoyPatchPolicy resource. +k8s:deepcopy-gen=true

func (*EnvoyPatchPolicy) DeepCopy added in v0.5.0

func (in *EnvoyPatchPolicy) DeepCopy() *EnvoyPatchPolicy

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

func (*EnvoyPatchPolicy) DeepCopyInto added in v0.5.0

func (in *EnvoyPatchPolicy) DeepCopyInto(out *EnvoyPatchPolicy)

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

type EnvoyPatchPolicyStatus added in v0.5.0

type EnvoyPatchPolicyStatus struct {
	Name      string `json:"name,omitempty" yaml:"name"`
	Namespace string `json:"namespace,omitempty" yaml:"namespace"`
	// Status of the EnvoyPatchPolicy
	Status *gwapiv1a2.PolicyStatus `json:"status,omitempty" yaml:"status,omitempty"`
}

EnvoyPatchPolicyStatus defines the status reference for the EnvoyPatchPolicy resource +k8s:deepcopy-gen=true

func (*EnvoyPatchPolicyStatus) DeepCopy added in v0.5.0

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

func (*EnvoyPatchPolicyStatus) DeepCopyInto added in v0.5.0

func (in *EnvoyPatchPolicyStatus) DeepCopyInto(out *EnvoyPatchPolicyStatus)

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

type ExtAuth added in v1.0.0

type ExtAuth struct {
	// Name is a unique name for an ExtAuth configuration.
	// The xds translator only generates one external authorization filter for each unique name.
	Name string `json:"name" yaml:"name"`

	// GRPC defines the gRPC External Authorization service.
	// Only one of GRPCService or HTTPService may be specified.
	GRPC *GRPCExtAuthService `json:"grpc,omitempty"`

	// HTTP defines the HTTP External Authorization service.
	// Only one of GRPCService or HTTPService may be specified.
	HTTP *HTTPExtAuthService `json:"http,omitempty"`

	// HeadersToExtAuth defines the client request headers that will be included
	// in the request to the external authorization service.
	// Note: If not specified, the default behavior for gRPC and HTTP external
	// authorization services is different due to backward compatibility reasons.
	// All headers will be included in the check request to a gRPC authorization server.
	// Only the following headers will be included in the check request to an HTTP
	// authorization server: Host, Method, Path, Content-Length, and Authorization.
	// And these headers will always be included to the check request to an HTTP
	// authorization server by default, no matter whether they are specified
	// in HeadersToExtAuth or not.
	// +optional
	HeadersToExtAuth []string `json:"headersToExtAuth,omitempty"`

	// FailOpen is a switch used to control the behavior when a response from the External Authorization service cannot be obtained.
	// If FailOpen is set to true, the system allows the traffic to pass through.
	// Otherwise, if it is set to false or not set (defaulting to false),
	// the system blocks the traffic and returns a HTTP 5xx error, reflecting a fail-closed approach.
	// This setting determines whether to prioritize accessibility over strict security in case of authorization service failure.
	// +optional
	FailOpen *bool `json:"failOpen,omitempty"`
}

ExtAuth defines the schema for the external authorization.

+k8s:deepcopy-gen=true

func (*ExtAuth) DeepCopy added in v1.0.0

func (in *ExtAuth) DeepCopy() *ExtAuth

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

func (*ExtAuth) DeepCopyInto added in v1.0.0

func (in *ExtAuth) DeepCopyInto(out *ExtAuth)

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

type ExtProc added in v1.1.0

type ExtProc struct {
	// Name is a unique name for an ExtProc configuration.
	// The xds translator only generates one ExtProc filter for each unique name.
	Name string `json:"name" yaml:"name"`

	// Destination defines the destination for the gRPC External Processing service.
	Destination RouteDestination `json:"destination" yaml:"destination"`

	// Authority is the hostname:port of the HTTP External Processing service.
	Authority string `json:"authority" yaml:"authority"`

	// MessageTimeout is the timeout for a response to be returned from the external processor
	MessageTimeout *metav1.Duration `json:"messageTimeout,omitempty" yaml:"messageTimeout,omitempty"`

	// FailOpen defines if requests or responses that cannot be processed due to connectivity to the
	// external processor are terminated or passed-through.
	FailOpen *bool `json:"failOpen,omitempty" yaml:"failOpen,omitempty"`

	// RequestHeaderProcessing Defines if request headers are processed
	RequestHeaderProcessing bool `json:"requestHeaderProcessing,omitempty" yaml:"requestHeaderProcessing,omitempty"`

	// RequestBodyProcessingMode Defines request body processing
	RequestBodyProcessingMode *ExtProcBodyProcessingMode `json:"requestBodyProcessingMode,omitempty" yaml:"requestBodyProcessingMode,omitempty"`

	// ResponseHeaderProcessingMode Defines if response headers are processed
	ResponseHeaderProcessing bool `json:"responseHeaderProcessing,omitempty" yaml:"responseHeaderProcessing,omitempty"`

	// ResponseBodyProcessingMode Defines response body processing
	ResponseBodyProcessingMode *ExtProcBodyProcessingMode `json:"responseBodyProcessingMode,omitempty" yaml:"responseBodyProcessingMode,omitempty"`
}

ExtProc holds the information associated with the ExtProc extensions. +k8s:deepcopy-gen=true

func (*ExtProc) DeepCopy added in v1.1.0

func (in *ExtProc) DeepCopy() *ExtProc

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

func (*ExtProc) DeepCopyInto added in v1.1.0

func (in *ExtProc) DeepCopyInto(out *ExtProc)

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

type ExtProcBodyProcessingMode added in v1.1.0

type ExtProcBodyProcessingMode egv1a1.ExtProcBodyProcessingMode

type FaultInjection added in v1.0.0

type FaultInjection struct {
	// Delay defines the fault injection delay.
	Delay *FaultInjectionDelay `json:"delay,omitempty" yaml:"delay,omitempty"`
	// Abort defines the fault injection abort.
	Abort *FaultInjectionAbort `json:"abort,omitempty" yaml:"abort,omitempty"`
}

FaultInjection defines the schema for injecting faults into requests.

+k8s:deepcopy-gen=true

func (*FaultInjection) DeepCopy added in v1.0.0

func (in *FaultInjection) DeepCopy() *FaultInjection

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

func (*FaultInjection) DeepCopyInto added in v1.0.0

func (in *FaultInjection) DeepCopyInto(out *FaultInjection)

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

type FaultInjectionAbort added in v1.0.0

type FaultInjectionAbort struct {
	// HTTPStatus defines the HTTP status code to be returned.
	HTTPStatus *int32 `json:"httpStatus,omitempty" yaml:"httpStatus,omitempty"`
	// GrpcStatus defines the gRPC status code to be returned.
	GrpcStatus *int32 `json:"grpcStatus,omitempty" yaml:"grpcStatus,omitempty"`
	// Percentage defines the percentage of requests to be aborted.
	Percentage *float32 `json:"percentage,omitempty" yaml:"percentage,omitempty"`
}

FaultInjectionAbort defines the schema for injecting abort into requests.

+k8s:deepcopy-gen=true

func (*FaultInjectionAbort) DeepCopy added in v1.0.0

func (in *FaultInjectionAbort) DeepCopy() *FaultInjectionAbort

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

func (*FaultInjectionAbort) DeepCopyInto added in v1.0.0

func (in *FaultInjectionAbort) DeepCopyInto(out *FaultInjectionAbort)

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

type FaultInjectionDelay added in v1.0.0

type FaultInjectionDelay struct {
	// FixedDelay defines the fixed delay duration.
	FixedDelay *metav1.Duration `json:"fixedDelay,omitempty" yaml:"fixedDelay,omitempty"`
	// Percentage defines the percentage of requests to be delayed.
	Percentage *float32 `json:"percentage,omitempty" yaml:"percentage,omitempty"`
}

FaultInjectionDelay defines the schema for injecting delay into requests.

+k8s:deepcopy-gen=true

func (*FaultInjectionDelay) DeepCopy added in v1.0.0

func (in *FaultInjectionDelay) DeepCopy() *FaultInjectionDelay

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

func (*FaultInjectionDelay) DeepCopyInto added in v1.0.0

func (in *FaultInjectionDelay) DeepCopyInto(out *FaultInjectionDelay)

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

type GRPCExtAuthService added in v1.0.0

type GRPCExtAuthService struct {
	// Destination defines the destination for the gRPC External Authorization service.
	Destination RouteDestination `json:"destination"`

	// Authority is the hostname:port of the gRPC External Authorization service.
	Authority string `json:"authority"`
}

GRPCExtAuthService defines the gRPC External Authorization service The authorization request message is defined in https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/external_auth.proto +k8s:deepcopy-gen=true

func (*GRPCExtAuthService) DeepCopy added in v1.0.0

func (in *GRPCExtAuthService) DeepCopy() *GRPCExtAuthService

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

func (*GRPCExtAuthService) DeepCopyInto added in v1.0.0

func (in *GRPCExtAuthService) DeepCopyInto(out *GRPCExtAuthService)

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

type GlobalRateLimit added in v0.3.0

type GlobalRateLimit struct {

	// Rules for rate limiting.
	Rules []*RateLimitRule `json:"rules,omitempty" yaml:"rules,omitempty"`
}

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 HTTP10Settings added in v1.0.0

type HTTP10Settings struct {
	// defaultHost is set to the default host that should be injected for HTTP10. If the hostname shouldn't
	// be set, then defaultHost will be nil
	DefaultHost *string `json:"defaultHost,omitempty" yaml:"defaultHost,omitempty"`
}

HTTP10Settings provides HTTP/1.0 configuration on the listener. +k8s:deepcopy-gen=true

func (*HTTP10Settings) DeepCopy added in v1.0.0

func (in *HTTP10Settings) DeepCopy() *HTTP10Settings

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

func (*HTTP10Settings) DeepCopyInto added in v1.0.0

func (in *HTTP10Settings) DeepCopyInto(out *HTTP10Settings)

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

type HTTP1Settings added in v1.0.0

type HTTP1Settings struct {
	EnableTrailers     bool            `json:"enableTrailers,omitempty" yaml:"enableTrailers,omitempty"`
	PreserveHeaderCase bool            `json:"preserveHeaderCase,omitempty" yaml:"preserveHeaderCase,omitempty"`
	HTTP10             *HTTP10Settings `json:"http10,omitempty" yaml:"http10,omitempty"`
}

HTTP1Settings provides HTTP/1 configuration on the listener. +k8s:deepcopy-gen=true

func (*HTTP1Settings) DeepCopy added in v1.0.0

func (in *HTTP1Settings) DeepCopy() *HTTP1Settings

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

func (*HTTP1Settings) DeepCopyInto added in v1.0.0

func (in *HTTP1Settings) DeepCopyInto(out *HTTP1Settings)

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

type HTTP2Settings added in v1.1.0

type HTTP2Settings struct {
	// InitialStreamWindowSize is the initial window size for a stream.
	InitialStreamWindowSize *uint32 `json:"initialConnectionWindowSize,omitempty" yaml:"initialConnectionWindowSize,omitempty"`
	// InitialConnectionWindowSize is the initial window size for a connection.
	InitialConnectionWindowSize *uint32 `json:"initialStreamWindowSize,omitempty" yaml:"initialStreamWindowSize,omitempty"`
	// MaxConcurrentStreams is the maximum number of concurrent streams that can be opened on a connection.
	MaxConcurrentStreams *uint32 `json:"maxConcurrentStreams,omitempty" yaml:"maxConcurrentStreams,omitempty"`
}

HTTP2Settings provides HTTP/2 configuration on the listener. +k8s:deepcopy-gen=true

func (*HTTP2Settings) DeepCopy added in v1.1.0

func (in *HTTP2Settings) DeepCopy() *HTTP2Settings

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

func (*HTTP2Settings) DeepCopyInto added in v1.1.0

func (in *HTTP2Settings) DeepCopyInto(out *HTTP2Settings)

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

type HTTP3Settings added in v1.0.0

type HTTP3Settings struct {
	QUICPort int32 `json:"quicPort" yaml:"quicPort"`
}

HTTP3Settings provides HTTP/3 configuration on the listener.

type HTTPClientTimeout added in v1.0.0

type HTTPClientTimeout struct {
	// The duration envoy waits for the complete request reception. This timer starts upon request
	// initiation and stops when either the last byte of the request is sent upstream or when the response begins.
	RequestReceivedTimeout *metav1.Duration `json:"requestReceivedTimeout,omitempty" yaml:"requestReceivedTimeout,omitempty"`
	// IdleTimeout for an HTTP connection. Idle time is defined as a period in which there are no active requests in the connection.
	IdleTimeout *metav1.Duration `json:"idleTimeout,omitempty" yaml:"idleTimeout,omitempty"`
}

HTTPClientTimeout set the configuration for client HTTP. +k8s:deepcopy-gen=true

func (*HTTPClientTimeout) DeepCopy added in v1.0.0

func (in *HTTPClientTimeout) DeepCopy() *HTTPClientTimeout

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

func (*HTTPClientTimeout) DeepCopyInto added in v1.0.0

func (in *HTTPClientTimeout) DeepCopyInto(out *HTTPClientTimeout)

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

type HTTPExtAuthService added in v1.0.0

type HTTPExtAuthService struct {
	// Destination defines the destination for the HTTP External Authorization service.
	Destination RouteDestination `json:"destination"`

	// Authority is the hostname:port of the HTTP External Authorization service.
	Authority string `json:"authority"`

	// Path is the path of the HTTP External Authorization service.
	// If path is not empty, the authorization request will be sent to that path,
	// or else the authorization request will be sent to the root path.
	Path string `json:"path"`

	// HeadersToBackend are the authorization response headers that will be added
	// to the original client request before sending it to the backend server.
	// Note that coexisting headers will be overridden.
	// If not specified, no authorization response headers will be added to the
	// original client request.
	// +optional
	HeadersToBackend []string `json:"headersToBackend,omitempty"`
}

HTTPExtAuthService defines the HTTP External Authorization service +k8s:deepcopy-gen=true

func (*HTTPExtAuthService) DeepCopy added in v1.0.0

func (in *HTTPExtAuthService) DeepCopy() *HTTPExtAuthService

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

func (*HTTPExtAuthService) DeepCopyInto added in v1.0.0

func (in *HTTPExtAuthService) DeepCopyInto(out *HTTPExtAuthService)

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

type HTTPHealthChecker added in v1.0.0

type HTTPHealthChecker struct {
	// Host defines the value of the host header in the HTTP health check request.
	Host string `json:"host" yaml:"host"`
	// Path defines the HTTP path that will be requested during health checking.
	Path string `json:"path" yaml:"path"`
	// Method defines the HTTP method used for health checking.
	Method *string `json:"method,omitempty" yaml:"method,omitempty"`
	// ExpectedStatuses defines a list of HTTP response statuses considered healthy.
	ExpectedStatuses []HTTPStatus `json:"expectedStatuses,omitempty" yaml:"expectedStatuses,omitempty"`
	// ExpectedResponse defines a list of HTTP expected responses to match.
	ExpectedResponse *HealthCheckPayload `json:"expectedResponse,omitempty" yaml:"expectedResponses,omitempty"`
}

HTTPHealthChecker defines the settings of http health check. +k8s:deepcopy-gen=true

func (*HTTPHealthChecker) DeepCopy added in v1.0.0

func (in *HTTPHealthChecker) DeepCopy() *HTTPHealthChecker

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

func (*HTTPHealthChecker) DeepCopyInto added in v1.0.0

func (in *HTTPHealthChecker) DeepCopyInto(out *HTTPHealthChecker)

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

func (*HTTPHealthChecker) Validate added in v1.0.0

func (c *HTTPHealthChecker) Validate() error

Validate the fields within the HTTPHealthChecker structure.

type HTTPListener

type HTTPListener struct {
	CoreListenerDetails `json:",inline" yaml:",inline"`
	// 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 `json:"hostnames" yaml:"hostnames"`
	// Tls configuration. If omitted, the gateway will expose a plain text HTTP server.
	TLS *TLSConfig `json:"tls,omitempty" yaml:"tls,omitempty"`
	// Routes associated with HTTP traffic to the service.
	Routes []*HTTPRoute `json:"routes,omitempty" yaml:"routes,omitempty"`
	// IsHTTP2 is set if the listener is configured to serve HTTP2 traffic,
	// grpc-web and grpc-stats are also enabled if this is set.
	IsHTTP2 bool `json:"isHTTP2" yaml:"isHTTP2"`
	// TCPKeepalive configuration for the listener
	TCPKeepalive *TCPKeepalive `json:"tcpKeepalive,omitempty" yaml:"tcpKeepalive,omitempty"`
	// Headers configures special header management for the listener
	Headers *HeaderSettings `json:"headers,omitempty" yaml:"headers,omitempty"`
	// EnableProxyProtocol enables the listener to interpret proxy protocol header
	EnableProxyProtocol bool `json:"enableProxyProtocol,omitempty" yaml:"enableProxyProtocol,omitempty"`
	// ClientIPDetection controls how the original client IP address is determined for requests.
	ClientIPDetection *ClientIPDetectionSettings `json:"clientIPDetection,omitempty" yaml:"clientIPDetection,omitempty"`
	// Path contains settings for path URI manipulations
	Path PathSettings `json:"path,omitempty"`
	// HTTP1 provides HTTP/1 configuration on the listener
	// +optional
	HTTP1 *HTTP1Settings `json:"http1,omitempty" yaml:"http1,omitempty"`
	// HTTP2 provides HTTP/2 configuration on the listener
	// +optional
	HTTP2 *HTTP2Settings `json:"http2,omitempty" yaml:"http2,omitempty"`
	// HTTP3 provides HTTP/3 configuration on the listener.
	// +optional
	HTTP3 *HTTP3Settings `json:"http3,omitempty"`
	// HealthCheck provides configuration for determining whether the HTTP/HTTPS listener is healthy.
	HealthCheck *HealthCheckSettings `json:"healthCheck,omitempty" yaml:"healthCheck,omitempty"`
	// ClientTimeout sets the timeout configuration for downstream connections
	Timeout *ClientTimeout `json:"timeout,omitempty" yaml:"clientTimeout,omitempty"`
	// Connection settings
	Connection *ClientConnection `json:"connection,omitempty" yaml:"connection,omitempty"`
}

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 `json:"fullReplace" yaml:"fullReplace"`
	// PrefixMatchReplace provides a string to replace the matched prefix of the request.
	PrefixMatchReplace *string `json:"prefixMatchReplace" yaml:"prefixMatchReplace"`
}

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 `json:"name" yaml:"name"`
	// Hostname that the route matches against
	Hostname string `json:"hostname" yaml:"hostname,omitempty"`
	// IsHTTP2 is set if the route is configured to serve HTTP2 traffic
	IsHTTP2 bool `json:"isHTTP2" yaml:"isHTTP2"`
	// PathMatch defines the match conditions on the path.
	PathMatch *StringMatch `json:"pathMatch,omitempty" yaml:"pathMatch,omitempty"`
	// HeaderMatches define the match conditions on the request headers for this route.
	HeaderMatches []*StringMatch `json:"headerMatches,omitempty" yaml:"headerMatches,omitempty"`
	// QueryParamMatches define the match conditions on the query parameters.
	QueryParamMatches []*StringMatch `json:"queryParamMatches,omitempty" yaml:"queryParamMatches,omitempty"`
	// AddRequestHeaders defines header/value sets to be added to the headers of requests.
	AddRequestHeaders []AddHeader `json:"addRequestHeaders,omitempty" yaml:"addRequestHeaders,omitempty"`
	// RemoveRequestHeaders defines a list of headers to be removed from requests.
	RemoveRequestHeaders []string `json:"removeRequestHeaders,omitempty" yaml:"removeRequestHeaders,omitempty"`
	// AddResponseHeaders defines header/value sets to be added to the headers of response.
	AddResponseHeaders []AddHeader `json:"addResponseHeaders,omitempty" yaml:"addResponseHeaders,omitempty"`
	// RemoveResponseHeaders defines a list of headers to be removed from response.
	RemoveResponseHeaders []string `json:"removeResponseHeaders,omitempty" yaml:"removeResponseHeaders,omitempty"`
	// Direct responses to be returned for this route. Takes precedence over Destinations and Redirect.
	DirectResponse *DirectResponse `json:"directResponse,omitempty" yaml:"directResponse,omitempty"`
	// Redirections to be returned for this route. Takes precedence over Destinations.
	Redirect *Redirect `json:"redirect,omitempty" yaml:"redirect,omitempty"`
	// Destination that requests to this HTTPRoute will be mirrored to
	Mirrors []*RouteDestination `json:"mirrors,omitempty" yaml:"mirrors,omitempty"`
	// Destination associated with this matched route.
	Destination *RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	// Rewrite to be changed for this route.
	URLRewrite *URLRewrite `json:"urlRewrite,omitempty" yaml:"urlRewrite,omitempty"`
	// ExtensionRefs holds unstructured resources that were introduced by an extension and used on the HTTPRoute as extensionRef filters
	ExtensionRefs []*UnstructuredRef `json:"extensionRefs,omitempty" yaml:"extensionRefs,omitempty"`
	// Traffic holds the features associated with BackendTrafficPolicy
	Traffic *TrafficFeatures `json:"traffic,omitempty" yaml:"traffic,omitempty"`
	// Security holds the features associated with SecurityPolicy
	Security *SecurityFeatures `json:"security,omitempty" yaml:"security,omitempty"`
	// EnvoyExtension holds the features associated with EnvoyExtensionPolicy
	EnvoyExtensions *EnvoyExtensionFeatures `json:"envoyExtensions,omitempty" yaml:"envoyExtensions,omitempty"`
	// UseClientProtocol enables using the same protocol upstream that was used downstream
	UseClientProtocol *bool `json:"useClientProtocol,omitempty" yaml:"useClientProtocol,omitempty"`
	// Metadata is used to enrich envoy route metadata with user and provider-specific information
	Metadata *ResourceMetadata `json:"metadata,omitempty" yaml:"metadata,omitempty"`
}

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 HTTPStatus added in v1.0.0

type HTTPStatus int

HTTPStatus represents http status code.

func (HTTPStatus) Validate added in v1.0.0

func (h HTTPStatus) Validate() error

type HTTPTimeout added in v1.0.0

type HTTPTimeout struct {
	// RequestTimeout is the time until which entire response is received from the upstream.
	RequestTimeout *metav1.Duration `json:"requestTimeout,omitempty" yaml:"requestTimeout,omitempty"`

	// The idle timeout for an HTTP connection. Idle time is defined as a period in which there are no active requests in the connection.
	ConnectionIdleTimeout *metav1.Duration `json:"connectionIdleTimeout,omitempty" yaml:"connectionIdleTimeout,omitempty"`

	// The maximum duration of an HTTP connection.
	MaxConnectionDuration *metav1.Duration `json:"maxConnectionDuration,omitempty" yaml:"maxConnectionDuration,omitempty"`
}

+k8s:deepcopy-gen=true

func (*HTTPTimeout) DeepCopy added in v1.0.0

func (in *HTTPTimeout) DeepCopy() *HTTPTimeout

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

func (*HTTPTimeout) DeepCopyInto added in v1.0.0

func (in *HTTPTimeout) DeepCopyInto(out *HTTPTimeout)

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

type HTTPWasmCode added in v1.1.0

type HTTPWasmCode struct {
	// ServingURL is the URL of the Wasm code served by the local EG HTTP server.
	ServingURL string `json:"servingURL"`

	// SHA256 checksum that will be used by the Envoy to verify the Wasm code.
	// It's different from the digest of the OCI image.
	SHA256 string `json:"sha256"`

	// OriginalURL is the original downloading URL of the Wasm code.
	// Note: This field is just used for testing. It's not used to generate the Envoy configuration.
	OriginalURL string `json:"originalDownloadingURL"`
}

HTTPWasmCode holds the information associated with the HTTP Wasm code source. +k8s:deepcopy-gen=true

func (*HTTPWasmCode) DeepCopy added in v1.1.0

func (in *HTTPWasmCode) DeepCopy() *HTTPWasmCode

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

func (*HTTPWasmCode) DeepCopyInto added in v1.1.0

func (in *HTTPWasmCode) DeepCopyInto(out *HTTPWasmCode)

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

type Header struct {
	Name string `json:"name" yaml:"name"`
}

Header consistent hash type settings

type HeaderSettings added in v1.0.0

type HeaderSettings struct {
	// EnableEnvoyHeaders controls if "x-envoy-" headers are added by the HTTP Router filter.
	// The default is to suppress these headers.
	// Refer to https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/router/v3/router.proto#extensions-filters-http-router-v3-router
	EnableEnvoyHeaders bool `json:"enableEnvoyHeaders,omitempty" yaml:"enableEnvoyHeaders,omitempty"`

	// DisableRateLimitHeaders controls if "x-ratelimit-" headers are added by the HTTP Router filter.
	// The default is to emit these headers.
	// https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ratelimit/v3/rate_limit.proto#extensions-filters-http-ratelimit-v3-ratelimit
	DisableRateLimitHeaders bool `json:"disableRateLimitHeaders,omitempty" yaml:"disableRateLimitHeaders,omitempty"`

	// Configure Envoy proxy how to handle the x-forwarded-client-cert (XFCC) HTTP header.
	// refer to https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-enum-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-forwardclientcertdetails
	XForwardedClientCert *XForwardedClientCert `json:"xForwardedClientCert,omitempty" yaml:"xForwardedClientCert,omitempty"`

	// WithUnderscoresAction configures the action to take when an HTTP header with underscores
	// is encountered. The default action is to reject the request.
	// Refer to https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-enum-config-core-v3-httpprotocoloptions-headerswithunderscoresaction
	WithUnderscoresAction WithUnderscoresAction `json:"withUnderscoresAction,omitempty" yaml:"withUnderscoresAction,omitempty"`

	// PreserveXRequestID configures whether Envoy will keep the x-request-id header if passed for a request that is edge
	// (Edge request is the request from external clients to front Envoy) and not reset it, which is the current Envoy behaviour.
	// It defaults to false.
	PreserveXRequestID bool `json:"preserveXRequestID,omitempty" yaml:"preserveXRequestID,omitempty"`
}

HeaderSettings provides configuration related to header processing on the listener. +k8s:deepcopy-gen=true

func (*HeaderSettings) DeepCopy added in v1.0.0

func (in *HeaderSettings) DeepCopy() *HeaderSettings

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

func (*HeaderSettings) DeepCopyInto added in v1.0.0

func (in *HeaderSettings) DeepCopyInto(out *HeaderSettings)

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

type HealthCheck added in v1.0.0

type HealthCheck struct {
	Active *ActiveHealthCheck `json:"active,omitempty" yaml:"active,omitempty"`

	Passive *OutlierDetection `json:"passive,omitempty" yaml:"passive,omitempty"`
}

HealthCheck defines health check settings +k8s:deepcopy-gen=true

func (*HealthCheck) DeepCopy added in v1.0.0

func (in *HealthCheck) DeepCopy() *HealthCheck

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

func (*HealthCheck) DeepCopyInto added in v1.0.0

func (in *HealthCheck) DeepCopyInto(out *HealthCheck)

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

func (*HealthCheck) SetHTTPHostIfAbsent added in v1.0.1

func (h *HealthCheck) SetHTTPHostIfAbsent(host string)

func (*HealthCheck) Validate added in v1.0.0

func (h *HealthCheck) Validate() error

Validate the fields within the HealthCheck structure.

type HealthCheckPayload added in v1.0.0

type HealthCheckPayload struct {
	// Text payload in plain text.
	Text *string `json:"text,omitempty" yaml:"text,omitempty"`
	// Binary payload base64 encoded
	Binary []byte `json:"binary,omitempty" yaml:"binary,omitempty"`
}

HealthCheckPayload defines the encoding of the payload bytes in the payload. +k8s:deepcopy-gen=true

func (*HealthCheckPayload) DeepCopy added in v1.0.0

func (in *HealthCheckPayload) DeepCopy() *HealthCheckPayload

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

func (*HealthCheckPayload) DeepCopyInto added in v1.0.0

func (in *HealthCheckPayload) DeepCopyInto(out *HealthCheckPayload)

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

func (*HealthCheckPayload) Validate added in v1.0.0

func (p *HealthCheckPayload) Validate() error

Validate the fields in the HealthCheckPayload.

type HealthCheckSettings added in v1.1.0

type HealthCheckSettings egv1a1.HealthCheckSettings

HealthCheckSettings provides HealthCheck configuration on the HTTP/HTTPS listener. +k8s:deepcopy-gen=true

func (*HealthCheckSettings) DeepCopy added in v1.1.0

func (in *HealthCheckSettings) DeepCopy() *HealthCheckSettings

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

func (*HealthCheckSettings) DeepCopyInto added in v1.1.0

func (in *HealthCheckSettings) DeepCopyInto(out *HealthCheckSettings)

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 `json:"proxy" yaml:"proxy"`
}

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.

func (Infra) YAMLString added in v1.0.0

func (i Infra) YAMLString() string

type InfraMetadata

type InfraMetadata struct {
	// Annotations define a map of string keys and values that can be used to
	// organize and categorize proxy infrastructure objects.
	Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"`
	// Labels define a map of string keys and values that can be used to organize
	// and categorize proxy infrastructure objects.
	Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
}

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 JSONAccessLog added in v0.5.0

type JSONAccessLog struct {
	CELMatches []string          `json:"celMatches,omitempty" yaml:"celMatches,omitempty"`
	JSON       map[string]string `json:"json,omitempty" yaml:"json,omitempty"`
	Path       string            `json:"path" yaml:"path"`
}

JSONAccessLog holds the configuration for JSON access logging. +k8s:deepcopy-gen=true

func (*JSONAccessLog) DeepCopy added in v0.5.0

func (in *JSONAccessLog) DeepCopy() *JSONAccessLog

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

func (*JSONAccessLog) DeepCopyInto added in v0.5.0

func (in *JSONAccessLog) DeepCopyInto(out *JSONAccessLog)

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

type JSONPatchConfig added in v0.5.0

type JSONPatchConfig struct {
	// Type is the typed URL of the Envoy xDS Resource
	Type string `json:"type" yaml:"type"`
	// Name is the name of the resource
	Name string `json:"name" yaml:"name"`
	// Patch defines the JSON Patch Operation
	Operation JSONPatchOperation `json:"operation" yaml:"operation"`
}

JSONPatchConfig defines the configuration for patching a Envoy xDS Resource using JSONPatch semantics +k8s:deepcopy-gen=true

func (*JSONPatchConfig) DeepCopy added in v0.5.0

func (in *JSONPatchConfig) DeepCopy() *JSONPatchConfig

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

func (*JSONPatchConfig) DeepCopyInto added in v0.5.0

func (in *JSONPatchConfig) DeepCopyInto(out *JSONPatchConfig)

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

type JSONPatchOperation added in v0.5.0

type JSONPatchOperation struct {
	// Op is the type of operation to perform
	Op string `json:"op" yaml:"op"`
	// Path is the location of the target document/field where the operation will be performed
	// Refer to https://datatracker.ietf.org/doc/html/rfc6901 for more details.
	Path string `json:"path" yaml:"path"`
	// From is the source location of the value to be copied or moved. Only valid
	// for move or copy operations
	// Refer to https://datatracker.ietf.org/doc/html/rfc6901 for more details.
	// +optional
	From *string `json:"from,omitempty" yaml:"from,omitempty"`
	// Value is the new value of the path location.
	Value *apiextensionsv1.JSON `json:"value,omitempty" yaml:"value,omitempty"`
}

JSONPatchOperation defines the JSON Patch Operation as defined in https://datatracker.ietf.org/doc/html/rfc6902 +k8s:deepcopy-gen=true

func (*JSONPatchOperation) DeepCopy added in v0.5.0

func (in *JSONPatchOperation) DeepCopy() *JSONPatchOperation

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

func (*JSONPatchOperation) DeepCopyInto added in v0.5.0

func (in *JSONPatchOperation) DeepCopyInto(out *JSONPatchOperation)

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

type JWT added in v0.6.0

type JWT struct {
	// AllowMissing determines whether a missing JWT is acceptable.
	//
	AllowMissing bool `json:"allowMissing,omitempty" yaml:"allowMissing,omitempty"`

	// Providers defines a list of JSON Web Token (JWT) authentication providers.
	Providers []egv1a1.JWTProvider `json:"providers,omitempty" yaml:"providers,omitempty"`
}

JWT defines the schema for authenticating HTTP requests using JSON Web Tokens (JWT).

+k8s:deepcopy-gen=true

func (*JWT) DeepCopy added in v0.6.0

func (in *JWT) DeepCopy() *JWT

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

func (*JWT) DeepCopyInto added in v0.6.0

func (in *JWT) DeepCopyInto(out *JWT)

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

func (*JWT) Validate added in v1.1.0

func (j *JWT) Validate() error

type LeastRequest added in v0.6.0

type LeastRequest struct {
	// SlowStart defines the slow start configuration.
	// If set, slow start mode is enabled for newly added hosts in the cluster.
	SlowStart *SlowStart `json:"slowStart,omitempty" yaml:"slowStart,omitempty"`
}

LeastRequest load balancer settings +k8s:deepcopy-gen=true

func (*LeastRequest) DeepCopy added in v0.6.0

func (in *LeastRequest) DeepCopy() *LeastRequest

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

func (*LeastRequest) DeepCopyInto added in v0.6.0

func (in *LeastRequest) DeepCopyInto(out *LeastRequest)

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

type Listener added in v1.1.0

type Listener interface {
	GetName() string
	GetAddress() string
	GetPort() uint32
	GetExtensionRefs() []*UnstructuredRef
}

type ListenerPort

type ListenerPort struct {
	// Name is the name of the listener port.
	Name string `json:"name" yaml:"name"`
	// Protocol is the protocol that the listener port will listener for.
	Protocol ProtocolType `json:"protocol" yaml:"protocol"`
	// ServicePort is the port number the proxy service is listening on.
	ServicePort int32 `json:"servicePort" yaml:"servicePort"`
	// ContainerPort is the port number the proxy container is listening on.
	ContainerPort int32 `json:"containerPort" yaml:"containerPort"`
}

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 LoadBalancer added in v0.6.0

type LoadBalancer struct {
	// RoundRobin load balacning policy
	RoundRobin *RoundRobin `json:"roundRobin,omitempty" yaml:"roundRobin,omitempty"`
	// LeastRequest load balancer policy
	LeastRequest *LeastRequest `json:"leastRequest,omitempty" yaml:"leastRequest,omitempty"`
	// Random load balancer policy
	Random *Random `json:"random,omitempty" yaml:"random,omitempty"`
	// ConsistentHash load balancer policy
	ConsistentHash *ConsistentHash `json:"consistentHash,omitempty" yaml:"consistentHash,omitempty"`
}

LoadBalancer defines the load balancer settings. +k8s:deepcopy-gen=true

func (*LoadBalancer) DeepCopy added in v0.6.0

func (in *LoadBalancer) DeepCopy() *LoadBalancer

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

func (*LoadBalancer) DeepCopyInto added in v0.6.0

func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)

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

func (*LoadBalancer) Validate added in v0.6.0

func (l *LoadBalancer) Validate() error

Validate the fields within the LoadBalancer structure

type LocalRateLimit added in v1.0.0

type LocalRateLimit struct {
	// Default rate limiting values.
	// If a request does not match any of the rules, the default values are used.
	Default RateLimitValue `json:"default,omitempty" yaml:"default,omitempty"`

	// Rules for rate limiting.
	Rules []*RateLimitRule `json:"rules,omitempty" yaml:"rules,omitempty"`
}

LocalRateLimit holds the local rate limiting configuration. +k8s:deepcopy-gen=true

func (*LocalRateLimit) DeepCopy added in v1.0.0

func (in *LocalRateLimit) DeepCopy() *LocalRateLimit

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

func (*LocalRateLimit) DeepCopyInto added in v1.0.0

func (in *LocalRateLimit) DeepCopyInto(out *LocalRateLimit)

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

type Metrics added in v0.6.0

type Metrics struct {
	EnableVirtualHostStats bool `json:"enableVirtualHostStats" yaml:"enableVirtualHostStats"`
	EnablePerEndpointStats bool `json:"enablePerEndpointStats" yaml:"enablePerEndpointStats"`
}

Metrics defines the configuration for metrics generated by Envoy +k8s:deepcopy-gen=true

func (*Metrics) DeepCopy added in v0.6.0

func (in *Metrics) DeepCopy() *Metrics

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

func (*Metrics) DeepCopyInto added in v0.6.0

func (in *Metrics) DeepCopyInto(out *Metrics)

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

type OIDC added in v1.0.0

type OIDC struct {
	// Name is a unique name for an OIDC configuration.
	// The xds translator only generates one OAuth2 filter for each unique name.
	Name string `json:"name" yaml:"name"`

	// The OIDC Provider configuration.
	Provider OIDCProvider `json:"provider" yaml:"provider"`

	// The OIDC client ID to be used in the
	// [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
	ClientID string `json:"clientID" yaml:"clientID"`

	// The OIDC client secret to be used in the
	// [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
	//
	// This is an Opaque secret. The client secret should be stored in the key "client-secret".
	ClientSecret []byte `json:"clientSecret,omitempty" yaml:"clientSecret,omitempty"`

	// HMACSecret is the secret used to sign the HMAC of the OAuth2 filter cookies.
	HMACSecret []byte `json:"hmacSecret,omitempty" yaml:"hmacSecret,omitempty"`

	// The OIDC scopes to be used in the
	// [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
	Scopes []string `json:"scopes,omitempty" yaml:"scopes,omitempty"`

	// The OIDC resources to be used in the
	// [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
	Resources []string `json:"resources,omitempty" yaml:"resources,omitempty"`

	// The redirect URL to be used in the OIDC
	// [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
	RedirectURL string `json:"redirectURL,omitempty"`

	// The path part of the redirect URL
	RedirectPath string `json:"redirectPath,omitempty"`

	// The path to log a user out, clearing their credential cookies.
	LogoutPath string `json:"logoutPath,omitempty"`

	// ForwardAccessToken indicates whether the Envoy should forward the access token
	// via the Authorization header Bearer scheme to the upstream.
	ForwardAccessToken bool `json:"forwardAccessToken,omitempty"`

	// DefaultTokenTTL is the default lifetime of the id token and access token.
	DefaultTokenTTL *metav1.Duration `json:"defaultTokenTTL,omitempty"`

	// RefreshToken indicates whether the Envoy should automatically refresh the
	// id token and access token when they expire.
	RefreshToken bool `json:"refreshToken,omitempty"`

	// DefaultRefreshTokenTTL is the default lifetime of the refresh token.
	DefaultRefreshTokenTTL *metav1.Duration `json:"defaultRefreshTokenTTL,omitempty"`

	// CookieSuffix will be added to the name of the cookies set by the oauth filter.
	// Adding a suffix avoids multiple oauth filters from overwriting each other's cookies.
	// These cookies are set by the oauth filter, including: AccessToken,
	// OauthHMAC, OauthExpires, IdToken, and RefreshToken.
	CookieSuffix string `json:"cookieSuffix,omitempty"`

	// CookieNameOverrides can optionally override the generated name of the cookies set by the oauth filter.
	CookieNameOverrides *egv1a1.OIDCCookieNames `json:"cookieNameOverrides,omitempty"`
}

OIDC defines the schema for authenticating HTTP requests using OpenID Connect (OIDC).

+k8s:deepcopy-gen=true

func (*OIDC) DeepCopy added in v1.0.0

func (in *OIDC) DeepCopy() *OIDC

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

func (*OIDC) DeepCopyInto added in v1.0.0

func (in *OIDC) DeepCopyInto(out *OIDC)

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

type OIDCProvider added in v1.0.0

type OIDCProvider struct {
	// The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
	AuthorizationEndpoint string `json:"authorizationEndpoint,omitempty"`

	// The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
	TokenEndpoint string `json:"tokenEndpoint,omitempty"`
}

type OpenTelemetryAccessLog added in v0.5.0

type OpenTelemetryAccessLog struct {
	CELMatches  []string          `json:"celMatches,omitempty" yaml:"celMatches,omitempty"`
	Authority   string            `json:"authority,omitempty" yaml:"authority,omitempty"`
	Text        *string           `json:"text,omitempty" yaml:"text,omitempty"`
	Attributes  map[string]string `json:"attributes,omitempty" yaml:"attributes,omitempty"`
	Resources   map[string]string `json:"resources,omitempty" yaml:"resources,omitempty"`
	Destination RouteDestination  `json:"destination,omitempty" yaml:"destination,omitempty"`
}

OpenTelemetryAccessLog holds the configuration for OpenTelemetry access logging. +k8s:deepcopy-gen=true

func (*OpenTelemetryAccessLog) DeepCopy added in v0.5.0

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

func (*OpenTelemetryAccessLog) DeepCopyInto added in v0.5.0

func (in *OpenTelemetryAccessLog) DeepCopyInto(out *OpenTelemetryAccessLog)

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

type OutlierDetection added in v1.0.0

type OutlierDetection struct {
	// Interval defines the time between passive health checks.
	Interval *metav1.Duration `json:"interval,omitempty"`
	// SplitExternalLocalOriginErrors enables splitting of errors between external and local origin.
	SplitExternalLocalOriginErrors *bool `json:"splitExternalLocalOriginErrors,omitempty" yaml:"splitExternalLocalOriginErrors,omitempty"`
	// ConsecutiveLocalOriginFailures sets the number of consecutive local origin failures triggering ejection.
	ConsecutiveLocalOriginFailures *uint32 `json:"consecutiveLocalOriginFailures,omitempty" yaml:"consecutiveLocalOriginFailures,omitempty"`
	// ConsecutiveGatewayErrors sets the number of consecutive gateway errors triggering ejection.
	ConsecutiveGatewayErrors *uint32 `json:"consecutiveGatewayErrors,omitempty" yaml:"consecutiveGatewayErrors,omitempty"`
	// Consecutive5xxErrors sets the number of consecutive 5xx errors triggering ejection.
	Consecutive5xxErrors *uint32 `json:"consecutive5XxErrors,omitempty" yaml:"consecutive5XxErrors,omitempty"`
	// BaseEjectionTime defines the base duration for which a host will be ejected on consecutive failures.
	BaseEjectionTime *metav1.Duration `json:"baseEjectionTime,omitempty" yaml:"baseEjectionTime,omitempty"`
	// MaxEjectionPercent sets the maximum percentage of hosts in a cluster that can be ejected.
	MaxEjectionPercent *int32 `json:"maxEjectionPercent,omitempty" yaml:"maxEjectionPercent,omitempty"`
}

OutlierDetection defines passive health check settings +k8s:deepcopy-gen=true

func (*OutlierDetection) DeepCopy added in v1.0.0

func (in *OutlierDetection) DeepCopy() *OutlierDetection

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

func (*OutlierDetection) DeepCopyInto added in v1.0.0

func (in *OutlierDetection) DeepCopyInto(out *OutlierDetection)

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

type PathEscapedSlashAction added in v1.0.0

type PathEscapedSlashAction egv1a1.PathEscapedSlashAction

type PathSettings added in v1.0.0

type PathSettings struct {
	MergeSlashes         bool                   `json:"mergeSlashes" yaml:"mergeSlashes"`
	EscapedSlashesAction PathEscapedSlashAction `json:"escapedSlashesAction" yaml:"escapedSlashesAction"`
}

PathSettings holds configuration for path URI manipulations +k8s:deepcopy-gen=true

func (*PathSettings) DeepCopy added in v1.0.0

func (in *PathSettings) DeepCopy() *PathSettings

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

func (*PathSettings) DeepCopyInto added in v1.0.0

func (in *PathSettings) DeepCopyInto(out *PathSettings)

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

type PerRetryPolicy added in v1.0.0

type PerRetryPolicy struct {
	// Timeout is the timeout per retry attempt.
	Timeout *metav1.Duration `json:"timeout,omitempty"`
	// Backoff is the backoff policy to be applied per retry attempt.
	BackOff *BackOffPolicy `json:"backOff,omitempty"`
}

+k8s:deepcopy-gen=true

func (*PerRetryPolicy) DeepCopy added in v1.0.0

func (in *PerRetryPolicy) DeepCopy() *PerRetryPolicy

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

func (*PerRetryPolicy) DeepCopyInto added in v1.0.0

func (in *PerRetryPolicy) DeepCopyInto(out *PerRetryPolicy)

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

type Principal added in v1.1.0

type Principal struct {
	// ClientCIDRs defines the client CIDRs to be matched.
	ClientCIDRs []*CIDRMatch `json:"clientCIDRs,omitempty"`
}

Principal defines the schema for the principal.

+k8s:deepcopy-gen=true

func (*Principal) DeepCopy added in v1.1.0

func (in *Principal) DeepCopy() *Principal

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

func (*Principal) DeepCopyInto added in v1.1.0

func (in *Principal) DeepCopyInto(out *Principal)

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 `json:"metadata,omitempty" yaml:"metadata,omitempty"`
	// Name is the name used for managed proxy infrastructure.
	Name string `json:"name" yaml:"name"`
	// Config defines user-facing configuration of the managed proxy infrastructure.
	Config *egv1a1.EnvoyProxy `json:"config,omitempty" yaml:"config,omitempty"`
	// Listeners define the listeners exposed by the proxy infrastructure.
	Listeners []*ProxyListener `json:"listeners,omitempty" yaml:"listeners,omitempty"`
	// Addresses contain the external addresses this gateway has been
	// requested to be available at.
	Addresses []string `json:"addresses,omitempty" yaml:"addresses,omitempty"`
}

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) Equal added in v1.0.0

func (p *ProxyInfra) Equal(y *ProxyInfra) bool

Equal implements the Comparable interface used by watchable.DeepEqual to skip unnecessary updates.

func (*ProxyInfra) GetProxyConfig added in v0.3.0

func (p *ProxyInfra) GetProxyConfig() *egv1a1.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 {
	// Name of the ProxyListener
	Name string `json:"name" yaml:"name"`
	// Address is the address that the listener should listen on.
	Address *string `json:"address" yaml:"address"`
	// Ports define network ports of the listener.
	Ports []ListenerPort `json:"ports,omitempty" yaml:"ports,omitempty"`
	// HTTP3 provides HTTP/3 configuration on the listener.
	// +optional
	HTTP3 *HTTP3Settings `json:"http3,omitempty"`
}

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 ProxyProtocol added in v1.0.0

type ProxyProtocol struct {
	// Version of proxy protocol to use
	Version ProxyProtocolVersion `json:"version,omitempty" yaml:"version,omitempty"`
}

ProxyProtocol upstream settings +k8s:deepcopy-gen=true

func (*ProxyProtocol) DeepCopy added in v1.0.0

func (in *ProxyProtocol) DeepCopy() *ProxyProtocol

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

func (*ProxyProtocol) DeepCopyInto added in v1.0.0

func (in *ProxyProtocol) DeepCopyInto(out *ProxyProtocol)

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

type ProxyProtocolVersion added in v1.0.0

type ProxyProtocolVersion string
const (
	// ProxyProtocolVersionV1 is the PROXY protocol version 1 (human readable format).
	ProxyProtocolVersionV1 ProxyProtocolVersion = "V1"
	// ProxyProtocolVersionV2 is the PROXY protocol version 2 (binary format).
	ProxyProtocolVersionV2 ProxyProtocolVersion = "V2"
)

type Random added in v0.6.0

type Random struct{}

Random load balancer settings +k8s:deepcopy-gen=true

func (*Random) DeepCopy added in v0.6.0

func (in *Random) DeepCopy() *Random

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

func (*Random) DeepCopyInto added in v0.6.0

func (in *Random) DeepCopyInto(out *Random)

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 `json:"global,omitempty" yaml:"global,omitempty"`

	// Local rate limit settings.
	Local *LocalRateLimit `json:"local,omitempty" yaml:"local,omitempty"`
}

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

type RateLimitRule struct {
	// HeaderMatches define the match conditions on the request headers for this route.
	HeaderMatches []*StringMatch `json:"headerMatches" yaml:"headerMatches"`
	// CIDRMatch define the match conditions on the source IP's CIDR for this route.
	CIDRMatch *CIDRMatch `json:"cidrMatch,omitempty" yaml:"cidrMatch,omitempty"`
	// Limit holds the rate limit values.
	Limit RateLimitValue `json:"limit,omitempty" yaml:"limit,omitempty"`
}

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

TODO zhaohuabing: remove this function

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 `json:"requests" yaml:"requests"`
	// Unit of rate limiting.
	Unit RateLimitUnit `json:"unit" yaml:"unit"`
}

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 `json:"scheme" yaml:"scheme"`
	// Hostname configures the replacement of the request's hostname.
	Hostname *string `json:"hostname" yaml:"hostname"`
	// Path contains config for rewriting the path of the request.
	Path *HTTPPathModifier `json:"path" yaml:"path"`
	// Port configures the replacement of the request's port.
	Port *uint32 `json:"port" yaml:"port"`
	// Status code configures the redirection response's status code.
	StatusCode *int32 `json:"statusCode" yaml:"statusCode"`
}

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 ResourceMetadata added in v1.1.0

type ResourceMetadata struct {
	// Kind is the kind of the resource
	Kind string `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Name is the name of the resource
	Name string `json:"name,omitempty" yaml:"name,omitempty"`
	// Namespace is the namespace of the resource
	Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
	// Annotations are the annotations of the resource
	Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"`
	// SectionName is the name of a section of a resource
	SectionName string `json:"sectionName,omitempty" yaml:"sectionName,omitempty"`
}

ResourceMetadata is metadata from the provider resource that is translated to an envoy resource +k8s:deepcopy-gen=true

func (*ResourceMetadata) DeepCopy added in v1.1.0

func (in *ResourceMetadata) DeepCopy() *ResourceMetadata

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

func (*ResourceMetadata) DeepCopyInto added in v1.1.0

func (in *ResourceMetadata) DeepCopyInto(out *ResourceMetadata)

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

type Retry added in v1.0.0

type Retry struct {
	// NumRetries is the number of retries to be attempted. Defaults to 2.
	NumRetries *uint32 `json:"numRetries,omitempty"`

	// RetryOn specifies the retry trigger condition.
	RetryOn *RetryOn `json:"retryOn,omitempty"`

	// PerRetry is the retry policy to be applied per retry attempt.
	PerRetry *PerRetryPolicy `json:"perRetry,omitempty"`
}

Retry define the retry policy configuration. +k8s:deepcopy-gen=true

func (*Retry) DeepCopy added in v1.0.0

func (in *Retry) DeepCopy() *Retry

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

func (*Retry) DeepCopyInto added in v1.0.0

func (in *Retry) DeepCopyInto(out *Retry)

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

type RetryOn added in v1.0.0

type RetryOn struct {
	// Triggers specifies the retry trigger condition(Http/Grpc).
	Triggers []TriggerEnum `json:"triggers,omitempty"`

	// HttpStatusCodes specifies the http status codes to be retried.
	HTTPStatusCodes []HTTPStatus `json:"httpStatusCodes,omitempty"`
}

+k8s:deepcopy-gen=true

func (*RetryOn) DeepCopy added in v1.0.0

func (in *RetryOn) DeepCopy() *RetryOn

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

func (*RetryOn) DeepCopyInto added in v1.0.0

func (in *RetryOn) DeepCopyInto(out *RetryOn)

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

type RoundRobin added in v0.6.0

type RoundRobin struct {
	// SlowStart defines the slow start configuration.
	// If set, slow start mode is enabled for newly added hosts in the cluster.
	SlowStart *SlowStart `json:"slowStart,omitempty" yaml:"slowStart,omitempty"`
}

RoundRobin load balancer settings +k8s:deepcopy-gen=true

func (*RoundRobin) DeepCopy added in v0.6.0

func (in *RoundRobin) DeepCopy() *RoundRobin

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

func (*RoundRobin) DeepCopyInto added in v0.6.0

func (in *RoundRobin) DeepCopyInto(out *RoundRobin)

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

type RouteDestination

type RouteDestination struct {
	// Name of the destination. This field allows the xds layer
	// to check if this route destination already exists and can be
	// reused
	Name     string                `json:"name" yaml:"name"`
	Settings []*DestinationSetting `json:"settings,omitempty" yaml:"settings,omitempty"`
}

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

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) ToBackendWeights added in v1.1.0

func (r *RouteDestination) ToBackendWeights() *BackendWeights

func (*RouteDestination) Validate

func (r *RouteDestination) Validate() error

Validate the fields within the RouteDestination structure

type SecurityFeatures added in v1.1.0

type SecurityFeatures struct {
	// CORS policy for the route.
	CORS *CORS `json:"cors,omitempty" yaml:"cors,omitempty"`
	// JWT defines the schema for authenticating HTTP requests using JSON Web Tokens (JWT).
	JWT *JWT `json:"jwt,omitempty" yaml:"jwt,omitempty"`
	// OIDC defines the schema for authenticating HTTP requests using OpenID Connect (OIDC).
	OIDC *OIDC `json:"oidc,omitempty" yaml:"oidc,omitempty"`
	// BasicAuth defines the schema for the HTTP Basic Authentication.
	BasicAuth *BasicAuth `json:"basicAuth,omitempty" yaml:"basicAuth,omitempty"`
	// ExtAuth defines the schema for the external authorization.
	ExtAuth *ExtAuth `json:"extAuth,omitempty" yaml:"extAuth,omitempty"`
	// Authorization defines the schema for the authorization.
	Authorization *Authorization `json:"authorization,omitempty" yaml:"authorization,omitempty"`
}

SecurityFeatures holds the information associated with the Security Policy. +k8s:deepcopy-gen=true

func (*SecurityFeatures) DeepCopy added in v1.1.0

func (in *SecurityFeatures) DeepCopy() *SecurityFeatures

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

func (*SecurityFeatures) DeepCopyInto added in v1.1.0

func (in *SecurityFeatures) DeepCopyInto(out *SecurityFeatures)

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

func (*SecurityFeatures) Printable added in v1.1.0

func (s *SecurityFeatures) Printable() *SecurityFeatures

func (*SecurityFeatures) Validate added in v1.1.0

func (s *SecurityFeatures) Validate() error

type SlowStart added in v1.0.0

type SlowStart struct {
	// Window defines the duration of the warm up period for newly added host.
	Window *metav1.Duration `json:"window" yaml:"window"`
}

SlowStart defines the slow start configuration. +k8s:deepcopy-gen=true

func (*SlowStart) DeepCopy added in v1.0.0

func (in *SlowStart) DeepCopy() *SlowStart

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

func (*SlowStart) DeepCopyInto added in v1.0.0

func (in *SlowStart) DeepCopyInto(out *SlowStart)

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

type StringMatch

type StringMatch struct {
	// Name of the field to match on.
	Name string `json:"name" yaml:"name"`
	// Exact match condition.
	Exact *string `json:"exact,omitempty" yaml:"exact,omitempty"`
	// Prefix match condition.
	Prefix *string `json:"prefix,omitempty" yaml:"prefix,omitempty"`
	// Suffix match condition.
	Suffix *string `json:"suffix,omitempty" yaml:"suffix,omitempty"`
	// SafeRegex match condition.
	SafeRegex *string `json:"safeRegex,omitempty" yaml:"safeRegex,omitempty"`
	// Distinct match condition.
	// Used to match any and all possible unique values encountered within the Name field.
	Distinct bool `json:"distinct" yaml:"distinct"`
}

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 TCPClientTimeout added in v1.1.0

type TCPClientTimeout struct {
	// IdleTimeout for a TCP connection. Idle time is defined as a period in which there are no
	// bytes sent or received on either the upstream or downstream connection.
	IdleTimeout *metav1.Duration `json:"idleTimeout,omitempty" yaml:"idleTimeout,omitempty"`
}

TCPClientTimeout set the configuration for client TCP (not HTTP). +k8s:deepcopy-gen=true

func (*TCPClientTimeout) DeepCopy added in v1.1.0

func (in *TCPClientTimeout) DeepCopy() *TCPClientTimeout

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

func (*TCPClientTimeout) DeepCopyInto added in v1.1.0

func (in *TCPClientTimeout) DeepCopyInto(out *TCPClientTimeout)

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

type TCPHealthChecker added in v1.0.0

type TCPHealthChecker struct {
	Send    *HealthCheckPayload `json:"send,omitempty" yaml:"send,omitempty"`
	Receive *HealthCheckPayload `json:"receive,omitempty" yaml:"receive,omitempty"`
}

TCPHealthChecker defines the settings of tcp health check. +k8s:deepcopy-gen=true

func (*TCPHealthChecker) DeepCopy added in v1.0.0

func (in *TCPHealthChecker) DeepCopy() *TCPHealthChecker

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

func (*TCPHealthChecker) DeepCopyInto added in v1.0.0

func (in *TCPHealthChecker) DeepCopyInto(out *TCPHealthChecker)

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

func (*TCPHealthChecker) Validate added in v1.0.0

func (c *TCPHealthChecker) Validate() error

Validate the fields within the TCPHealthChecker structure.

type TCPKeepalive added in v0.6.0

type TCPKeepalive struct {
	// The total number of unacknowledged probes to send before deciding
	// the connection is dead.
	// Defaults to 9.
	Probes *uint32 `json:"probes,omitempty" yaml:"probes,omitempty"`
	// The duration, in seconds, a connection needs to be idle before keep-alive
	// probes start being sent.
	// Defaults to `7200s`.
	IdleTime *uint32 `json:"idleTime,omitempty" yaml:"idleTime,omitempty"`
	// The duration, in seconds, between keep-alive probes.
	// Defaults to `75s`.
	Interval *uint32 `json:"interval,omitempty" yaml:"interval,omitempty"`
}

TCPKeepalive define the TCP Keepalive configuration. +k8s:deepcopy-gen=true

func (*TCPKeepalive) DeepCopy added in v0.6.0

func (in *TCPKeepalive) DeepCopy() *TCPKeepalive

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

func (*TCPKeepalive) DeepCopyInto added in v0.6.0

func (in *TCPKeepalive) DeepCopyInto(out *TCPKeepalive)

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

type TCPListener

type TCPListener struct {
	CoreListenerDetails `json:",inline" yaml:",inline"`
	// TLS holds information for configuring TLS on a listener.
	TLS *TLSConfig `json:"tls,omitempty" yaml:"tls,omitempty"`
	// TCPKeepalive configuration for the listener
	TCPKeepalive *TCPKeepalive `json:"tcpKeepalive,omitempty" yaml:"tcpKeepalive,omitempty"`
	// EnableProxyProtocol enables the listener to interpret proxy protocol header
	EnableProxyProtocol bool `json:"enableProxyProtocol,omitempty" yaml:"enableProxyProtocol,omitempty"`
	// ClientTimeout sets the timeout configuration for downstream connections.
	Timeout *ClientTimeout `json:"timeout,omitempty" yaml:"clientTimeout,omitempty"`
	// Connection settings for clients
	Connection *ClientConnection `json:"connection,omitempty" yaml:"connection,omitempty"`
	// Routes associated with TCP traffic to the listener.
	Routes []*TCPRoute `json:"routes,omitempty" yaml:"routes,omitempty"`
}

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 (t TCPListener) Validate() error

Validate the fields within the TCPListener structure

type TCPRoute added in v1.1.0

type TCPRoute struct {
	// Name of the TCPRoute.
	Name string `json:"name" yaml:"name"`
	// TLS holds information for configuring TLS on a listener
	TLS *TLS `json:"tls,omitempty" yaml:"tls,omitempty"`
	// Destinations associated with TCP traffic to the service.
	Destination *RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	// TCPKeepalive settings associated with the upstream client connection.
	TCPKeepalive *TCPKeepalive `json:"tcpKeepalive,omitempty" yaml:"tcpKeepalive,omitempty"`
	// load balancer policy to use when routing to the backend endpoints.
	LoadBalancer *LoadBalancer `json:"loadBalancer,omitempty" yaml:"loadBalancer,omitempty"`
	// Request and connection timeout settings
	Timeout *Timeout `json:"timeout,omitempty" yaml:"timeout,omitempty"`
	// Retry settings
	CircuitBreaker *CircuitBreaker `json:"circuitBreaker,omitempty" yaml:"circuitBreaker,omitempty"`
	// HealthCheck defines the configuration for health checking on the upstream.
	HealthCheck *HealthCheck `json:"healthCheck,omitempty" yaml:"healthCheck,omitempty"`
	// Proxy Protocol Settings
	ProxyProtocol *ProxyProtocol `json:"proxyProtocol,omitempty" yaml:"proxyProtocol,omitempty"`
	// settings of upstream connection
	BackendConnection *BackendConnection `json:"backendConnection,omitempty" yaml:"backendConnection,omitempty"`
}

TCPRoute holds the route information associated with the TCP Route +k8s:deepcopy-gen=true

func (*TCPRoute) DeepCopy added in v1.1.0

func (in *TCPRoute) DeepCopy() *TCPRoute

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

func (*TCPRoute) DeepCopyInto added in v1.1.0

func (in *TCPRoute) DeepCopyInto(out *TCPRoute)

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

func (TCPRoute) Validate added in v1.1.0

func (t TCPRoute) Validate() error

type TCPTimeout added in v1.0.0

type TCPTimeout struct {
	// The timeout for network connection establishment, including TCP and TLS handshakes.
	ConnectTimeout *metav1.Duration `json:"connectTimeout,omitempty" yaml:"connectTimeout,omitempty"`
}

+k8s:deepcopy-gen=true

func (*TCPTimeout) DeepCopy added in v1.0.0

func (in *TCPTimeout) DeepCopy() *TCPTimeout

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

func (*TCPTimeout) DeepCopyInto added in v1.0.0

func (in *TCPTimeout) DeepCopyInto(out *TCPTimeout)

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

type TLS added in v0.5.0

type TLS struct {
	// TLS information required for TLS Passthrough, If provided, incoming
	// connections' server names are inspected and routed to backends accordingly.
	TLSInspectorConfig *TLSInspectorConfig `json:"inspector,omitempty" yaml:"inspector,omitempty"`
	// TLS information required for TLS Termination
	Terminate *TLSConfig `json:"terminate,omitempty" yaml:"terminate,omitempty"`
}

TLS holds information for configuring TLS on a listener +k8s:deepcopy-gen=true

func (*TLS) DeepCopy added in v0.5.0

func (in *TLS) DeepCopy() *TLS

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

func (*TLS) DeepCopyInto added in v0.5.0

func (in *TLS) DeepCopyInto(out *TLS)

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

type TLSCACertificate added in v1.0.0

type TLSCACertificate struct {
	// Name of the Secret object.
	Name string `json:"name,omitempty" yaml:"name,omitempty"`
	// Certificate content.
	Certificate []byte `json:"certificate,omitempty" yaml:"certificate,omitempty"`
}

TLSCACertificate holds CA Certificate to validate clients +k8s:deepcopy-gen=true

func (*TLSCACertificate) DeepCopy added in v1.0.0

func (in *TLSCACertificate) DeepCopy() *TLSCACertificate

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

func (*TLSCACertificate) DeepCopyInto added in v1.0.0

func (in *TLSCACertificate) DeepCopyInto(out *TLSCACertificate)

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

type TLSCertificate added in v1.0.0

type TLSCertificate struct {
	// Name of the Secret object.
	Name string `json:"name" yaml:"name"`
	// Certificate can be either a client or server certificate.
	Certificate []byte `json:"serverCertificate,omitempty" yaml:"serverCertificate,omitempty"`
	// PrivateKey for the server.
	PrivateKey []byte `json:"privateKey,omitempty" yaml:"privateKey,omitempty"`
}

TLSCertificate holds a single certificate's details +k8s:deepcopy-gen=true

func (*TLSCertificate) DeepCopy added in v1.0.0

func (in *TLSCertificate) DeepCopy() *TLSCertificate

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

func (*TLSCertificate) DeepCopyInto added in v1.0.0

func (in *TLSCertificate) DeepCopyInto(out *TLSCertificate)

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

func (TLSCertificate) Validate added in v1.0.0

func (t TLSCertificate) Validate() error

type TLSConfig added in v1.0.0

type TLSConfig struct {
	// Certificates contains the set of certificates associated with this listener
	Certificates []TLSCertificate `json:"certificates,omitempty" yaml:"certificates,omitempty"`
	// ClientCertificates contains the set of certificates used for mtls as client side certificates
	ClientCertificates []TLSCertificate `json:"clientCertificates,omitempty" yaml:"clientCertificates,omitempty"`
	// CACertificate to verify the client
	CACertificate *TLSCACertificate `json:"caCertificate,omitempty" yaml:"caCertificate,omitempty"`
	// RequireClientCertificate to enforce client certificate
	RequireClientCertificate bool `json:"requireClientCertificate,omitempty" yaml:"requireClientCertificate,omitempty"`
	// MinVersion defines the minimal version of the TLS protocol supported by this listener.
	MinVersion *TLSVersion `json:"minVersion,omitempty" yaml:"version,omitempty"`
	// MaxVersion defines the maximal version of the TLS protocol supported by this listener.
	MaxVersion *TLSVersion `json:"maxVersion,omitempty" yaml:"version,omitempty"`
	// CipherSuites supported by this listener
	Ciphers []string `json:"ciphers,omitempty" yaml:"ciphers,omitempty"`
	// EDCHCurves supported by this listener
	ECDHCurves []string `json:"ecdhCurves,omitempty" yaml:"ecdhCurves,omitempty"`
	// SignatureAlgorithms supported by this listener
	SignatureAlgorithms []string `json:"signatureAlgorithms,omitempty" yaml:"signatureAlgorithms,omitempty"`
	// ALPNProtocols exposed by this listener
	ALPNProtocols []string `json:"alpnProtocols,omitempty" yaml:"alpnProtocols,omitempty"`
}

TLSConfig holds the configuration for downstream TLS context. +k8s:deepcopy-gen=true

func (*TLSConfig) DeepCopy added in v1.0.0

func (in *TLSConfig) DeepCopy() *TLSConfig

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

func (*TLSConfig) DeepCopyInto added in v1.0.0

func (in *TLSConfig) DeepCopyInto(out *TLSConfig)

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

func (TLSConfig) Validate added in v1.0.0

func (t TLSConfig) Validate() error

Validate the fields within the TLSListenerConfig 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 []string `json:"snis,omitempty" yaml:"snis,omitempty"`
}

TLSInspectorConfig holds the configuration required for inspecting TLS 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 TLSUpstreamConfig added in v1.0.0

type TLSUpstreamConfig struct {
	SNI                 string            `json:"sni,omitempty" yaml:"sni,omitempty"`
	UseSystemTrustStore bool              `json:"useSystemTrustStore,omitempty" yaml:"useSystemTrustStore,omitempty"`
	CACertificate       *TLSCACertificate `json:"caCertificate,omitempty" yaml:"caCertificate,omitempty"`
	TLSConfig           `json:",inline"`
}

TLSUpstreamConfig contains sni and ca file in []byte format. +k8s:deepcopy-gen=true

func (*TLSUpstreamConfig) DeepCopy added in v1.0.0

func (in *TLSUpstreamConfig) DeepCopy() *TLSUpstreamConfig

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

func (*TLSUpstreamConfig) DeepCopyInto added in v1.0.0

func (in *TLSUpstreamConfig) DeepCopyInto(out *TLSUpstreamConfig)

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

type TLSVersion added in v1.0.0

type TLSVersion egv1a1.TLSVersion

type TextAccessLog added in v0.5.0

type TextAccessLog struct {
	CELMatches []string `json:"celMatches,omitempty" yaml:"celMatches,omitempty"`
	Format     *string  `json:"format,omitempty" yaml:"format,omitempty"`
	Path       string   `json:"path" yaml:"path"`
}

TextAccessLog holds the configuration for text access logging. +k8s:deepcopy-gen=true

func (*TextAccessLog) DeepCopy added in v0.5.0

func (in *TextAccessLog) DeepCopy() *TextAccessLog

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

func (*TextAccessLog) DeepCopyInto added in v0.5.0

func (in *TextAccessLog) DeepCopyInto(out *TextAccessLog)

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

type Timeout added in v1.0.0

type Timeout struct {
	// Timeout settings for TCP.
	TCP *TCPTimeout `json:"tcp,omitempty" yaml:"tcp,omitempty"`

	// Timeout settings for HTTP.
	HTTP *HTTPTimeout `json:"http,omitempty" yaml:"tcp,omitempty"`
}

Backend connection timeout settings +k8s:deepcopy-gen=true

func (*Timeout) DeepCopy added in v1.0.0

func (in *Timeout) DeepCopy() *Timeout

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

func (*Timeout) DeepCopyInto added in v1.0.0

func (in *Timeout) DeepCopyInto(out *Timeout)

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

type Tracing added in v0.5.0

type Tracing struct {
	ServiceName  string                      `json:"serviceName"`
	Authority    string                      `json:"authority,omitempty"`
	SamplingRate float64                     `json:"samplingRate,omitempty"`
	CustomTags   map[string]egv1a1.CustomTag `json:"customTags,omitempty"`
	Destination  RouteDestination            `json:"destination,omitempty"`
	Provider     egv1a1.TracingProvider      `json:"provider"`
}

Tracing defines the configuration for tracing a Envoy xDS Resource +k8s:deepcopy-gen=true

func (*Tracing) DeepCopy added in v0.5.0

func (in *Tracing) DeepCopy() *Tracing

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

func (*Tracing) DeepCopyInto added in v0.5.0

func (in *Tracing) DeepCopyInto(out *Tracing)

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

type TrafficFeatures added in v1.1.0

type TrafficFeatures struct {
	// RateLimit defines the more specific match conditions as well as limits for ratelimiting
	// the requests on this route.
	RateLimit *RateLimit `json:"rateLimit,omitempty" yaml:"rateLimit,omitempty"`
	// load balancer policy to use when routing to the backend endpoints.
	LoadBalancer *LoadBalancer `json:"loadBalancer,omitempty" yaml:"loadBalancer,omitempty"`
	// Proxy Protocol Settings
	ProxyProtocol *ProxyProtocol `json:"proxyProtocol,omitempty" yaml:"proxyProtocol,omitempty"`
	// HealthCheck defines the configuration for health checking on the upstream.
	HealthCheck *HealthCheck `json:"healthCheck,omitempty" yaml:"healthCheck,omitempty"`
	// FaultInjection defines the schema for injecting faults into HTTP requests.
	FaultInjection *FaultInjection `json:"faultInjection,omitempty" yaml:"faultInjection,omitempty"`
	// Circuit Breaker Settings
	CircuitBreaker *CircuitBreaker `json:"circuitBreaker,omitempty" yaml:"circuitBreaker,omitempty"`
	// Request and connection timeout settings
	Timeout *Timeout `json:"timeout,omitempty" yaml:"timeout,omitempty"`
	// TcpKeepalive settings associated with the upstream client connection.
	TCPKeepalive *TCPKeepalive `json:"tcpKeepalive,omitempty" yaml:"tcpKeepalive,omitempty"`
	// Retry settings
	Retry *Retry `json:"retry,omitempty" yaml:"retry,omitempty"`
	// settings of upstream connection
	BackendConnection *BackendConnection `json:"backendConnection,omitempty" yaml:"backendConnection,omitempty"`
}

TrafficFeatures holds the information associated with the Backend Traffic Policy. +k8s:deepcopy-gen=true

func (*TrafficFeatures) DeepCopy added in v1.1.0

func (in *TrafficFeatures) DeepCopy() *TrafficFeatures

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

func (*TrafficFeatures) DeepCopyInto added in v1.1.0

func (in *TrafficFeatures) DeepCopyInto(out *TrafficFeatures)

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

func (*TrafficFeatures) Validate added in v1.1.0

func (b *TrafficFeatures) Validate() error

type TriggerEnum added in v1.0.0

type TriggerEnum egv1a1.TriggerEnum

type UDPListener added in v0.3.0

type UDPListener struct {
	CoreListenerDetails `json:",inline" yaml:",inline"`
	// Route associated with UDP traffic to the listener.
	Route *UDPRoute `json:"route,omitempty" yaml:"route,omitempty"`
}

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 UDPRoute added in v1.1.0

type UDPRoute struct {
	// Name of the UDPRoute.
	Name string `json:"name" yaml:"name"`
	// Destination associated with UDP traffic to the service.
	Destination *RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	// load balancer policy to use when routing to the backend endpoints.
	LoadBalancer *LoadBalancer `json:"loadBalancer,omitempty" yaml:"loadBalancer,omitempty"`
	// Request and connection timeout settings
	Timeout *Timeout `json:"timeout,omitempty" yaml:"timeout,omitempty"`
	// settings of upstream connection
	BackendConnection *BackendConnection `json:"backendConnection,omitempty" yaml:"backendConnection,omitempty"`
}

UDPRoute holds the route information associated with the UDP Route. +k8s:deepcopy-gen=true

func (*UDPRoute) DeepCopy added in v1.1.0

func (in *UDPRoute) DeepCopy() *UDPRoute

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

func (*UDPRoute) DeepCopyInto added in v1.1.0

func (in *UDPRoute) DeepCopyInto(out *UDPRoute)

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

func (UDPRoute) Validate added in v1.1.0

func (u UDPRoute) Validate() error

type URLRewrite added in v0.3.0

type URLRewrite struct {
	// Path contains config for rewriting the path of the request.
	Path *HTTPPathModifier `json:"path,omitempty" yaml:"path,omitempty"`
	// Hostname configures the replacement of the request's hostname.
	Hostname *string `json:"hostname,omitempty" yaml:"hostname,omitempty"`
}

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 `json:"object,omitempty" yaml:"object,omitempty"`
}

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 Wasm added in v1.1.0

type Wasm struct {
	// Name is a unique name for an Wasm configuration.
	// The xds translator only generates one Wasm filter for each unique name.
	Name string `json:"name"`

	// RootID is a unique ID for a set of extensions in a VM which will share a
	// RootContext and Contexts if applicable (e.g., an Wasm HttpFilter and an Wasm AccessLog).
	// If left blank, all extensions with a blank root_id with the same vm_id will share Context(s).
	RootID *string `json:"rootID,omitempty"`

	// WasmName is used to identify the Wasm extension if multiple extensions are
	// handled by the same vm_id and root_id.
	// It's also used for logging/debugging.
	WasmName string `json:"wasmName"`

	// Config is the configuration for the Wasm extension.
	// This configuration will be passed as a JSON string to the Wasm extension.
	Config *apiextensionsv1.JSON `json:"config"`

	// FailOpen is a switch used to control the behavior when a fatal error occurs
	// during the initialization or the execution of the Wasm extension.
	FailOpen bool `json:"failOpen"`

	// Code is the HTTP Wasm code source.
	// Envoy only supports HTTP Wasm code source. EG downloads the Wasm code from the
	// original URL(either an HTTP URL or an OCI image) and serves it through the
	// local HTTP server.
	Code *HTTPWasmCode `json:"httpWasmCode,omitempty"`
}

Wasm holds the information associated with the Wasm extensions. +k8s:deepcopy-gen=true

func (*Wasm) DeepCopy added in v1.1.0

func (in *Wasm) DeepCopy() *Wasm

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

func (*Wasm) DeepCopyInto added in v1.1.0

func (in *Wasm) DeepCopyInto(out *Wasm)

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

type WithUnderscoresAction added in v1.1.0

type WithUnderscoresAction egv1a1.WithUnderscoresAction

type XForwardedClientCert added in v1.1.0

type XForwardedClientCert struct {
	// Envoy Proxy mode how to handle the x-forwarded-client-cert (XFCC) HTTP header.
	Mode egv1a1.XFCCForwardMode `json:"mode,omitempty" yaml:"mode,omitempty"`
	// Specifies the fields in the client certificate to be forwarded on the x-forwarded-client-cert (XFCC) HTTP header
	CertDetailsToAdd []egv1a1.XFCCCertData `json:"certDetailsToAdd,omitempty" yaml:"certDetailsToAdd,omitempty"`
}

Configure Envoy proxy how to handle the x-forwarded-client-cert (XFCC) HTTP header. +k8s:deepcopy-gen=true

func (*XForwardedClientCert) DeepCopy added in v1.1.0

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

func (*XForwardedClientCert) DeepCopyInto added in v1.1.0

func (in *XForwardedClientCert) DeepCopyInto(out *XForwardedClientCert)

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

type Xds

type Xds struct {
	// AccessLog configuration for the gateway.
	AccessLog *AccessLog `json:"accessLog,omitempty" yaml:"accessLog,omitempty"`
	// Tracing configuration for the gateway.
	Tracing *Tracing `json:"tracing,omitempty" yaml:"tracing,omitempty"`
	// Metrics configuration for the gateway.
	Metrics *Metrics `json:"metrics,omitempty" yaml:"metrics,omitempty"`
	// HTTP listeners exposed by the gateway.
	HTTP []*HTTPListener `json:"http,omitempty" yaml:"http,omitempty"`
	// TCP Listeners exposed by the gateway.
	TCP []*TCPListener `json:"tcp,omitempty" yaml:"tcp,omitempty"`
	// UDP Listeners exposed by the gateway.
	UDP []*UDPListener `json:"udp,omitempty" yaml:"udp,omitempty"`
	// EnvoyPatchPolicies is the intermediate representation of the EnvoyPatchPolicy resource
	EnvoyPatchPolicies []*EnvoyPatchPolicy `json:"envoyPatchPolicies,omitempty" yaml:"envoyPatchPolicies,omitempty"`
	// FilterOrder holds the custom order of the HTTP filters
	FilterOrder []egv1a1.FilterPosition `json:"filterOrder,omitempty" yaml:"filterOrder,omitempty"`
}

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) Equal added in v0.6.0

func (x *Xds) Equal(y *Xds) bool

Equal implements the Comparable interface used by watchable.DeepEqual to skip unnecessary updates.

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.

func (Xds) YAMLString added in v1.0.0

func (x Xds) YAMLString() string

Jump to

Keyboard shortcuts

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