Help us shape the future of Go! Take the 2026 Go Developer Survey

v1alpha1

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2023 License: Apache-2.0 Imports: 14 Imported by: 32

Documentation

Overview

Package v1alpha1 contains API schema definitions for the gateway.envoyproxy.io API group.

+kubebuilder:object:generate=true +groupName=gateway.envoyproxy.io

Index

Constants

View Source
const (
	// PolicyConditionOverridden indicates whether the policy has
	// completely attached to all the sections within the target or not.
	//
	// Possible reasons for this condition to be True are:
	//
	// * "Overridden"
	//
	PolicyConditionOverridden gwapiv1a2.PolicyConditionType = "Overridden"

	// PolicyReasonOverridden is used with the "Overridden" condition when the policy
	// has been overridden by another policy targeting a section within the same target.
	PolicyReasonOverridden gwapiv1a2.PolicyConditionReason = "Overridden"
)
View Source
const (
	// KindEnvoyGateway is the name of the EnvoyGateway kind.
	KindEnvoyGateway = "EnvoyGateway"
	// GatewayControllerName is the name of the GatewayClass controller.
	GatewayControllerName = "gateway.envoyproxy.io/gatewayclass-controller"
	// GatewayAdminPort is the port which envoy gateway admin server is listening on.
	GatewayAdminPort = 19000
	// GatewayAdminHost is the host of envoy gateway admin server.
	GatewayAdminHost = "127.0.0.1"
	// GatewayMetricsPort is the port which envoy gateway metrics server is listening on.
	GatewayMetricsPort = 19001
	// GatewayMetricsHost is the host of envoy gateway metrics server.
	GatewayMetricsHost = "0.0.0.0"
)
View Source
const (
	// KubernetesWatchModeTypeNamespaces indicates that the namespace watch mode is used.
	KubernetesWatchModeTypeNamespaces = "Namespaces"

	// KubernetesWatchModeTypeNamespaceSelectors indicates that namespaceSelectors watch
	// mode is used.
	KubernetesWatchModeTypeNamespaceSelectors = "NamespaceSelectors"
)
View Source
const (
	// PolicyConditionProgrammed indicates whether the policy has been translated
	// and ready to be programmed into the data plane.
	//
	// Possible reasons for this condition to be True are:
	//
	// * "Programmed"
	//
	// Possible reasons for this condition to be False are:
	//
	// * "Invalid"
	// * "ResourceNotFound"
	//
	PolicyConditionProgrammed gwapiv1a2.PolicyConditionType = "Programmed"

	// PolicyReasonProgrammed is used with the "Programmed" condition when the policy
	// is ready to be programmed into the data plane.
	PolicyReasonProgrammed gwapiv1a2.PolicyConditionReason = "Programmed"

	// PolicyReasonInvalid is used with the "Programmed" condition when the patch
	// is syntactically or semantically invalid.
	PolicyReasonInvalid gwapiv1a2.PolicyConditionReason = "Invalid"

	// PolicyReasonTargetNotFound is used with the "Programmed" condition when the
	// policy cannot find the resource type to patch to.
	PolicyReasonResourceNotFound gwapiv1a2.PolicyConditionReason = "ResourceNotFound"
)
View Source
const (
	// DefaultDeploymentReplicas is the default number of deployment replicas.
	DefaultDeploymentReplicas = 1
	// DefaultDeploymentCPUResourceRequests for deployment cpu resource
	DefaultDeploymentCPUResourceRequests = "100m"
	// DefaultDeploymentMemoryResourceRequests for deployment memory resource
	DefaultDeploymentMemoryResourceRequests = "512Mi"
	// DefaultEnvoyProxyImage is the default image used by envoyproxy
	DefaultEnvoyProxyImage = "envoyproxy/envoy:distroless-v1.28-latest"
	// DefaultRateLimitImage is the default image used by ratelimit.
	DefaultRateLimitImage = "envoyproxy/ratelimit:b9796237"
	// HTTPProtocol is the common-used http protocol.
	HTTPProtocol = "http"
	// GRPCProtocol is the common-used grpc protocol.
	GRPCProtocol = "grpc"
)
View Source
const (
	// KindBackendTrafficPolicy is the name of the BackendTrafficPolicy kind.
	KindBackendTrafficPolicy = "BackendTrafficPolicy"
)
View Source
const (
	// KindClientTrafficPolicy is the name of the ClientTrafficPolicy kind.
	KindClientTrafficPolicy = "ClientTrafficPolicy"
)
View Source
const (
	// KindEnvoyPatchPolicy is the name of the EnvoyPatchPolicy kind.
	KindEnvoyPatchPolicy = "EnvoyPatchPolicy"
)
View Source
const (
	// KindEnvoyProxy is the name of the EnvoyProxy kind.
	KindEnvoyProxy = "EnvoyProxy"
)
View Source
const (
	// KindSecurityPolicy is the name of the SecurityPolicy kind.
	KindSecurityPolicy = "SecurityPolicy"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "gateway.envoyproxy.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func DefaultKubernetesContainerImage added in v0.6.0

func DefaultKubernetesContainerImage(image string) *string

DefaultKubernetesContainerImage returns the default envoyproxy image.

func DefaultKubernetesDeploymentReplicas added in v0.6.0

func DefaultKubernetesDeploymentReplicas() *int32

DefaultKubernetesDeploymentReplicas returns the default replica settings.

func DefaultKubernetesDeploymentStrategy added in v0.6.0

func DefaultKubernetesDeploymentStrategy() *appv1.DeploymentStrategy

DefaultKubernetesDeploymentStrategy returns the default deployment strategy settings.

func DefaultResourceRequirements added in v0.6.0

func DefaultResourceRequirements() *corev1.ResourceRequirements

DefaultResourceRequirements returns a new ResourceRequirements with default settings.

Types

type BackendTrafficPolicy added in v0.6.0

type BackendTrafficPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec defines the desired state of BackendTrafficPolicy.
	Spec BackendTrafficPolicySpec `json:"spec"`

	// status defines the current status of BackendTrafficPolicy.
	Status BackendTrafficPolicyStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:shortName=btp +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[?(@.type=="Accepted")].reason` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`

BackendTrafficPolicy allows the user to configure the behavior of the connection between the downstream client and Envoy Proxy listener.

func (*BackendTrafficPolicy) DeepCopy added in v0.6.0

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

func (*BackendTrafficPolicy) DeepCopyInto added in v0.6.0

func (in *BackendTrafficPolicy) DeepCopyInto(out *BackendTrafficPolicy)

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

func (*BackendTrafficPolicy) DeepCopyObject added in v0.6.0

func (in *BackendTrafficPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BackendTrafficPolicyList added in v0.6.0

type BackendTrafficPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []BackendTrafficPolicy `json:"items"`
}

+kubebuilder:object:root=true BackendTrafficPolicyList contains a list of BackendTrafficPolicy resources.

func (*BackendTrafficPolicyList) DeepCopy added in v0.6.0

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

func (*BackendTrafficPolicyList) DeepCopyInto added in v0.6.0

func (in *BackendTrafficPolicyList) DeepCopyInto(out *BackendTrafficPolicyList)

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

func (*BackendTrafficPolicyList) DeepCopyObject added in v0.6.0

func (in *BackendTrafficPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BackendTrafficPolicySpec added in v0.6.0

type BackendTrafficPolicySpec struct {
	// +kubebuilder:validation:XValidation:rule="self.group == 'gateway.networking.k8s.io'", message="this policy can only have a targetRef.group of gateway.networking.k8s.io"
	// +kubebuilder:validation:XValidation:rule="self.kind in ['Gateway', 'HTTPRoute', 'GRPCRoute', 'UDPRoute', 'TCPRoute', 'TLSRoute']", message="this policy can only have a targetRef.kind of Gateway/HTTPRoute/GRPCRoute/TCPRoute/UDPRoute/TLSRoute"
	// +kubebuilder:validation:XValidation:rule="!has(self.sectionName)",message="this policy does not yet support the sectionName field"
	//
	// targetRef is the name of the resource this policy
	// is being attached to.
	// This Policy and the TargetRef MUST be in the same namespace
	// for this Policy to have effect and be applied to the Gateway.
	TargetRef gwapiv1a2.PolicyTargetReferenceWithSectionName `json:"targetRef"`

	// RateLimit allows the user to limit the number of incoming requests
	// to a predefined value based on attributes within the traffic flow.
	// +optional
	RateLimit *RateLimitSpec `json:"rateLimit,omitempty"`

	// LoadBalancer policy to apply when routing traffic from the gateway to
	// the backend endpoints
	// +optional
	LoadBalancer *LoadBalancer `json:"loadBalancer,omitempty"`
}

spec defines the desired state of BackendTrafficPolicy.

func (*BackendTrafficPolicySpec) DeepCopy added in v0.6.0

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

func (*BackendTrafficPolicySpec) DeepCopyInto added in v0.6.0

func (in *BackendTrafficPolicySpec) DeepCopyInto(out *BackendTrafficPolicySpec)

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

type BackendTrafficPolicyStatus added in v0.6.0

type BackendTrafficPolicyStatus struct {
	// Conditions describe the current conditions of the BackendTrafficPolicy.
	//
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=8
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

BackendTrafficPolicyStatus defines the state of BackendTrafficPolicy

func (*BackendTrafficPolicyStatus) DeepCopy added in v0.6.0

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

func (*BackendTrafficPolicyStatus) DeepCopyInto added in v0.6.0

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

type BootstrapType added in v0.6.0

type BootstrapType string

BootstrapType defines the types of bootstrap supported by Envoy Gateway. +kubebuilder:validation:Enum=Merge;Replace

const (
	// Merge merges the provided bootstrap with the default one. The provided bootstrap can add or override a value
	// within a map, or add a new value to a list.
	// Please note that the provided bootstrap can't override a value within a list.
	BootstrapTypeMerge BootstrapType = "Merge"

	// Replace replaces the default bootstrap with the provided one.
	BootstrapTypeReplace BootstrapType = "Replace"
)

type CORS added in v0.6.0

type CORS struct {
	// AllowOrigins defines the origins that are allowed to make requests.
	// +kubebuilder:validation:MinItems=1
	AllowOrigins []StringMatch `json:"allowOrigins,omitempty" yaml:"allowOrigins"`
	// AllowMethods defines the methods that are allowed to make requests.
	// +kubebuilder:validation:MinItems=1
	AllowMethods []string `json:"allowMethods,omitempty" yaml:"allowMethods"`
	// 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"`
}

CORS defines the configuration for Cross-Origin Resource Sharing (CORS).

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

type ClaimToHeader struct {

	// Header defines the name of the HTTP request header that the JWT Claim will be saved into.
	Header string `json:"header"`

	// Claim is the JWT Claim that should be saved into the header : it can be a nested claim of type
	// (eg. "claim.nested.key", "sub"). The nested claim name must use dot "."
	// to separate the JSON name path.
	Claim string `json:"claim"`
}

ClaimToHeader defines a configuration to convert JWT claims into HTTP headers

func (*ClaimToHeader) DeepCopy added in v0.5.0

func (in *ClaimToHeader) DeepCopy() *ClaimToHeader

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

func (*ClaimToHeader) DeepCopyInto added in v0.5.0

func (in *ClaimToHeader) DeepCopyInto(out *ClaimToHeader)

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

type ClientTrafficPolicy added in v0.6.0

type ClientTrafficPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the desired state of ClientTrafficPolicy.
	Spec ClientTrafficPolicySpec `json:"spec"`

	// Status defines the current status of ClientTrafficPolicy.
	Status ClientTrafficPolicyStatus `json:"status,omitempty"`
}

ClientTrafficPolicy allows the user to configure the behavior of the connection between the downstream client and Envoy Proxy listener.

func (*ClientTrafficPolicy) DeepCopy added in v0.6.0

func (in *ClientTrafficPolicy) DeepCopy() *ClientTrafficPolicy

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

func (*ClientTrafficPolicy) DeepCopyInto added in v0.6.0

func (in *ClientTrafficPolicy) DeepCopyInto(out *ClientTrafficPolicy)

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

func (*ClientTrafficPolicy) DeepCopyObject added in v0.6.0

func (in *ClientTrafficPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClientTrafficPolicyList added in v0.6.0

type ClientTrafficPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ClientTrafficPolicy `json:"items"`
}

ClientTrafficPolicyList contains a list of ClientTrafficPolicy resources.

func (*ClientTrafficPolicyList) DeepCopy added in v0.6.0

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

func (*ClientTrafficPolicyList) DeepCopyInto added in v0.6.0

func (in *ClientTrafficPolicyList) DeepCopyInto(out *ClientTrafficPolicyList)

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

func (*ClientTrafficPolicyList) DeepCopyObject added in v0.6.0

func (in *ClientTrafficPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClientTrafficPolicySpec added in v0.6.0

type ClientTrafficPolicySpec struct {
	// +kubebuilder:validation:XValidation:rule="self.group == 'gateway.networking.k8s.io'", message="this policy can only have a targetRef.group of gateway.networking.k8s.io"
	// +kubebuilder:validation:XValidation:rule="self.kind == 'Gateway'", message="this policy can only have a targetRef.kind of Gateway"
	// +kubebuilder:validation:XValidation:rule="!has(self.sectionName)",message="this policy does not yet support the sectionName field"
	//
	// TargetRef is the name of the Gateway resource this policy
	// is being attached to.
	// This Policy and the TargetRef MUST be in the same namespace
	// for this Policy to have effect and be applied to the Gateway.
	// TargetRef
	TargetRef gwapiv1a2.PolicyTargetReferenceWithSectionName `json:"targetRef"`
	// TcpKeepalive settings associated with the downstream client connection.
	// If defined, sets SO_KEEPALIVE on the listener socket to enable TCP Keepalives.
	// Disabled by default.
	//
	// +optional
	TCPKeepalive *TCPKeepalive `json:"tcpKeepalive,omitempty"`
}

ClientTrafficPolicySpec defines the desired state of ClientTrafficPolicy.

func (*ClientTrafficPolicySpec) DeepCopy added in v0.6.0

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

func (*ClientTrafficPolicySpec) DeepCopyInto added in v0.6.0

func (in *ClientTrafficPolicySpec) DeepCopyInto(out *ClientTrafficPolicySpec)

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

type ClientTrafficPolicyStatus added in v0.6.0

type ClientTrafficPolicyStatus struct {
	// Conditions describe the current conditions of the ClientTrafficPolicy.
	//
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=8
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ClientTrafficPolicyStatus defines the state of ClientTrafficPolicy

func (*ClientTrafficPolicyStatus) DeepCopy added in v0.6.0

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

func (*ClientTrafficPolicyStatus) DeepCopyInto added in v0.6.0

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 {
	Type ConsistentHashType `json:"type"`
}

ConsistentHash defines the configuration related to the consistent hash load balancer policy

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

type ConsistentHashType string

ConsistentHashType defines the type of input to hash on. +kubebuilder:validation:Enum=SourceIP

const (
	// SourceIPConsistentHashType hashes based on the source IP address.
	SourceIPConsistentHashType ConsistentHashType = "SourceIP"
)

type CustomTag added in v0.6.0

type CustomTag struct {
	// Type defines the type of custom tag.
	// +kubebuilder:validation:Enum=Literal;Environment;RequestHeader
	// +unionDiscriminator
	// +kubebuilder:default=Literal
	Type CustomTagType `json:"type"`
	// Literal adds hard-coded value to each span.
	// It's required when the type is "Literal".
	Literal *LiteralCustomTag `json:"literal,omitempty"`
	// Environment adds value from environment variable to each span.
	// It's required when the type is "Environment".
	Environment *EnvironmentCustomTag `json:"environment,omitempty"`
	// RequestHeader adds value from request header to each span.
	// It's required when the type is "RequestHeader".
	RequestHeader *RequestHeaderCustomTag `json:"requestHeader,omitempty"`
}

func (*CustomTag) DeepCopy added in v0.6.0

func (in *CustomTag) DeepCopy() *CustomTag

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

func (*CustomTag) DeepCopyInto added in v0.6.0

func (in *CustomTag) DeepCopyInto(out *CustomTag)

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

type CustomTagType added in v0.6.0

type CustomTagType string
const (
	// CustomTagTypeLiteral adds hard-coded value to each span.
	CustomTagTypeLiteral CustomTagType = "Literal"
	// CustomTagTypeEnvironment adds value from environment variable to each span.
	CustomTagTypeEnvironment CustomTagType = "Environment"
	// CustomTagTypeRequestHeader adds value from request header to each span.
	CustomTagTypeRequestHeader CustomTagType = "RequestHeader"
)

type EnvironmentCustomTag added in v0.6.0

type EnvironmentCustomTag struct {
	// Name defines the name of the environment variable which to extract the value from.
	Name string `json:"name"`
	// DefaultValue defines the default value to use if the environment variable is not set.
	// +optional
	DefaultValue *string `json:"defaultValue,omitempty"`
}

EnvironmentCustomTag adds value from environment variable to each span.

func (*EnvironmentCustomTag) DeepCopy added in v0.6.0

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

func (*EnvironmentCustomTag) DeepCopyInto added in v0.6.0

func (in *EnvironmentCustomTag) DeepCopyInto(out *EnvironmentCustomTag)

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

type EnvoyGateway added in v0.6.0

type EnvoyGateway struct {
	metav1.TypeMeta `json:",inline"`

	// EnvoyGatewaySpec defines the desired state of EnvoyGateway.
	EnvoyGatewaySpec `json:",inline"`
}

EnvoyGateway is the schema for the envoygateways API.

func DefaultEnvoyGateway added in v0.6.0

func DefaultEnvoyGateway() *EnvoyGateway

DefaultEnvoyGateway returns a new EnvoyGateway with default configuration parameters.

func (*EnvoyGateway) DeepCopy added in v0.6.0

func (in *EnvoyGateway) DeepCopy() *EnvoyGateway

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

func (*EnvoyGateway) DeepCopyInto added in v0.6.0

func (in *EnvoyGateway) DeepCopyInto(out *EnvoyGateway)

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

func (*EnvoyGateway) DeepCopyObject added in v0.6.0

func (in *EnvoyGateway) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*EnvoyGateway) DisablePrometheus added in v0.6.0

func (e *EnvoyGateway) DisablePrometheus() bool

DisablePrometheus returns if disable prometheus.

func (*EnvoyGateway) GetEnvoyGatewayAdmin added in v0.6.0

func (e *EnvoyGateway) GetEnvoyGatewayAdmin() *EnvoyGatewayAdmin

GetEnvoyGatewayAdmin returns the EnvoyGatewayAdmin of EnvoyGateway or a default EnvoyGatewayAdmin if unspecified.

func (*EnvoyGateway) GetEnvoyGatewayAdminAddress added in v0.6.0

func (e *EnvoyGateway) GetEnvoyGatewayAdminAddress() string

GetEnvoyGatewayAdminAddress returns the EnvoyGateway Admin Address.

func (*EnvoyGateway) GetEnvoyGatewayProvider added in v0.6.0

func (e *EnvoyGateway) GetEnvoyGatewayProvider() *EnvoyGatewayProvider

GetEnvoyGatewayProvider returns the EnvoyGatewayProvider of EnvoyGateway or a default EnvoyGatewayProvider if unspecified.

func (*EnvoyGateway) GetEnvoyGatewayTelemetry added in v0.6.0

func (e *EnvoyGateway) GetEnvoyGatewayTelemetry() *EnvoyGatewayTelemetry

GetEnvoyGatewayTelemetry returns the EnvoyGatewayTelemetry of EnvoyGateway or a default EnvoyGatewayTelemetry if unspecified.

func (*EnvoyGateway) SetEnvoyGatewayDefaults added in v0.6.0

func (e *EnvoyGateway) SetEnvoyGatewayDefaults()

SetEnvoyGatewayDefaults sets default EnvoyGateway configuration parameters.

type EnvoyGatewayAdmin added in v0.6.0

type EnvoyGatewayAdmin struct {

	// Address defines the address of Envoy Gateway Admin Server.
	//
	// +optional
	Address *EnvoyGatewayAdminAddress `json:"address,omitempty"`
	// EnableDumpConfig defines if enable dump config in Envoy Gateway logs.
	//
	// +optional
	EnableDumpConfig bool `json:"enableDumpConfig,omitempty"`
	// EnablePprof defines if enable pprof in Envoy Gateway Admin Server.
	//
	// +optional
	EnablePprof bool `json:"enablePprof,omitempty"`
}

EnvoyGatewayAdmin defines the Envoy Gateway Admin configuration.

func DefaultEnvoyGatewayAdmin added in v0.6.0

func DefaultEnvoyGatewayAdmin() *EnvoyGatewayAdmin

DefaultEnvoyGatewayAdmin returns a new EnvoyGatewayAdmin with default configuration parameters.

func (*EnvoyGatewayAdmin) DeepCopy added in v0.6.0

func (in *EnvoyGatewayAdmin) DeepCopy() *EnvoyGatewayAdmin

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

func (*EnvoyGatewayAdmin) DeepCopyInto added in v0.6.0

func (in *EnvoyGatewayAdmin) DeepCopyInto(out *EnvoyGatewayAdmin)

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

type EnvoyGatewayAdminAddress added in v0.6.0

type EnvoyGatewayAdminAddress struct {
	// Port defines the port the admin server is exposed on.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=19000
	Port int `json:"port,omitempty"`
	// Host defines the admin server hostname.
	//
	// +optional
	// +kubebuilder:default="127.0.0.1"
	Host string `json:"host,omitempty"`
}

EnvoyGatewayAdminAddress defines the Envoy Gateway Admin Address configuration.

func DefaultEnvoyGatewayAdminAddress added in v0.6.0

func DefaultEnvoyGatewayAdminAddress() *EnvoyGatewayAdminAddress

DefaultEnvoyGatewayAdminAddress returns a new EnvoyGatewayAdminAddress with default configuration parameters.

func (*EnvoyGatewayAdminAddress) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayAdminAddress) DeepCopyInto added in v0.6.0

func (in *EnvoyGatewayAdminAddress) DeepCopyInto(out *EnvoyGatewayAdminAddress)

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

type EnvoyGatewayCustomProvider added in v0.6.0

type EnvoyGatewayCustomProvider struct {
	// Resource defines the desired resource provider.
	// This provider is used to specify the provider to be used
	// to retrieve the resource configurations such as Gateway API
	// resources
	Resource EnvoyGatewayResourceProvider `json:"resource"`
	// Infrastructure defines the desired infrastructure provider.
	// This provider is used to specify the provider to be used
	// to provide an environment to deploy the out resources like
	// the Envoy Proxy data plane.
	Infrastructure EnvoyGatewayInfrastructureProvider `json:"infrastructure"`
}

EnvoyGatewayCustomProvider defines configuration for the Custom provider.

func (*EnvoyGatewayCustomProvider) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayCustomProvider) DeepCopyInto added in v0.6.0

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

type EnvoyGatewayFileResourceProvider added in v0.6.0

type EnvoyGatewayFileResourceProvider struct {
	// Paths are the paths to a directory or file containing the resource configuration.
	// Recursive sub directories are not currently supported.
	Paths []string `json:"paths"`
}

EnvoyGatewayFileResourceProvider defines configuration for the File Resource provider.

func (*EnvoyGatewayFileResourceProvider) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayFileResourceProvider) DeepCopyInto added in v0.6.0

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

type EnvoyGatewayHostInfrastructureProvider added in v0.6.0

type EnvoyGatewayHostInfrastructureProvider struct {
}

EnvoyGatewayHostInfrastructureProvider defines configuration for the Host Infrastructure provider.

func (*EnvoyGatewayHostInfrastructureProvider) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayHostInfrastructureProvider) DeepCopyInto added in v0.6.0

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

type EnvoyGatewayInfrastructureProvider added in v0.6.0

type EnvoyGatewayInfrastructureProvider struct {
	// Type is the type of infrastructure providers to use. Supported types are "Host".
	//
	// +unionDiscriminator
	Type InfrastructureProviderType `json:"type"`
	// Host defines the configuration of the Host provider. Host provides runtime
	// deployment of the data plane as a child process on the host environment.
	//
	// +optional
	Host *EnvoyGatewayHostInfrastructureProvider `json:"host,omitempty"`
}

EnvoyGatewayInfrastructureProvider defines configuration for the Custom Infrastructure provider.

func (*EnvoyGatewayInfrastructureProvider) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayInfrastructureProvider) DeepCopyInto added in v0.6.0

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

type EnvoyGatewayKubernetesProvider added in v0.6.0

type EnvoyGatewayKubernetesProvider struct {
	// RateLimitDeployment defines the desired state of the Envoy ratelimit deployment resource.
	// If unspecified, default settings for the managed Envoy ratelimit deployment resource
	// are applied.
	//
	// +optional
	RateLimitDeployment *KubernetesDeploymentSpec `json:"rateLimitDeployment,omitempty"`

	// Watch holds configuration of which input resources should be watched and reconciled.
	// +optional
	Watch *KubernetesWatchMode `json:"watch,omitempty"`
	// Deploy holds configuration of how output managed resources such as the Envoy Proxy data plane
	// should be deployed
	// +optional
	Deploy *KubernetesDeployMode `json:"deploy,omitempty"`
	// OverwriteControlPlaneCerts updates the secrets containing the control plane certs, when set.
	OverwriteControlPlaneCerts bool `json:"overwrite_control_plane_certs,omitempty"`
}

EnvoyGatewayKubernetesProvider defines configuration for the Kubernetes provider.

func DefaultEnvoyGatewayKubeProvider added in v0.6.0

func DefaultEnvoyGatewayKubeProvider() *EnvoyGatewayKubernetesProvider

DefaultEnvoyGatewayKubeProvider returns a new EnvoyGatewayKubernetesProvider with default settings.

func (*EnvoyGatewayKubernetesProvider) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayKubernetesProvider) DeepCopyInto added in v0.6.0

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

type EnvoyGatewayLogComponent added in v0.6.0

type EnvoyGatewayLogComponent string

EnvoyGatewayLogComponent defines a component that supports a configured logging level. +kubebuilder:validation:Enum=default;provider;gateway-api;xds-translator;xds-server;infrastructure;global-ratelimit

const (
	// LogComponentGatewayDefault defines the "default"-wide logging component. When specified,
	// all other logging components are ignored.
	LogComponentGatewayDefault EnvoyGatewayLogComponent = "default"

	// LogComponentProviderRunner defines the "provider" runner component.
	LogComponentProviderRunner EnvoyGatewayLogComponent = "provider"

	// LogComponentGatewayAPIRunner defines the "gateway-api" runner component.
	LogComponentGatewayAPIRunner EnvoyGatewayLogComponent = "gateway-api"

	// LogComponentXdsTranslatorRunner defines the "xds-translator" runner component.
	LogComponentXdsTranslatorRunner EnvoyGatewayLogComponent = "xds-translator"

	// LogComponentXdsServerRunner defines the "xds-server" runner component.
	LogComponentXdsServerRunner EnvoyGatewayLogComponent = "xds-server"

	// LogComponentInfrastructureRunner defines the "infrastructure" runner component.
	LogComponentInfrastructureRunner EnvoyGatewayLogComponent = "infrastructure"

	// LogComponentGlobalRateLimitRunner defines the "global-ratelimit" runner component.
	LogComponentGlobalRateLimitRunner EnvoyGatewayLogComponent = "global-ratelimit"
)

type EnvoyGatewayLogging added in v0.6.0

type EnvoyGatewayLogging struct {
	// Level is the logging level. If unspecified, defaults to "info".
	// EnvoyGatewayLogComponent options: default/provider/gateway-api/xds-translator/xds-server/infrastructure/global-ratelimit.
	// LogLevel options: debug/info/error/warn.
	//
	// +kubebuilder:default={default: info}
	Level map[EnvoyGatewayLogComponent]LogLevel `json:"level,omitempty"`
}

EnvoyGatewayLogging defines logging for Envoy Gateway.

func DefaultEnvoyGatewayLogging added in v0.6.0

func DefaultEnvoyGatewayLogging() *EnvoyGatewayLogging

DefaultEnvoyGatewayLogging returns a new EnvoyGatewayLogging with default configuration parameters.

func (*EnvoyGatewayLogging) DeepCopy added in v0.6.0

func (in *EnvoyGatewayLogging) DeepCopy() *EnvoyGatewayLogging

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

func (*EnvoyGatewayLogging) DeepCopyInto added in v0.6.0

func (in *EnvoyGatewayLogging) DeepCopyInto(out *EnvoyGatewayLogging)

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

func (*EnvoyGatewayLogging) DefaultEnvoyGatewayLoggingLevel added in v0.6.0

func (logging *EnvoyGatewayLogging) DefaultEnvoyGatewayLoggingLevel(level LogLevel) LogLevel

DefaultEnvoyGatewayLoggingLevel returns a new EnvoyGatewayLogging with default configuration parameters. When v1alpha1.LogComponentGatewayDefault specified, all other logging components are ignored.

func (*EnvoyGatewayLogging) SetEnvoyGatewayLoggingDefaults added in v0.6.0

func (logging *EnvoyGatewayLogging) SetEnvoyGatewayLoggingDefaults()

SetEnvoyGatewayLoggingDefaults sets default EnvoyGatewayLogging configuration parameters.

type EnvoyGatewayMetricSink added in v0.6.0

type EnvoyGatewayMetricSink struct {
	// Type defines the metric sink type.
	// EG control plane currently supports OpenTelemetry.
	// +kubebuilder:validation:Enum=OpenTelemetry
	// +kubebuilder:default=OpenTelemetry
	Type MetricSinkType `json:"type"`
	// OpenTelemetry defines the configuration for OpenTelemetry sink.
	// It's required if the sink type is OpenTelemetry.
	OpenTelemetry *EnvoyGatewayOpenTelemetrySink `json:"openTelemetry,omitempty"`
}

EnvoyGatewayMetricSink defines control plane metric sinks where metrics are sent to.

func (*EnvoyGatewayMetricSink) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayMetricSink) DeepCopyInto added in v0.6.0

func (in *EnvoyGatewayMetricSink) DeepCopyInto(out *EnvoyGatewayMetricSink)

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

type EnvoyGatewayMetrics added in v0.6.0

type EnvoyGatewayMetrics struct {
	// Sinks defines the metric sinks where metrics are sent to.
	Sinks []EnvoyGatewayMetricSink `json:"sinks,omitempty"`
	// Prometheus defines the configuration for prometheus endpoint.
	Prometheus *EnvoyGatewayPrometheusProvider `json:"prometheus,omitempty"`
}

EnvoyGatewayMetrics defines control plane push/pull metrics configurations.

func DefaultEnvoyGatewayMetrics added in v0.6.0

func DefaultEnvoyGatewayMetrics() *EnvoyGatewayMetrics

DefaultEnvoyGatewayMetrics returns a new EnvoyGatewayMetrics with default configuration parameters.

func (*EnvoyGatewayMetrics) DeepCopy added in v0.6.0

func (in *EnvoyGatewayMetrics) DeepCopy() *EnvoyGatewayMetrics

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

func (*EnvoyGatewayMetrics) DeepCopyInto added in v0.6.0

func (in *EnvoyGatewayMetrics) DeepCopyInto(out *EnvoyGatewayMetrics)

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

type EnvoyGatewayOpenTelemetrySink added in v0.6.0

type EnvoyGatewayOpenTelemetrySink struct {
	// Host define the sink service hostname.
	Host string `json:"host"`
	// Protocol define the sink service protocol.
	// +kubebuilder:validation:Enum=grpc;http
	Protocol string `json:"protocol"`
	// Port defines the port the sink service is exposed on.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=4317
	Port int32 `json:"port,omitempty"`
}

func (*EnvoyGatewayOpenTelemetrySink) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayOpenTelemetrySink) DeepCopyInto added in v0.6.0

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

type EnvoyGatewayPrometheusProvider added in v0.6.0

type EnvoyGatewayPrometheusProvider struct {
	// Disable defines if disables the prometheus metrics in pull mode.
	//
	Disable bool `json:"disable,omitempty"`
}

EnvoyGatewayPrometheusProvider will expose prometheus endpoint in pull mode.

func DefaultEnvoyGatewayPrometheus added in v0.6.0

func DefaultEnvoyGatewayPrometheus() *EnvoyGatewayPrometheusProvider

DefaultEnvoyGatewayPrometheus returns a new EnvoyGatewayMetrics with default configuration parameters.

func (*EnvoyGatewayPrometheusProvider) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayPrometheusProvider) DeepCopyInto added in v0.6.0

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

type EnvoyGatewayProvider added in v0.6.0

type EnvoyGatewayProvider struct {
	// Type is the type of provider to use. Supported types are "Kubernetes".
	//
	// +unionDiscriminator
	Type ProviderType `json:"type"`

	// Kubernetes defines the configuration of the Kubernetes provider. Kubernetes
	// provides runtime configuration via the Kubernetes API.
	//
	// +optional
	Kubernetes *EnvoyGatewayKubernetesProvider `json:"kubernetes,omitempty"`

	// Custom defines the configuration for the Custom provider. This provider
	// allows you to define a specific resource provider and a infrastructure
	// provider.
	//
	// +optional
	Custom *EnvoyGatewayCustomProvider `json:"custom,omitempty"`
}

EnvoyGatewayProvider defines the desired configuration of a provider. +union

func DefaultEnvoyGatewayProvider added in v0.6.0

func DefaultEnvoyGatewayProvider() *EnvoyGatewayProvider

DefaultEnvoyGatewayProvider returns a new EnvoyGatewayProvider with default configuration parameters.

func (*EnvoyGatewayProvider) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayProvider) DeepCopyInto added in v0.6.0

func (in *EnvoyGatewayProvider) DeepCopyInto(out *EnvoyGatewayProvider)

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

func (*EnvoyGatewayProvider) GetEnvoyGatewayKubeProvider added in v0.6.0

func (r *EnvoyGatewayProvider) GetEnvoyGatewayKubeProvider() *EnvoyGatewayKubernetesProvider

GetEnvoyGatewayKubeProvider returns the EnvoyGatewayKubernetesProvider of Provider or a default EnvoyGatewayKubernetesProvider if unspecified. If EnvoyGatewayProvider is not of type "Kubernetes", a nil EnvoyGatewayKubernetesProvider is returned.

type EnvoyGatewayResourceProvider added in v0.6.0

type EnvoyGatewayResourceProvider struct {
	// Type is the type of resource provider to use. Supported types are "File".
	//
	// +unionDiscriminator
	Type ResourceProviderType `json:"type"`
	// File defines the configuration of the File provider. File provides runtime
	// configuration defined by one or more files.
	//
	// +optional
	File *EnvoyGatewayFileResourceProvider `json:"file,omitempty"`
}

EnvoyGatewayResourceProvider defines configuration for the Custom Resource provider.

func (*EnvoyGatewayResourceProvider) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayResourceProvider) DeepCopyInto added in v0.6.0

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

type EnvoyGatewaySpec added in v0.6.0

type EnvoyGatewaySpec struct {
	// Gateway defines desired Gateway API specific configuration. If unset,
	// default configuration parameters will apply.
	//
	// +optional
	Gateway *Gateway `json:"gateway,omitempty"`

	// Provider defines the desired provider and provider-specific configuration.
	// If unspecified, the Kubernetes provider is used with default configuration
	// parameters.
	//
	// +optional
	Provider *EnvoyGatewayProvider `json:"provider,omitempty"`

	// Logging defines logging parameters for Envoy Gateway.
	//
	// +optional
	// +kubebuilder:default={default: info}
	Logging *EnvoyGatewayLogging `json:"logging,omitempty"`

	// Admin defines the desired admin related abilities.
	// If unspecified, the Admin is used with default configuration
	// parameters.
	//
	// +optional
	Admin *EnvoyGatewayAdmin `json:"admin,omitempty"`

	// Telemetry defines the desired control plane telemetry related abilities.
	// If unspecified, the telemetry is used with default configuration.
	//
	// +optional
	Telemetry *EnvoyGatewayTelemetry `json:"telemetry,omitempty"`

	// RateLimit defines the configuration associated with the Rate Limit service
	// deployed by Envoy Gateway required to implement the Global Rate limiting
	// functionality. The specific rate limit service used here is the reference
	// implementation in Envoy. For more details visit https://github.com/envoyproxy/ratelimit.
	// This configuration is unneeded for "Local" rate limiting.
	//
	// +optional
	RateLimit *RateLimit `json:"rateLimit,omitempty"`

	// ExtensionManager defines an extension manager to register for the Envoy Gateway Control Plane.
	//
	// +optional
	ExtensionManager *ExtensionManager `json:"extensionManager,omitempty"`

	// ExtensionAPIs defines the settings related to specific Gateway API Extensions
	// implemented by Envoy Gateway
	//
	// +optional
	ExtensionAPIs *ExtensionAPISettings `json:"extensionApis,omitempty"`
}

EnvoyGatewaySpec defines the desired state of Envoy Gateway.

func (*EnvoyGatewaySpec) DeepCopy added in v0.6.0

func (in *EnvoyGatewaySpec) DeepCopy() *EnvoyGatewaySpec

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

func (*EnvoyGatewaySpec) DeepCopyInto added in v0.6.0

func (in *EnvoyGatewaySpec) DeepCopyInto(out *EnvoyGatewaySpec)

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

type EnvoyGatewayTelemetry added in v0.6.0

type EnvoyGatewayTelemetry struct {
	// Metrics defines metrics configuration for envoy gateway.
	Metrics *EnvoyGatewayMetrics `json:"metrics,omitempty"`
}

EnvoyGatewayTelemetry defines telemetry configurations for envoy gateway control plane. Control plane will focus on metrics observability telemetry and tracing telemetry later.

func DefaultEnvoyGatewayTelemetry added in v0.6.0

func DefaultEnvoyGatewayTelemetry() *EnvoyGatewayTelemetry

DefaultEnvoyGatewayTelemetry returns a new EnvoyGatewayTelemetry with default configuration parameters.

func (*EnvoyGatewayTelemetry) DeepCopy added in v0.6.0

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

func (*EnvoyGatewayTelemetry) DeepCopyInto added in v0.6.0

func (in *EnvoyGatewayTelemetry) DeepCopyInto(out *EnvoyGatewayTelemetry)

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

type EnvoyJSONPatchConfig added in v0.5.0

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

EnvoyJSONPatchConfig defines the configuration for patching a Envoy xDS Resource using JSONPatch semantic

func (*EnvoyJSONPatchConfig) DeepCopy added in v0.5.0

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

func (*EnvoyJSONPatchConfig) DeepCopyInto added in v0.5.0

func (in *EnvoyJSONPatchConfig) DeepCopyInto(out *EnvoyJSONPatchConfig)

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 {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the desired state of EnvoyPatchPolicy.
	Spec EnvoyPatchPolicySpec `json:"spec"`

	// Status defines the current status of EnvoyPatchPolicy.
	Status EnvoyPatchPolicyStatus `json:"status,omitempty"`
}

EnvoyPatchPolicy allows the user to modify the generated Envoy xDS resources by Envoy Gateway using this patch API

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.

func (*EnvoyPatchPolicy) DeepCopyObject added in v0.5.0

func (in *EnvoyPatchPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EnvoyPatchPolicyList added in v0.5.0

type EnvoyPatchPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []EnvoyPatchPolicy `json:"items"`
}

EnvoyPatchPolicyList contains a list of EnvoyPatchPolicy resources.

func (*EnvoyPatchPolicyList) DeepCopy added in v0.5.0

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

func (*EnvoyPatchPolicyList) DeepCopyInto added in v0.5.0

func (in *EnvoyPatchPolicyList) DeepCopyInto(out *EnvoyPatchPolicyList)

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

func (*EnvoyPatchPolicyList) DeepCopyObject added in v0.5.0

func (in *EnvoyPatchPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EnvoyPatchPolicySpec added in v0.5.0

type EnvoyPatchPolicySpec struct {
	// Type decides the type of patch.
	// Valid EnvoyPatchType values are "JSONPatch".
	//
	// +unionDiscriminator
	Type EnvoyPatchType `json:"type"`
	// JSONPatch defines the JSONPatch configuration.
	//
	// +optional
	JSONPatches []EnvoyJSONPatchConfig `json:"jsonPatches,omitempty"`
	// TargetRef is the name of the Gateway API resource this policy
	// is being attached to.
	// Currently only attaching to Gateway is supported
	// This Policy and the TargetRef MUST be in the same namespace
	// for this Policy to have effect and be applied to the Gateway
	// TargetRef
	TargetRef gwapiv1a2.PolicyTargetReference `json:"targetRef"`
	// Priority of the EnvoyPatchPolicy.
	// If multiple EnvoyPatchPolicies are applied to the same
	// TargetRef, they will be applied in the ascending order of
	// the priority i.e. int32.min has the highest priority and
	// int32.max has the lowest priority.
	// Defaults to 0.
	Priority int32 `json:"priority,omitempty"`
}

EnvoyPatchPolicySpec defines the desired state of EnvoyPatchPolicy. +union

func (*EnvoyPatchPolicySpec) DeepCopy added in v0.5.0

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

func (*EnvoyPatchPolicySpec) DeepCopyInto added in v0.5.0

func (in *EnvoyPatchPolicySpec) DeepCopyInto(out *EnvoyPatchPolicySpec)

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 {
	// Conditions describe the current conditions of the EnvoyPatchPolicy.
	//
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=8
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

EnvoyPatchPolicyStatus defines the state of EnvoyPatchPolicy

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

type EnvoyPatchType string

EnvoyPatchType specifies the types of Envoy patching mechanisms. +kubebuilder:validation:Enum=JSONPatch

const (
	// JSONPatchEnvoyPatchType allows the user to patch the generated xDS resources using JSONPatch semantics.
	// For more details on the semantics, please refer to https://datatracker.ietf.org/doc/html/rfc6902
	JSONPatchEnvoyPatchType EnvoyPatchType = "JSONPatch"
)

type EnvoyProxy added in v0.6.0

type EnvoyProxy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// EnvoyProxySpec defines the desired state of EnvoyProxy.
	Spec EnvoyProxySpec `json:"spec,omitempty"`
	// EnvoyProxyStatus defines the actual state of EnvoyProxy.
	Status EnvoyProxyStatus `json:"status,omitempty"`
}

EnvoyProxy is the schema for the envoyproxies API.

func (*EnvoyProxy) DeepCopy added in v0.6.0

func (in *EnvoyProxy) DeepCopy() *EnvoyProxy

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

func (*EnvoyProxy) DeepCopyInto added in v0.6.0

func (in *EnvoyProxy) DeepCopyInto(out *EnvoyProxy)

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

func (*EnvoyProxy) DeepCopyObject added in v0.6.0

func (in *EnvoyProxy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*EnvoyProxy) GetEnvoyProxyProvider added in v0.6.0

func (e *EnvoyProxy) GetEnvoyProxyProvider() *EnvoyProxyProvider

GetEnvoyProxyProvider returns the EnvoyProxyProvider of EnvoyProxy or a default EnvoyProxyProvider if unspecified.

type EnvoyProxyKubernetesProvider added in v0.6.0

type EnvoyProxyKubernetesProvider struct {
	// EnvoyDeployment defines the desired state of the Envoy deployment resource.
	// If unspecified, default settings for the managed Envoy deployment resource
	// are applied.
	//
	// +optional
	EnvoyDeployment *KubernetesDeploymentSpec `json:"envoyDeployment,omitempty"`

	// EnvoyService defines the desired state of the Envoy service resource.
	// If unspecified, default settings for the managed Envoy service resource
	// are applied.
	//
	// +optional
	// +kubebuilder:validation:XValidation:message="allocateLoadBalancerNodePorts can only be set for LoadBalancer type",rule="!has(self.allocateLoadBalancerNodePorts) || self.type == 'LoadBalancer'"
	// +kubebuilder:validation:XValidation:message="loadBalancerIP can only be set for LoadBalancer type",rule="!has(self.loadBalancerIP) || self.type == 'LoadBalancer'"
	// +kubebuilder:validation:XValidation:message="loadBalancerIP must be a valid IPv4 address",rule="!has(self.loadBalancerIP) || self.loadBalancerIP.matches(r\"^(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4})\")"
	EnvoyService *KubernetesServiceSpec `json:"envoyService,omitempty"`
}

EnvoyProxyKubernetesProvider defines configuration for the Kubernetes resource provider.

func DefaultEnvoyProxyKubeProvider added in v0.6.0

func DefaultEnvoyProxyKubeProvider() *EnvoyProxyKubernetesProvider

DefaultEnvoyProxyKubeProvider returns a new EnvoyProxyKubernetesProvider with default settings.

func (*EnvoyProxyKubernetesProvider) DeepCopy added in v0.6.0

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

func (*EnvoyProxyKubernetesProvider) DeepCopyInto added in v0.6.0

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

type EnvoyProxyList added in v0.6.0

type EnvoyProxyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []EnvoyProxy `json:"items"`
}

EnvoyProxyList contains a list of EnvoyProxy

func (*EnvoyProxyList) DeepCopy added in v0.6.0

func (in *EnvoyProxyList) DeepCopy() *EnvoyProxyList

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

func (*EnvoyProxyList) DeepCopyInto added in v0.6.0

func (in *EnvoyProxyList) DeepCopyInto(out *EnvoyProxyList)

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

func (*EnvoyProxyList) DeepCopyObject added in v0.6.0

func (in *EnvoyProxyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EnvoyProxyProvider added in v0.6.0

type EnvoyProxyProvider struct {
	// Type is the type of resource provider to use. A resource provider provides
	// infrastructure resources for running the data plane, e.g. Envoy proxy, and
	// optional auxiliary control planes. Supported types are "Kubernetes".
	//
	// +unionDiscriminator
	Type ProviderType `json:"type"`
	// Kubernetes defines the desired state of the Kubernetes resource provider.
	// Kubernetes provides infrastructure resources for running the data plane,
	// e.g. Envoy proxy. If unspecified and type is "Kubernetes", default settings
	// for managed Kubernetes resources are applied.
	//
	// +optional
	Kubernetes *EnvoyProxyKubernetesProvider `json:"kubernetes,omitempty"`
}

EnvoyProxyProvider defines the desired state of a resource provider. +union

func DefaultEnvoyProxyProvider added in v0.6.0

func DefaultEnvoyProxyProvider() *EnvoyProxyProvider

DefaultEnvoyProxyProvider returns a new EnvoyProxyProvider with default settings.

func (*EnvoyProxyProvider) DeepCopy added in v0.6.0

func (in *EnvoyProxyProvider) DeepCopy() *EnvoyProxyProvider

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

func (*EnvoyProxyProvider) DeepCopyInto added in v0.6.0

func (in *EnvoyProxyProvider) DeepCopyInto(out *EnvoyProxyProvider)

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

func (*EnvoyProxyProvider) GetEnvoyProxyKubeProvider added in v0.6.0

func (r *EnvoyProxyProvider) GetEnvoyProxyKubeProvider() *EnvoyProxyKubernetesProvider

GetEnvoyProxyKubeProvider returns the EnvoyProxyKubernetesProvider of EnvoyProxyProvider or a default EnvoyProxyKubernetesProvider if unspecified. If EnvoyProxyProvider is not of type "Kubernetes", a nil EnvoyProxyKubernetesProvider is returned.

type EnvoyProxySpec added in v0.6.0

type EnvoyProxySpec struct {
	// Provider defines the desired resource provider and provider-specific configuration.
	// If unspecified, the "Kubernetes" resource provider is used with default configuration
	// parameters.
	//
	// +optional
	Provider *EnvoyProxyProvider `json:"provider,omitempty"`

	// Logging defines logging parameters for managed proxies.
	// +kubebuilder:default={level: {default: warn}}
	Logging ProxyLogging `json:"logging,omitempty"`

	// Telemetry defines telemetry parameters for managed proxies.
	//
	// +optional
	Telemetry *ProxyTelemetry `json:"telemetry,omitempty"`

	// Bootstrap defines the Envoy Bootstrap as a YAML string.
	// Visit https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/bootstrap/v3/bootstrap.proto#envoy-v3-api-msg-config-bootstrap-v3-bootstrap
	// to learn more about the syntax.
	// If set, this is the Bootstrap configuration used for the managed Envoy Proxy fleet instead of the default Bootstrap configuration
	// set by Envoy Gateway.
	// Some fields within the Bootstrap that are required to communicate with the xDS Server (Envoy Gateway) and receive xDS resources
	// from it are not configurable and will result in the `EnvoyProxy` resource being rejected.
	// Backward compatibility across minor versions is not guaranteed.
	// We strongly recommend using `egctl x translate` to generate a `EnvoyProxy` resource with the `Bootstrap` field set to the default
	// Bootstrap configuration used. You can edit this configuration, and rerun `egctl x translate` to ensure there are no validation errors.
	//
	// +optional
	Bootstrap *ProxyBootstrap `json:"bootstrap,omitempty"`

	// Concurrency defines the number of worker threads to run. If unset, it defaults to
	// the number of cpuset threads on the platform.
	//
	// +optional
	Concurrency *int32 `json:"concurrency,omitempty"`

	// MergeGateways defines if Gateway resources should be merged onto the same Envoy Proxy Infrastructure.
	// Setting this field to true would merge all Gateway Listeners under the parent Gateway Class.
	// This means that the port, protocol and hostname tuple must be unique for every listener.
	// If a duplicate listener is detected, the newer listener (based on timestamp) will be rejected and its status will be updated with a "Accepted=False" condition.
	//
	// +optional
	MergeGateways *bool `json:"mergeGateways,omitempty"`
}

EnvoyProxySpec defines the desired state of EnvoyProxy.

func (*EnvoyProxySpec) DeepCopy added in v0.6.0

func (in *EnvoyProxySpec) DeepCopy() *EnvoyProxySpec

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

func (*EnvoyProxySpec) DeepCopyInto added in v0.6.0

func (in *EnvoyProxySpec) DeepCopyInto(out *EnvoyProxySpec)

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

type EnvoyProxyStatus added in v0.6.0

type EnvoyProxyStatus struct {
}

EnvoyProxyStatus defines the observed state of EnvoyProxy. This type is not implemented until https://github.com/envoyproxy/gateway/issues/1007 is fixed.

func (*EnvoyProxyStatus) DeepCopy added in v0.6.0

func (in *EnvoyProxyStatus) DeepCopy() *EnvoyProxyStatus

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

func (*EnvoyProxyStatus) DeepCopyInto added in v0.6.0

func (in *EnvoyProxyStatus) DeepCopyInto(out *EnvoyProxyStatus)

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

type EnvoyResourceType added in v0.5.0

type EnvoyResourceType string

EnvoyResourceType specifies the type URL of the Envoy resource. +kubebuilder:validation:Enum=type.googleapis.com/envoy.config.listener.v3.Listener;type.googleapis.com/envoy.config.route.v3.RouteConfiguration;type.googleapis.com/envoy.config.cluster.v3.Cluster;type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment

const (
	// ListenerEnvoyResourceType defines the Type URL of the Listener resource
	ListenerEnvoyResourceType EnvoyResourceType = "type.googleapis.com/envoy.config.listener.v3.Listener"
	// RouteConfigurationEnvoyResourceType defines the Type URL of the RouteConfiguration resource
	RouteConfigurationEnvoyResourceType EnvoyResourceType = "type.googleapis.com/envoy.config.route.v3.RouteConfiguration"
	// ClusterEnvoyResourceType defines the Type URL of the Cluster resource
	ClusterEnvoyResourceType EnvoyResourceType = "type.googleapis.com/envoy.config.cluster.v3.Cluster"
	// ClusterLoadAssignmentEnvoyResourceType defines the Type URL of the ClusterLoadAssignment resource
	ClusterLoadAssignmentEnvoyResourceType EnvoyResourceType = "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment"
)

type ExtensionAPISettings added in v0.6.0

type ExtensionAPISettings struct {
	// EnableEnvoyPatchPolicy enables Envoy Gateway to
	// reconcile and implement the EnvoyPatchPolicy resources.
	EnableEnvoyPatchPolicy bool `json:"enableEnvoyPatchPolicy"`
}

ExtensionAPISettings defines the settings specific to Gateway API Extensions.

func (*ExtensionAPISettings) DeepCopy added in v0.6.0

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

func (*ExtensionAPISettings) DeepCopyInto added in v0.6.0

func (in *ExtensionAPISettings) DeepCopyInto(out *ExtensionAPISettings)

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

type ExtensionHooks added in v0.6.0

type ExtensionHooks struct {
	// XDSTranslator defines all the supported extension hooks for the xds-translator runner
	XDSTranslator *XDSTranslatorHooks `json:"xdsTranslator,omitempty"`
}

ExtensionHooks defines extension hooks across all supported runners

func (*ExtensionHooks) DeepCopy added in v0.6.0

func (in *ExtensionHooks) DeepCopy() *ExtensionHooks

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

func (*ExtensionHooks) DeepCopyInto added in v0.6.0

func (in *ExtensionHooks) DeepCopyInto(out *ExtensionHooks)

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

type ExtensionManager added in v0.6.0

type ExtensionManager struct {
	// Resources defines the set of K8s resources the extension will handle.
	//
	// +optional
	Resources []GroupVersionKind `json:"resources,omitempty"`

	// Hooks defines the set of hooks the extension supports
	//
	// +kubebuilder:validation:Required
	Hooks *ExtensionHooks `json:"hooks,omitempty"`

	// Service defines the configuration of the extension service that the Envoy
	// Gateway Control Plane will call through extension hooks.
	//
	// +kubebuilder:validation:Required
	Service *ExtensionService `json:"service,omitempty"`
}

ExtensionManager defines the configuration for registering an extension manager to the Envoy Gateway control plane.

func (*ExtensionManager) DeepCopy added in v0.6.0

func (in *ExtensionManager) DeepCopy() *ExtensionManager

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

func (*ExtensionManager) DeepCopyInto added in v0.6.0

func (in *ExtensionManager) DeepCopyInto(out *ExtensionManager)

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

type ExtensionService added in v0.6.0

type ExtensionService struct {
	// Host define the extension service hostname.
	Host string `json:"host"`

	// Port defines the port the extension service is exposed on.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=80
	Port int32 `json:"port,omitempty"`

	// TLS defines TLS configuration for communication between Envoy Gateway and
	// the extension service.
	//
	// +optional
	TLS *ExtensionTLS `json:"tls,omitempty"`
}

ExtensionService defines the configuration for connecting to a registered extension service.

func (*ExtensionService) DeepCopy added in v0.6.0

func (in *ExtensionService) DeepCopy() *ExtensionService

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

func (*ExtensionService) DeepCopyInto added in v0.6.0

func (in *ExtensionService) DeepCopyInto(out *ExtensionService)

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

type ExtensionTLS added in v0.6.0

type ExtensionTLS struct {
	// CertificateRef contains a references to objects (Kubernetes objects or otherwise) that
	// contains a TLS certificate and private keys. These certificates are used to
	// establish a TLS handshake to the extension server.
	//
	// CertificateRef can only reference a Kubernetes Secret at this time.
	//
	// +kubebuilder:validation:Required
	CertificateRef gwapiv1.SecretObjectReference `json:"certificateRef"`
}

ExtensionTLS defines the TLS configuration when connecting to an extension service

func (*ExtensionTLS) DeepCopy added in v0.6.0

func (in *ExtensionTLS) DeepCopy() *ExtensionTLS

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

func (*ExtensionTLS) DeepCopyInto added in v0.6.0

func (in *ExtensionTLS) DeepCopyInto(out *ExtensionTLS)

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

type FileEnvoyProxyAccessLog added in v0.6.0

type FileEnvoyProxyAccessLog struct {
	// Path defines the file path used to expose envoy access log(e.g. /dev/stdout).
	// +kubebuilder:validation:MinLength=1
	Path string `json:"path,omitempty"`
}

func (*FileEnvoyProxyAccessLog) DeepCopy added in v0.6.0

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

func (*FileEnvoyProxyAccessLog) DeepCopyInto added in v0.6.0

func (in *FileEnvoyProxyAccessLog) DeepCopyInto(out *FileEnvoyProxyAccessLog)

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

type Gateway added in v0.6.0

type Gateway struct {
	// ControllerName defines the name of the Gateway API controller. If unspecified,
	// defaults to "gateway.envoyproxy.io/gatewayclass-controller". See the following
	// for additional details:
	//   https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1.GatewayClass
	//
	// +optional
	ControllerName string `json:"controllerName,omitempty"`
}

Gateway defines the desired Gateway API configuration of Envoy Gateway.

func DefaultGateway added in v0.6.0

func DefaultGateway() *Gateway

DefaultGateway returns a new Gateway with default configuration parameters.

func (*Gateway) DeepCopy added in v0.6.0

func (in *Gateway) DeepCopy() *Gateway

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

func (*Gateway) DeepCopyInto added in v0.6.0

func (in *Gateway) DeepCopyInto(out *Gateway)

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

type GlobalRateLimit

type GlobalRateLimit struct {
	// Rules are a list of RateLimit selectors and limits.
	// Each rule and its associated limit is applied
	// in a mutually exclusive way i.e. if multiple
	// rules get selected, each of their associated
	// limits get applied, so a single traffic request
	// might increase the rate limit counters for multiple
	// rules if selected.
	//
	// +kubebuilder:validation:MaxItems=16
	Rules []RateLimitRule `json:"rules"`
}

GlobalRateLimit defines global rate limit configuration.

func (*GlobalRateLimit) DeepCopy

func (in *GlobalRateLimit) DeepCopy() *GlobalRateLimit

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

func (*GlobalRateLimit) DeepCopyInto

func (in *GlobalRateLimit) DeepCopyInto(out *GlobalRateLimit)

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

type GroupVersionKind added in v0.6.0

type GroupVersionKind struct {
	Group   string `json:"group"`
	Version string `json:"version"`
	Kind    string `json:"kind"`
}

GroupVersionKind unambiguously identifies a Kind. It can be converted to k8s.io/apimachinery/pkg/runtime/schema.GroupVersionKind

func (*GroupVersionKind) DeepCopy added in v0.6.0

func (in *GroupVersionKind) DeepCopy() *GroupVersionKind

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

func (*GroupVersionKind) DeepCopyInto added in v0.6.0

func (in *GroupVersionKind) DeepCopyInto(out *GroupVersionKind)

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

type HeaderMatch

type HeaderMatch struct {
	// Type specifies how to match against the value of the header.
	//
	// +optional
	// +kubebuilder:default=Exact
	Type *HeaderMatchType `json:"type,omitempty"`

	// Name of the HTTP header.
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=256
	Name string `json:"name"`

	// Value within the HTTP header. Due to the
	// case-insensitivity of header names, "foo" and "Foo" are considered equivalent.
	// Do not set this field when Type="Distinct", implying matching on any/all unique
	// values within the header.
	//
	// +optional
	// +kubebuilder:validation:MaxLength=1024
	Value *string `json:"value,omitempty"`
}

HeaderMatch defines the match attributes within the HTTP Headers of the request.

func (*HeaderMatch) DeepCopy

func (in *HeaderMatch) DeepCopy() *HeaderMatch

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

func (*HeaderMatch) DeepCopyInto

func (in *HeaderMatch) DeepCopyInto(out *HeaderMatch)

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

type HeaderMatchType

type HeaderMatchType string

HeaderMatchType specifies the semantics of how HTTP header values should be compared. Valid HeaderMatchType values are "Exact", "RegularExpression", and "Distinct".

+kubebuilder:validation:Enum=Exact;RegularExpression;Distinct

const (
	// HeaderMatchExact matches the exact value of the Value field against the value of
	// the specified HTTP Header.
	HeaderMatchExact HeaderMatchType = "Exact"
	// HeaderMatchRegularExpression matches a regular expression against the value of the
	// specified HTTP Header. The regex string must adhere to the syntax documented in
	// https://github.com/google/re2/wiki/Syntax.
	HeaderMatchRegularExpression HeaderMatchType = "RegularExpression"
	// HeaderMatchDistinct matches any and all possible unique values encountered in the
	// specified HTTP Header. Note that each unique value will receive its own rate limit
	// bucket.
	HeaderMatchDistinct HeaderMatchType = "Distinct"
)

HeaderMatchType constants.

type InfrastructureProviderType added in v0.6.0

type InfrastructureProviderType string

InfrastructureProviderType defines the types of custom infrastructure providers supported by Envoy Gateway.

+kubebuilder:validation:Enum=Host

const (
	// InfrastructureProviderTypeHost defines the "Host" provider.
	InfrastructureProviderTypeHost InfrastructureProviderType = "Host"
)

type JSONPatchOperation added in v0.5.0

type JSONPatchOperation struct {
	// Op is the type of operation to perform
	Op JSONPatchOperationType `json:"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"`
	// Value is the new value of the path location.
	Value apiextensionsv1.JSON `json:"value"`
}

JSONPatchOperation defines the JSON Patch Operation as defined in https://datatracker.ietf.org/doc/html/rfc6902

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

type JSONPatchOperationType string

JSONPatchOperationType specifies the JSON Patch operations that can be performed. +kubebuilder:validation:Enum=add;remove;replace;move;copy;test

type JWT added in v0.6.0

type JWT struct {

	// Providers defines the JSON Web Token (JWT) authentication provider type.
	//
	// When multiple JWT providers are specified, the JWT is considered valid if
	// any of the providers successfully validate the JWT. For additional details,
	// see https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/jwt_authn_filter.html.
	//
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=4
	Providers []JWTProvider `json:"providers"`
}

JWT defines the configuration for JSON Web Token (JWT) authentication.

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.

type JWTProvider added in v0.6.0

type JWTProvider struct {
	// Name defines a unique name for the JWT provider. A name can have a variety of forms,
	// including RFC1123 subdomains, RFC 1123 labels, or RFC 1035 labels.
	//
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Name string `json:"name"`

	// Issuer is the principal that issued the JWT and takes the form of a URL or email address.
	// For additional details, see https://tools.ietf.org/html/rfc7519#section-4.1.1 for
	// URL format and https://rfc-editor.org/rfc/rfc5322.html for email format. If not provided,
	// the JWT issuer is not checked.
	//
	// +kubebuilder:validation:MaxLength=253
	// +optional
	Issuer string `json:"issuer,omitempty"`

	// Audiences is a list of JWT audiences allowed access. For additional details, see
	// https://tools.ietf.org/html/rfc7519#section-4.1.3. If not provided, JWT audiences
	// are not checked.
	//
	// +kubebuilder:validation:MaxItems=8
	// +optional
	Audiences []string `json:"audiences,omitempty"`

	// RemoteJWKS defines how to fetch and cache JSON Web Key Sets (JWKS) from a remote
	// HTTP/HTTPS endpoint.
	RemoteJWKS RemoteJWKS `json:"remoteJWKS"`

	// ClaimToHeaders is a list of JWT claims that must be extracted into HTTP request headers
	// For examples, following config:
	// The claim must be of type; string, int, double, bool. Array type claims are not supported
	//
	ClaimToHeaders []ClaimToHeader `json:"claimToHeaders,omitempty"`
}

JWTProvider defines how a JSON Web Token (JWT) can be verified.

func (*JWTProvider) DeepCopy added in v0.6.0

func (in *JWTProvider) DeepCopy() *JWTProvider

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

func (*JWTProvider) DeepCopyInto added in v0.6.0

func (in *JWTProvider) DeepCopyInto(out *JWTProvider)

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

type KubernetesContainerSpec added in v0.6.0

type KubernetesContainerSpec struct {
	// List of environment variables to set in the container.
	//
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Resources required by this container.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	//
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// SecurityContext defines the security options the container should be run with.
	// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
	//
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`

	// Image specifies the EnvoyProxy container image to be used, instead of the default image.
	//
	// +optional
	Image *string `json:"image,omitempty"`

	// VolumeMounts are volumes to mount into the container's filesystem.
	// Cannot be updated.
	//
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}

KubernetesContainerSpec defines the desired state of the Kubernetes container resource.

func DefaultKubernetesContainer added in v0.6.0

func DefaultKubernetesContainer(image string) *KubernetesContainerSpec

DefaultKubernetesContainer returns a new KubernetesContainerSpec with default settings.

func (*KubernetesContainerSpec) DeepCopy added in v0.6.0

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

func (*KubernetesContainerSpec) DeepCopyInto added in v0.6.0

func (in *KubernetesContainerSpec) DeepCopyInto(out *KubernetesContainerSpec)

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

type KubernetesDeployMode added in v0.6.0

type KubernetesDeployMode struct {
}

KubernetesDeployMode holds configuration for how to deploy managed resources such as the Envoy Proxy data plane fleet.

func (*KubernetesDeployMode) DeepCopy added in v0.6.0

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

func (*KubernetesDeployMode) DeepCopyInto added in v0.6.0

func (in *KubernetesDeployMode) DeepCopyInto(out *KubernetesDeployMode)

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

type KubernetesDeploymentSpec added in v0.6.0

type KubernetesDeploymentSpec struct {
	// Replicas is the number of desired pods. Defaults to 1.
	//
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`

	// The deployment strategy to use to replace existing pods with new ones.
	// +optional
	Strategy *appv1.DeploymentStrategy `json:"strategy,omitempty"`

	// Pod defines the desired specification of pod.
	//
	// +optional
	Pod *KubernetesPodSpec `json:"pod,omitempty"`

	// Container defines the desired specification of main container.
	//
	// +optional
	Container *KubernetesContainerSpec `json:"container,omitempty"`

	// List of initialization containers belonging to the pod.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
	//
	// +optional
	InitContainers []corev1.Container `json:"initContainers,omitempty"`
}

KubernetesDeploymentSpec defines the desired state of the Kubernetes deployment resource.

func DefaultKubernetesDeployment added in v0.6.0

func DefaultKubernetesDeployment(image string) *KubernetesDeploymentSpec

DefaultKubernetesDeployment returns a new KubernetesDeploymentSpec with default settings.

func (*KubernetesDeploymentSpec) DeepCopy added in v0.6.0

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

func (*KubernetesDeploymentSpec) DeepCopyInto added in v0.6.0

func (in *KubernetesDeploymentSpec) DeepCopyInto(out *KubernetesDeploymentSpec)

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

type KubernetesPodSpec added in v0.6.0

type KubernetesPodSpec struct {
	// Annotations are the annotations that should be appended to the pods.
	// By default, no pod annotations are appended.
	//
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Labels are the additional labels that should be tagged to the pods.
	// By default, no additional pod labels are tagged.
	//
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// SecurityContext holds pod-level security attributes and common container settings.
	// Optional: Defaults to empty.  See type description for default values of each field.
	//
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`

	// If specified, the pod's scheduling constraints.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// If specified, the pod's tolerations.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Volumes that can be mounted by containers belonging to the pod.
	// More info: https://kubernetes.io/docs/concepts/storage/volumes
	//
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`
}

KubernetesPodSpec defines the desired state of the Kubernetes pod resource.

func DefaultKubernetesPod added in v0.6.0

func DefaultKubernetesPod() *KubernetesPodSpec

DefaultKubernetesPod returns a new KubernetesPodSpec with default settings.

func (*KubernetesPodSpec) DeepCopy added in v0.6.0

func (in *KubernetesPodSpec) DeepCopy() *KubernetesPodSpec

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

func (*KubernetesPodSpec) DeepCopyInto added in v0.6.0

func (in *KubernetesPodSpec) DeepCopyInto(out *KubernetesPodSpec)

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

type KubernetesServiceSpec added in v0.6.0

type KubernetesServiceSpec struct {
	// Annotations that should be appended to the service.
	// By default, no annotations are appended.
	//
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Type determines how the Service is exposed. Defaults to LoadBalancer.
	// Valid options are ClusterIP, LoadBalancer and NodePort.
	// "LoadBalancer" means a service will be exposed via an external load balancer (if the cloud provider supports it).
	// "ClusterIP" means a service will only be accessible inside the cluster, via the cluster IP.
	// "NodePort" means a service will be exposed on a static Port on all Nodes of the cluster.
	// +kubebuilder:default:="LoadBalancer"
	// +optional
	Type *ServiceType `json:"type,omitempty"`

	// LoadBalancerClass, when specified, allows for choosing the LoadBalancer provider
	// implementation if more than one are available or is otherwise expected to be specified
	// +optional
	LoadBalancerClass *string `json:"loadBalancerClass,omitempty"`

	// AllocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for
	// services with type LoadBalancer. Default is "true". It may be set to "false" if the cluster
	// load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a
	// value), those requests will be respected, regardless of this field. This field may only be set for
	// services with type LoadBalancer and will be cleared if the type is changed to any other type.
	// +optional
	AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"`

	// LoadBalancerIP defines the IP Address of the underlying load balancer service. This field
	// may be ignored if the load balancer provider does not support this feature.
	// This field has been deprecated in Kubernetes, but it is still used for setting the IP Address in some cloud
	// providers such as GCP.
	// +optional
	LoadBalancerIP *string `json:"loadBalancerIP,omitempty"`
}

KubernetesServiceSpec defines the desired state of the Kubernetes service resource.

func DefaultKubernetesService added in v0.6.0

func DefaultKubernetesService() *KubernetesServiceSpec

DefaultKubernetesService returns a new KubernetesServiceSpec with default settings.

func (*KubernetesServiceSpec) DeepCopy added in v0.6.0

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

func (*KubernetesServiceSpec) DeepCopyInto added in v0.6.0

func (in *KubernetesServiceSpec) DeepCopyInto(out *KubernetesServiceSpec)

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

type KubernetesWatchMode added in v0.6.0

type KubernetesWatchMode struct {
	// Type indicates what watch mode to use. KubernetesWatchModeTypeNamespaces and
	// KubernetesWatchModeTypeNamespaceSelectors are currently supported
	// By default, when this field is unset or empty, Envoy Gateway will watch for input namespaced resources
	// from all namespaces.
	Type KubernetesWatchModeType

	// Namespaces holds the list of namespaces that Envoy Gateway will watch for namespaced scoped
	// resources such as Gateway, HTTPRoute and Service.
	// Note that Envoy Gateway will continue to reconcile relevant cluster scoped resources such as
	// GatewayClass that it is linked to. Precisely one of Namespaces and NamespaceSelectors must be set
	Namespaces []string

	// NamespaceSelectors holds a list of labels that namespaces have to have in order to be watched.
	// Note this doesn't set the informer to watch the namespaces with the given labels. Informer still
	// watches all namespaces. But the events for objects whois namespce have no given labels
	// will be filtered out. Precisely one of Namespaces and NamespaceSelectors must be set
	NamespaceSelectors []string `json:"namespaces,omitempty"`
}

KubernetesWatchMode holds the configuration for which input resources to watch and reconcile.

func (*KubernetesWatchMode) DeepCopy added in v0.6.0

func (in *KubernetesWatchMode) DeepCopy() *KubernetesWatchMode

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

func (*KubernetesWatchMode) DeepCopyInto added in v0.6.0

func (in *KubernetesWatchMode) DeepCopyInto(out *KubernetesWatchMode)

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

type KubernetesWatchModeType added in v0.6.0

type KubernetesWatchModeType string

KubernetesWatchModeType defines the type of KubernetesWatchMode

type LiteralCustomTag added in v0.6.0

type LiteralCustomTag struct {
	// Value defines the hard-coded value to add to each span.
	Value string `json:"value"`
}

LiteralCustomTag adds hard-coded value to each span.

func (*LiteralCustomTag) DeepCopy added in v0.6.0

func (in *LiteralCustomTag) DeepCopy() *LiteralCustomTag

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

func (*LiteralCustomTag) DeepCopyInto added in v0.6.0

func (in *LiteralCustomTag) DeepCopyInto(out *LiteralCustomTag)

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 {
	// Type decides the type of Load Balancer policy.
	// Valid LoadBalancerType values are
	// "ConsistentHash",
	// "LeastRequest",
	// "Random",
	// "RoundRobin",
	//
	// +unionDiscriminator
	Type LoadBalancerType `json:"type"`
	// ConsistentHash defines the configuration when the load balancer type is
	// set to ConsistentHash
	//
	// +optional
	ConsistentHash *ConsistentHash `json:"consistentHash,omitempty"`
}

LoadBalancer defines the load balancer policy to be applied. +union

+kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? has(self.consistentHash) : !has(self.consistentHash)",message="If LoadBalancer type is consistentHash, consistentHash field needs to be set."

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.

type LoadBalancerType added in v0.6.0

type LoadBalancerType string

LoadBalancerType specifies the types of LoadBalancer. +kubebuilder:validation:Enum=ConsistentHash;LeastRequest;Random;RoundRobin

const (
	// ConsistentHashLoadBalancerType load balancer policy.
	ConsistentHashLoadBalancerType LoadBalancerType = "ConsistentHash"
	// LeastRequestLoadBalancerType load balancer policy.
	LeastRequestLoadBalancerType LoadBalancerType = "LeastRequest"
	// RandomLoadBalancerType load balancer policy.
	RandomLoadBalancerType LoadBalancerType = "Random"
	// RoundRobinLoadBalancerType load balancer policy.
	RoundRobinLoadBalancerType LoadBalancerType = "RoundRobin"
)

type LogLevel added in v0.6.0

type LogLevel string

LogLevel defines a log level for Envoy Gateway and EnvoyProxy system logs. +kubebuilder:validation:Enum=debug;info;error;warn

const (
	// LogLevelDebug defines the "debug" logging level.
	LogLevelDebug LogLevel = "debug"

	// LogLevelInfo defines the "Info" logging level.
	LogLevelInfo LogLevel = "info"

	// LogLevelWarn defines the "Warn" logging level.
	LogLevelWarn LogLevel = "warn"

	// LogLevelError defines the "Error" logging level.
	LogLevelError LogLevel = "error"
)

type Match added in v0.6.0

type Match struct {
	// MatcherType defines the stats matcher type
	//
	// +kubebuilder:validation:Enum=RegularExpression;Prefix;Suffix
	Type  MatcherType `json:"type"`
	Value string      `json:"value"`
}

Match defines the stats match configuration.

func (*Match) DeepCopy added in v0.6.0

func (in *Match) DeepCopy() *Match

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

func (*Match) DeepCopyInto added in v0.6.0

func (in *Match) DeepCopyInto(out *Match)

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

type MatchType added in v0.6.0

type MatchType string

MatchType specifies the semantics of how a string value should be compared. Valid MatchType values are "Exact", "Prefix", "Suffix", "RegularExpression".

+kubebuilder:validation:Enum=Exact;Prefix;Suffix;RegularExpression

const (
	// MatchExact :the input string must match exactly the match value.
	MatchExact MatchType = "Exact"

	// MatchPrefix :the input string must start with the match value.
	MatchPrefix MatchType = "Prefix"

	// MatchSuffix :the input string must end with the match value.
	MatchSuffix MatchType = "Suffix"

	// MatchRegularExpression :The input string must match the regular expression
	// specified in the match value.
	// The regex string must adhere to the syntax documented in
	// https://github.com/google/re2/wiki/Syntax.
	MatchRegularExpression MatchType = "RegularExpression"
)

type MatcherType added in v0.6.0

type MatcherType string
const (
	Prefix            MatcherType = "Prefix"
	RegularExpression MatcherType = "RegularExpression"
	Suffix            MatcherType = "Suffix"
)

type MetricSinkType added in v0.6.0

type MetricSinkType string
const (
	MetricSinkTypeOpenTelemetry MetricSinkType = "OpenTelemetry"
)

type OpenTelemetryEnvoyProxyAccessLog added in v0.6.0

type OpenTelemetryEnvoyProxyAccessLog struct {
	// Host define the extension service hostname.
	Host string `json:"host"`
	// Port defines the port the extension service is exposed on.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=4317
	Port int32 `json:"port,omitempty"`
	// Resources is a set of labels that describe the source of a log entry, including envoy node info.
	// It's recommended to follow [semantic conventions](https://opentelemetry.io/docs/reference/specification/resource/semantic_conventions/).
	// +optional
	Resources map[string]string `json:"resources,omitempty"`
}

TODO: consider reuse ExtensionService?

func (*OpenTelemetryEnvoyProxyAccessLog) DeepCopy added in v0.6.0

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

func (*OpenTelemetryEnvoyProxyAccessLog) DeepCopyInto added in v0.6.0

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

type ProviderType added in v0.6.0

type ProviderType string

ProviderType defines the types of providers supported by Envoy Gateway.

+kubebuilder:validation:Enum=Kubernetes

const (
	// ProviderTypeKubernetes defines the "Kubernetes" provider.
	ProviderTypeKubernetes ProviderType = "Kubernetes"

	// ProviderTypeFile defines the "File" provider. This type is not implemented
	// until https://github.com/envoyproxy/gateway/issues/1001 is fixed.
	ProviderTypeFile ProviderType = "File"
)

type ProxyAccessLog added in v0.6.0

type ProxyAccessLog struct {
	// Disable disables access logging for managed proxies if set to true.
	Disable bool `json:"disable,omitempty"`
	// Settings defines accesslog settings for managed proxies.
	// If unspecified, will send default format to stdout.
	// +optional
	Settings []ProxyAccessLogSetting `json:"settings,omitempty"`
}

func (*ProxyAccessLog) DeepCopy added in v0.6.0

func (in *ProxyAccessLog) DeepCopy() *ProxyAccessLog

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

func (*ProxyAccessLog) DeepCopyInto added in v0.6.0

func (in *ProxyAccessLog) DeepCopyInto(out *ProxyAccessLog)

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

type ProxyAccessLogFormat added in v0.6.0

type ProxyAccessLogFormat struct {
	// Type defines the type of accesslog format.
	// +kubebuilder:validation:Enum=Text;JSON
	// +unionDiscriminator
	Type ProxyAccessLogFormatType `json:"type,omitempty"`
	// Text defines the text accesslog format, following Envoy accesslog formatting,
	// It's required when the format type is "Text".
	// Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) may be used in the format.
	// The [format string documentation](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-strings) provides more information.
	// +optional
	Text *string `json:"text,omitempty"`
	// JSON is additional attributes that describe the specific event occurrence.
	// Structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators)
	// can be used as values for fields within the Struct.
	// It's required when the format type is "JSON".
	// +optional
	JSON map[string]string `json:"json,omitempty"`
}

ProxyAccessLogFormat defines the format of accesslog. By default accesslogs are written to standard output. +union

func (*ProxyAccessLogFormat) DeepCopy added in v0.6.0

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

func (*ProxyAccessLogFormat) DeepCopyInto added in v0.6.0

func (in *ProxyAccessLogFormat) DeepCopyInto(out *ProxyAccessLogFormat)

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

type ProxyAccessLogFormatType added in v0.6.0

type ProxyAccessLogFormatType string
const (
	// ProxyAccessLogFormatTypeText defines the text accesslog format.
	ProxyAccessLogFormatTypeText ProxyAccessLogFormatType = "Text"
	// ProxyAccessLogFormatTypeJSON defines the JSON accesslog format.
	ProxyAccessLogFormatTypeJSON ProxyAccessLogFormatType = "JSON"
)

type ProxyAccessLogSetting added in v0.6.0

type ProxyAccessLogSetting struct {
	// Format defines the format of accesslog.
	Format ProxyAccessLogFormat `json:"format"`
	// Sinks defines the sinks of accesslog.
	// +kubebuilder:validation:MinItems=1
	Sinks []ProxyAccessLogSink `json:"sinks"`
}

func (*ProxyAccessLogSetting) DeepCopy added in v0.6.0

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

func (*ProxyAccessLogSetting) DeepCopyInto added in v0.6.0

func (in *ProxyAccessLogSetting) DeepCopyInto(out *ProxyAccessLogSetting)

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

type ProxyAccessLogSink added in v0.6.0

type ProxyAccessLogSink struct {
	// Type defines the type of accesslog sink.
	// +kubebuilder:validation:Enum=File;OpenTelemetry
	Type ProxyAccessLogSinkType `json:"type,omitempty"`
	// File defines the file accesslog sink.
	// +optional
	File *FileEnvoyProxyAccessLog `json:"file,omitempty"`
	// OpenTelemetry defines the OpenTelemetry accesslog sink.
	// +optional
	OpenTelemetry *OpenTelemetryEnvoyProxyAccessLog `json:"openTelemetry,omitempty"`
}

func (*ProxyAccessLogSink) DeepCopy added in v0.6.0

func (in *ProxyAccessLogSink) DeepCopy() *ProxyAccessLogSink

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

func (*ProxyAccessLogSink) DeepCopyInto added in v0.6.0

func (in *ProxyAccessLogSink) DeepCopyInto(out *ProxyAccessLogSink)

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

type ProxyAccessLogSinkType added in v0.6.0

type ProxyAccessLogSinkType string
const (
	// ProxyAccessLogSinkTypeFile defines the file accesslog sink.
	ProxyAccessLogSinkTypeFile ProxyAccessLogSinkType = "File"
	// ProxyAccessLogSinkTypeOpenTelemetry defines the OpenTelemetry accesslog sink.
	// When the provider is Kubernetes, EnvoyGateway always sends `k8s.namespace.name`
	// and `k8s.pod.name` as additional attributes.
	ProxyAccessLogSinkTypeOpenTelemetry ProxyAccessLogSinkType = "OpenTelemetry"
)

type ProxyBootstrap added in v0.6.0

type ProxyBootstrap struct {
	// Type is the type of the bootstrap configuration, it should be either Replace or Merge.
	// If unspecified, it defaults to Replace.
	// +optional
	// +kubebuilder:default=Replace
	Type *BootstrapType `json:"type"`

	// Value is a YAML string of the bootstrap.
	Value string `json:"value"`
}

ProxyBootstrap defines Envoy Bootstrap configuration.

func (*ProxyBootstrap) DeepCopy added in v0.6.0

func (in *ProxyBootstrap) DeepCopy() *ProxyBootstrap

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

func (*ProxyBootstrap) DeepCopyInto added in v0.6.0

func (in *ProxyBootstrap) DeepCopyInto(out *ProxyBootstrap)

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

type ProxyLogComponent added in v0.6.0

type ProxyLogComponent string

ProxyLogComponent defines a component that supports a configured logging level. +kubebuilder:validation:Enum=system;upstream;http;connection;admin;client;filter;main;router;runtime

const (
	// LogComponentDefault defines the default logging component.
	// See more details: https://www.envoyproxy.io/docs/envoy/latest/operations/cli#cmdoption-l
	LogComponentDefault ProxyLogComponent = "default"

	// LogComponentUpstream defines the "upstream" logging component.
	LogComponentUpstream ProxyLogComponent = "upstream"

	// LogComponentHTTP defines the "http" logging component.
	LogComponentHTTP ProxyLogComponent = "http"

	// LogComponentConnection defines the "connection" logging component.
	LogComponentConnection ProxyLogComponent = "connection"

	// LogComponentAdmin defines the "admin" logging component.
	LogComponentAdmin ProxyLogComponent = "admin"

	// LogComponentClient defines the "client" logging component.
	LogComponentClient ProxyLogComponent = "client"

	// LogComponentFilter defines the "filter" logging component.
	LogComponentFilter ProxyLogComponent = "filter"

	// LogComponentMain defines the "main" logging component.
	LogComponentMain ProxyLogComponent = "main"

	// LogComponentRouter defines the "router" logging component.
	LogComponentRouter ProxyLogComponent = "router"

	// LogComponentRuntime defines the "runtime" logging component.
	LogComponentRuntime ProxyLogComponent = "runtime"
)

type ProxyLogging added in v0.6.0

type ProxyLogging struct {
	// Level is a map of logging level per component, where the component is the key
	// and the log level is the value. If unspecified, defaults to "default: warn".
	//
	// +kubebuilder:default={default: warn}
	Level map[ProxyLogComponent]LogLevel `json:"level,omitempty"`
}

ProxyLogging defines logging parameters for managed proxies.

func (*ProxyLogging) DeepCopy added in v0.6.0

func (in *ProxyLogging) DeepCopy() *ProxyLogging

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

func (*ProxyLogging) DeepCopyInto added in v0.6.0

func (in *ProxyLogging) DeepCopyInto(out *ProxyLogging)

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

func (*ProxyLogging) DefaultEnvoyProxyLoggingLevel added in v0.6.0

func (logging *ProxyLogging) DefaultEnvoyProxyLoggingLevel() LogLevel

DefaultEnvoyProxyLoggingLevel returns envoy proxy v1alpha1.LogComponentGatewayDefault log level. If unspecified, defaults to "warn". When specified, all other logging components are ignored.

func (*ProxyLogging) GetEnvoyProxyComponentLevel added in v0.6.0

func (logging *ProxyLogging) GetEnvoyProxyComponentLevel() string

GetEnvoyProxyComponentLevel returns envoy proxy component log level args. xref: https://www.envoyproxy.io/docs/envoy/latest/operations/cli#cmdoption-component-log-level

type ProxyMetricSink added in v0.6.0

type ProxyMetricSink struct {
	// Type defines the metric sink type.
	// EG currently only supports OpenTelemetry.
	// +kubebuilder:validation:Enum=OpenTelemetry
	// +kubebuilder:default=OpenTelemetry
	Type MetricSinkType `json:"type"`
	// OpenTelemetry defines the configuration for OpenTelemetry sink.
	// It's required if the sink type is OpenTelemetry.
	OpenTelemetry *ProxyOpenTelemetrySink `json:"openTelemetry,omitempty"`
}

func (*ProxyMetricSink) DeepCopy added in v0.6.0

func (in *ProxyMetricSink) DeepCopy() *ProxyMetricSink

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

func (*ProxyMetricSink) DeepCopyInto added in v0.6.0

func (in *ProxyMetricSink) DeepCopyInto(out *ProxyMetricSink)

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

type ProxyMetrics added in v0.6.0

type ProxyMetrics struct {
	// Prometheus defines the configuration for Admin endpoint `/stats/prometheus`.
	Prometheus *ProxyPrometheusProvider `json:"prometheus,omitempty"`
	// Sinks defines the metric sinks where metrics are sent to.
	Sinks []ProxyMetricSink `json:"sinks,omitempty"`
	// Matches defines configuration for selecting specific metrics instead of generating all metrics stats
	// that are enabled by default. This helps reduce CPU and memory overhead in Envoy, but eliminating some stats
	// may after critical functionality. Here are the stats that we strongly recommend not disabling:
	// `cluster_manager.warming_clusters`, `cluster.<cluster_name>.membership_total`,`cluster.<cluster_name>.membership_healthy`,
	// `cluster.<cluster_name>.membership_degraded`,reference  https://github.com/envoyproxy/envoy/issues/9856,
	// https://github.com/envoyproxy/envoy/issues/14610
	//
	Matches []Match `json:"matches,omitempty"`

	// EnableVirtualHostStats enables envoy stat metrics for virtual hosts.
	EnableVirtualHostStats bool `json:"enableVirtualHostStats,omitempty"`
}

func (*ProxyMetrics) DeepCopy added in v0.6.0

func (in *ProxyMetrics) DeepCopy() *ProxyMetrics

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

func (*ProxyMetrics) DeepCopyInto added in v0.6.0

func (in *ProxyMetrics) DeepCopyInto(out *ProxyMetrics)

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

type ProxyOpenTelemetrySink added in v0.6.0

type ProxyOpenTelemetrySink struct {
	// Host define the service hostname.
	Host string `json:"host"`
	// Port defines the port the service is exposed on.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=4317
	Port int32 `json:"port,omitempty"`
}

func (*ProxyOpenTelemetrySink) DeepCopy added in v0.6.0

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

func (*ProxyOpenTelemetrySink) DeepCopyInto added in v0.6.0

func (in *ProxyOpenTelemetrySink) DeepCopyInto(out *ProxyOpenTelemetrySink)

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

type ProxyPrometheusProvider added in v0.6.0

type ProxyPrometheusProvider struct {
	// Disable the Prometheus endpoint.
	Disable bool `json:"disable,omitempty"`
}

func (*ProxyPrometheusProvider) DeepCopy added in v0.6.0

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

func (*ProxyPrometheusProvider) DeepCopyInto added in v0.6.0

func (in *ProxyPrometheusProvider) DeepCopyInto(out *ProxyPrometheusProvider)

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

type ProxyTelemetry added in v0.6.0

type ProxyTelemetry struct {
	// AccessLogs defines accesslog parameters for managed proxies.
	// If unspecified, will send default format to stdout.
	// +optional
	AccessLog *ProxyAccessLog `json:"accessLog,omitempty"`
	// Tracing defines tracing configuration for managed proxies.
	// If unspecified, will not send tracing data.
	// +optional
	Tracing *ProxyTracing `json:"tracing,omitempty"`

	// Metrics defines metrics configuration for managed proxies.
	Metrics *ProxyMetrics `json:"metrics,omitempty"`
}

func (*ProxyTelemetry) DeepCopy added in v0.6.0

func (in *ProxyTelemetry) DeepCopy() *ProxyTelemetry

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

func (*ProxyTelemetry) DeepCopyInto added in v0.6.0

func (in *ProxyTelemetry) DeepCopyInto(out *ProxyTelemetry)

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

type ProxyTracing added in v0.6.0

type ProxyTracing struct {
	// SamplingRate controls the rate at which traffic will be
	// selected for tracing if no prior sampling decision has been made.
	// Defaults to 100, valid values [0-100]. 100 indicates 100% sampling.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=100
	// +kubebuilder:default=100
	// +optional
	SamplingRate *uint32 `json:"samplingRate,omitempty"`
	// CustomTags defines the custom tags to add to each span.
	// If provider is kubernetes, pod name and namespace are added by default.
	CustomTags map[string]CustomTag `json:"customTags,omitempty"`
	// Provider defines the tracing provider.
	// Only OpenTelemetry is supported currently.
	Provider TracingProvider `json:"provider"`
}

func (*ProxyTracing) DeepCopy added in v0.6.0

func (in *ProxyTracing) DeepCopy() *ProxyTracing

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

func (*ProxyTracing) DeepCopyInto added in v0.6.0

func (in *ProxyTracing) DeepCopyInto(out *ProxyTracing)

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

type RateLimit added in v0.6.0

type RateLimit struct {
	// Backend holds the configuration associated with the
	// database backend used by the rate limit service to store
	// state associated with global ratelimiting.
	Backend RateLimitDatabaseBackend `json:"backend"`

	// Timeout specifies the timeout period for the proxy to access the ratelimit server
	// If not set, timeout is 20ms.
	// +optional
	// +kubebuilder:validation:Format=duration
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// FailClosed is a switch used to control the flow of traffic
	// when the response from the ratelimit server cannot be obtained.
	// If FailClosed is false, let the traffic pass,
	// otherwise, don't let the traffic pass and return 500.
	// If not set, FailClosed is False.
	FailClosed bool `json:"failClosed"`
}

RateLimit defines the configuration associated with the Rate Limit Service used for Global Rate Limiting.

func (*RateLimit) DeepCopy added in v0.6.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.6.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 RateLimitDatabaseBackend added in v0.6.0

type RateLimitDatabaseBackend struct {
	// Type is the type of database backend to use. Supported types are:
	//	* Redis: Connects to a Redis database.
	//
	// +unionDiscriminator
	Type RateLimitDatabaseBackendType `json:"type"`
	// Redis defines the settings needed to connect to a Redis database.
	//
	// +optional
	Redis *RateLimitRedisSettings `json:"redis,omitempty"`
}

RateLimitDatabaseBackend defines the configuration associated with the database backend used by the rate limit service. +union

func (*RateLimitDatabaseBackend) DeepCopy added in v0.6.0

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

func (*RateLimitDatabaseBackend) DeepCopyInto added in v0.6.0

func (in *RateLimitDatabaseBackend) DeepCopyInto(out *RateLimitDatabaseBackend)

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

type RateLimitDatabaseBackendType added in v0.6.0

type RateLimitDatabaseBackendType string

RateLimitDatabaseBackendType specifies the types of database backend to be used by the rate limit service. +kubebuilder:validation:Enum=Redis

const (
	// RedisBackendType uses a redis database for the rate limit service.
	RedisBackendType RateLimitDatabaseBackendType = "Redis"
)

type RateLimitRedisSettings added in v0.6.0

type RateLimitRedisSettings struct {
	// URL of the Redis Database.
	URL string `json:"url"`

	// TLS defines TLS configuration for connecting to redis database.
	//
	// +optional
	TLS *RedisTLSSettings `json:"tls,omitempty"`
}

RateLimitRedisSettings defines the configuration for connecting to redis database.

func (*RateLimitRedisSettings) DeepCopy added in v0.6.0

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

func (*RateLimitRedisSettings) DeepCopyInto added in v0.6.0

func (in *RateLimitRedisSettings) DeepCopyInto(out *RateLimitRedisSettings)

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

type RateLimitRule

type RateLimitRule struct {
	// ClientSelectors holds the list of select conditions to select
	// specific clients using attributes from the traffic flow.
	// All individual select conditions must hold True for this rule
	// and its limit to be applied.
	// If this field is empty, it is equivalent to True, and
	// the limit is applied.
	//
	// +optional
	// +kubebuilder:validation:MaxItems=8
	ClientSelectors []RateLimitSelectCondition `json:"clientSelectors,omitempty"`
	// Limit holds the rate limit values.
	// This limit is applied for traffic flows when the selectors
	// compute to True, causing the request to be counted towards the limit.
	// The limit is enforced and the request is ratelimited, i.e. a response with
	// 429 HTTP status code is sent back to the client when
	// the selected requests have reached the limit.
	Limit RateLimitValue `json:"limit"`
}

RateLimitRule defines the semantics for matching attributes from the incoming requests, and setting limits for them.

func (*RateLimitRule) DeepCopy

func (in *RateLimitRule) DeepCopy() *RateLimitRule

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

func (*RateLimitRule) DeepCopyInto

func (in *RateLimitRule) DeepCopyInto(out *RateLimitRule)

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

type RateLimitSelectCondition

type RateLimitSelectCondition struct {
	// Headers is a list of request headers to match. Multiple header values are ANDed together,
	// meaning, a request MUST match all the specified headers.
	//
	// +listType=map
	// +listMapKey=name
	// +optional
	// +kubebuilder:validation:MaxItems=16
	Headers []HeaderMatch `json:"headers,omitempty"`

	// SourceCIDR is the client IP Address range to match on.
	//
	// +optional
	SourceCIDR *SourceMatch `json:"sourceCIDR,omitempty"`
}

RateLimitSelectCondition specifies the attributes within the traffic flow that can be used to select a subset of clients to be ratelimited. All the individual conditions must hold True for the overall condition to hold True.

func (*RateLimitSelectCondition) DeepCopy

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

func (*RateLimitSelectCondition) DeepCopyInto

func (in *RateLimitSelectCondition) DeepCopyInto(out *RateLimitSelectCondition)

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

type RateLimitSpec added in v0.6.0

type RateLimitSpec struct {
	// Type decides the scope for the RateLimits.
	// Valid RateLimitType values are "Global".
	//
	// +unionDiscriminator
	Type RateLimitType `json:"type"`
	// Global defines global rate limit configuration.
	//
	// +optional
	Global *GlobalRateLimit `json:"global,omitempty"`
}

RateLimitSpec defines the desired state of RateLimitSpec. +union

func (*RateLimitSpec) DeepCopy added in v0.6.0

func (in *RateLimitSpec) DeepCopy() *RateLimitSpec

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

func (*RateLimitSpec) DeepCopyInto added in v0.6.0

func (in *RateLimitSpec) DeepCopyInto(out *RateLimitSpec)

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

type RateLimitType

type RateLimitType string

RateLimitType specifies the types of RateLimiting. +kubebuilder:validation:Enum=Global

const (
	// GlobalRateLimitType allows the rate limits to be applied across all Envoy proxy instances.
	GlobalRateLimitType RateLimitType = "Global"
)

type RateLimitUnit

type RateLimitUnit string

RateLimitUnit specifies the intervals for setting rate limits. Valid RateLimitUnit values are "Second", "Minute", "Hour", and "Day".

+kubebuilder:validation:Enum=Second;Minute;Hour;Day

type RateLimitValue

type RateLimitValue struct {
	Requests uint          `json:"requests"`
	Unit     RateLimitUnit `json:"unit"`
}

RateLimitValue defines the limits for rate limiting.

func (*RateLimitValue) DeepCopy

func (in *RateLimitValue) DeepCopy() *RateLimitValue

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

func (*RateLimitValue) DeepCopyInto

func (in *RateLimitValue) DeepCopyInto(out *RateLimitValue)

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

type RedisTLSSettings added in v0.6.0

type RedisTLSSettings struct {
	// CertificateRef defines the client certificate reference for TLS connections.
	// Currently only a Kubernetes Secret of type TLS is supported.
	// +optional
	CertificateRef *gwapiv1.SecretObjectReference `json:"certificateRef,omitempty"`
}

RedisTLSSettings defines the TLS configuration for connecting to redis database.

func (*RedisTLSSettings) DeepCopy added in v0.6.0

func (in *RedisTLSSettings) DeepCopy() *RedisTLSSettings

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

func (*RedisTLSSettings) DeepCopyInto added in v0.6.0

func (in *RedisTLSSettings) DeepCopyInto(out *RedisTLSSettings)

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

type RemoteJWKS

type RemoteJWKS struct {
	// URI is the HTTPS URI to fetch the JWKS. Envoy's system trust bundle is used to
	// validate the server certificate.
	//
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	URI string `json:"uri"`
}

RemoteJWKS defines how to fetch and cache JSON Web Key Sets (JWKS) from a remote HTTP/HTTPS endpoint.

func (*RemoteJWKS) DeepCopy

func (in *RemoteJWKS) DeepCopy() *RemoteJWKS

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

func (*RemoteJWKS) DeepCopyInto

func (in *RemoteJWKS) DeepCopyInto(out *RemoteJWKS)

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

type RequestHeaderCustomTag added in v0.6.0

type RequestHeaderCustomTag struct {
	// Name defines the name of the request header which to extract the value from.
	Name string `json:"name"`
	// DefaultValue defines the default value to use if the request header is not set.
	// +optional
	DefaultValue *string `json:"defaultValue,omitempty"`
}

RequestHeaderCustomTag adds value from request header to each span.

func (*RequestHeaderCustomTag) DeepCopy added in v0.6.0

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

func (*RequestHeaderCustomTag) DeepCopyInto added in v0.6.0

func (in *RequestHeaderCustomTag) DeepCopyInto(out *RequestHeaderCustomTag)

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

type ResourceProviderType added in v0.6.0

type ResourceProviderType string

ResourceProviderType defines the types of custom resource providers supported by Envoy Gateway.

+kubebuilder:validation:Enum=File

const (
	// ResourceProviderTypeFile defines the "File" provider.
	ResourceProviderTypeFile ResourceProviderType = "File"
)

type SecurityPolicy added in v0.6.0

type SecurityPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the desired state of SecurityPolicy.
	Spec SecurityPolicySpec `json:"spec"`

	// Status defines the current status of SecurityPolicy.
	Status SecurityPolicyStatus `json:"status,omitempty"`
}

SecurityPolicy allows the user to configure various security settings for a Gateway.

func (*SecurityPolicy) DeepCopy added in v0.6.0

func (in *SecurityPolicy) DeepCopy() *SecurityPolicy

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

func (*SecurityPolicy) DeepCopyInto added in v0.6.0

func (in *SecurityPolicy) DeepCopyInto(out *SecurityPolicy)

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

func (*SecurityPolicy) DeepCopyObject added in v0.6.0

func (in *SecurityPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SecurityPolicyList added in v0.6.0

type SecurityPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SecurityPolicy `json:"items"`
}

SecurityPolicyList contains a list of SecurityPolicy resources.

func (*SecurityPolicyList) DeepCopy added in v0.6.0

func (in *SecurityPolicyList) DeepCopy() *SecurityPolicyList

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

func (*SecurityPolicyList) DeepCopyInto added in v0.6.0

func (in *SecurityPolicyList) DeepCopyInto(out *SecurityPolicyList)

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

func (*SecurityPolicyList) DeepCopyObject added in v0.6.0

func (in *SecurityPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SecurityPolicySpec added in v0.6.0

type SecurityPolicySpec struct {
	// +kubebuilder:validation:XValidation:rule="self.group == 'gateway.networking.k8s.io'", message="this policy can only have a targetRef.group of gateway.networking.k8s.io"
	// +kubebuilder:validation:XValidation:rule="self.kind in ['Gateway', 'HTTPRoute', 'GRPCRoute']", message="this policy can only have a targetRef.kind of Gateway/HTTPRoute/GRPCRoute"
	// +kubebuilder:validation:XValidation:rule="!has(self.sectionName)",message="this policy does not yet support the sectionName field"
	//
	// TargetRef is the name of the Gateway resource this policy
	// is being attached to.
	// This Policy and the TargetRef MUST be in the same namespace
	// for this Policy to have effect and be applied to the Gateway.
	// TargetRef
	TargetRef gwapiv1a2.PolicyTargetReferenceWithSectionName `json:"targetRef"`

	// CORS defines the configuration for Cross-Origin Resource Sharing (CORS).
	//
	// +optional
	CORS *CORS `json:"cors,omitempty"`

	// JWT defines the configuration for JSON Web Token (JWT) authentication.
	//
	// +optional
	JWT *JWT `json:"jwt,omitempty"`
}

SecurityPolicySpec defines the desired state of SecurityPolicy.

func (*SecurityPolicySpec) DeepCopy added in v0.6.0

func (in *SecurityPolicySpec) DeepCopy() *SecurityPolicySpec

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

func (*SecurityPolicySpec) DeepCopyInto added in v0.6.0

func (in *SecurityPolicySpec) DeepCopyInto(out *SecurityPolicySpec)

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

type SecurityPolicyStatus added in v0.6.0

type SecurityPolicyStatus struct {
	// Conditions describe the current conditions of the SecurityPolicy.
	//
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=8
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

SecurityPolicyStatus defines the state of SecurityPolicy

func (*SecurityPolicyStatus) DeepCopy added in v0.6.0

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

func (*SecurityPolicyStatus) DeepCopyInto added in v0.6.0

func (in *SecurityPolicyStatus) DeepCopyInto(out *SecurityPolicyStatus)

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

type ServiceType added in v0.6.0

type ServiceType string

ServiceType string describes ingress methods for a service +enum +kubebuilder:validation:Enum=ClusterIP;LoadBalancer;NodePort

const (
	// ServiceTypeClusterIP means a service will only be accessible inside the
	// cluster, via the cluster IP.
	ServiceTypeClusterIP ServiceType = "ClusterIP"

	// ServiceTypeLoadBalancer means a service will be exposed via an
	// external load balancer (if the cloud provider supports it).
	ServiceTypeLoadBalancer ServiceType = "LoadBalancer"

	// ServiceTypeNodePort means a service will be exposed on each Kubernetes Node
	// at a static Port, common across all Nodes.
	ServiceTypeNodePort ServiceType = "NodePort"
)

func DefaultKubernetesServiceType added in v0.6.0

func DefaultKubernetesServiceType() *ServiceType

DefaultKubernetesServiceType returns a new KubernetesServiceType with default settings.

func GetKubernetesServiceType added in v0.6.0

func GetKubernetesServiceType(serviceType ServiceType) *ServiceType

GetKubernetesServiceType returns the KubernetesServiceType pointer.

type SourceMatch added in v0.5.0

type SourceMatch struct {
	// +optional
	// +kubebuilder:default=Exact
	Type *SourceMatchType `json:"type,omitempty"`

	// Value is the IP CIDR that represents the range of Source IP Addresses of the client.
	// These could also be the intermediate addresses through which the request has flown through and is part of the  `X-Forwarded-For` header.
	// For example, `192.168.0.1/32`, `192.168.0.0/24`, `001:db8::/64`.
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=256
	Value string `json:"value"`
}

func (*SourceMatch) DeepCopy added in v0.5.0

func (in *SourceMatch) DeepCopy() *SourceMatch

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

func (*SourceMatch) DeepCopyInto added in v0.5.0

func (in *SourceMatch) DeepCopyInto(out *SourceMatch)

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

type SourceMatchType added in v0.5.0

type SourceMatchType string
const (
	// SourceMatchExact All IP Addresses within the specified Source IP CIDR are treated as a single client selector
	// and share the same rate limit bucket.
	SourceMatchExact SourceMatchType = "Exact"
	// SourceMatchDistinct Each IP Address within the specified Source IP CIDR is treated as a distinct client selector
	// and uses a separate rate limit bucket/counter.
	SourceMatchDistinct SourceMatchType = "Distinct"
)

type StringMatch added in v0.6.0

type StringMatch struct {
	// Type specifies how to match against a string.
	//
	// +optional
	// +kubebuilder:default=Exact
	Type *MatchType `json:"type,omitempty"`

	// Value specifies the string value that the match must have.
	//
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=1024
	Value string `json:"value"`
}

StringMatch defines how to match any strings. This is a general purpose match condition that can be used by other EG APIs that need to match against a string.

func (*StringMatch) DeepCopy added in v0.6.0

func (in *StringMatch) DeepCopy() *StringMatch

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

func (*StringMatch) DeepCopyInto added in v0.6.0

func (in *StringMatch) DeepCopyInto(out *StringMatch)

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

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.
	//
	// +optional
	Probes *uint32 `json:"probes,omitempty"`
	// The duration a connection needs to be idle before keep-alive
	// probes start being sent.
	// The duration format is
	// Defaults to `7200s`.
	//
	// +optional
	IdleTime *gwapiv1.Duration `json:"idleTime,omitempty"`
	// The duration between keep-alive probes.
	// Defaults to `75s`.
	//
	// +optional
	Interval *gwapiv1.Duration `json:"interval,omitempty"`
}

TCPKeepalive define the TCP Keepalive configuration.

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

type TracingProvider struct {
	// Type defines the tracing provider type.
	// EG currently only supports OpenTelemetry.
	// +kubebuilder:validation:Enum=OpenTelemetry
	// +kubebuilder:default=OpenTelemetry
	Type TracingProviderType `json:"type"`
	// Host define the provider service hostname.
	Host string `json:"host"`
	// Port defines the port the provider service is exposed on.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=4317
	Port int32 `json:"port,omitempty"`
}

func (*TracingProvider) DeepCopy added in v0.6.0

func (in *TracingProvider) DeepCopy() *TracingProvider

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

func (*TracingProvider) DeepCopyInto added in v0.6.0

func (in *TracingProvider) DeepCopyInto(out *TracingProvider)

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

type TracingProviderType added in v0.6.0

type TracingProviderType string
const (
	TracingProviderTypeOpenTelemetry TracingProviderType = "OpenTelemetry"
)

type XDSTranslatorHook added in v0.6.0

type XDSTranslatorHook string

XDSTranslatorHook defines the types of hooks that an Envoy Gateway extension may support for the xds-translator

+kubebuilder:validation:Enum=VirtualHost;Route;HTTPListener;Translation

const (
	XDSVirtualHost  XDSTranslatorHook = "VirtualHost"
	XDSRoute        XDSTranslatorHook = "Route"
	XDSHTTPListener XDSTranslatorHook = "HTTPListener"
	XDSTranslation  XDSTranslatorHook = "Translation"
)

type XDSTranslatorHooks added in v0.6.0

type XDSTranslatorHooks struct {
	Pre  []XDSTranslatorHook `json:"pre,omitempty"`
	Post []XDSTranslatorHook `json:"post,omitempty"`
}

XDSTranslatorHooks contains all the pre and post hooks for the xds-translator runner.

func (*XDSTranslatorHooks) DeepCopy added in v0.6.0

func (in *XDSTranslatorHooks) DeepCopy() *XDSTranslatorHooks

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

func (*XDSTranslatorHooks) DeepCopyInto added in v0.6.0

func (in *XDSTranslatorHooks) DeepCopyInto(out *XDSTranslatorHooks)

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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