v1alpha1

package
v1.3.8 Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API.

Index

Constants

View Source
const GroupName = "gateway.flomesh.io"

GroupName specifies the group name used to register the objects.

Variables

View Source
var (
	// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
	SchemeBuilder runtime.SchemeBuilder

	// Deprecated: use Install instead
	AddToScheme = localSchemeBuilder.AddToScheme
	Install     = localSchemeBuilder.AddToScheme
)
View Source
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}

GroupVersion specifies the group and the version used to register the objects.

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AccessControlConfig

type AccessControlConfig struct {
	// +optional
	// +listType=set
	// +kubebuilder:validation:MaxItems=32
	// Blacklist is the list of IP addresses to be blacklisted
	Blacklist []string `json:"blacklist,omitempty"`

	// +optional
	// +listType=set
	// +kubebuilder:validation:MaxItems=32
	// Whitelist is the list of IP addresses to be whitelisted
	Whitelist []string `json:"whitelist,omitempty"`

	// +optional
	// +kubebuilder:default=false
	// EnableXFF is the flag to enable X-Forwarded-For header
	EnableXFF *bool `json:"enableXFF,omitempty"`

	// +optional
	// +kubebuilder:default=403
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=10000
	// StatusCode is the response status code to be returned when the access control is exceeded
	StatusCode *int32 `json:"statusCode,omitempty"`

	// +optional
	// +kubebuilder:default=""
	// Message is the response message to be returned when the access control is exceeded
	Message *string `json:"message,omitempty"`
}

AccessControlConfig defines the access control configuration for a route

func (*AccessControlConfig) DeepCopy

func (in *AccessControlConfig) DeepCopy() *AccessControlConfig

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

func (*AccessControlConfig) DeepCopyInto

func (in *AccessControlConfig) DeepCopyInto(out *AccessControlConfig)

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

type AccessControlPolicy

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

	Spec   AccessControlPolicySpec   `json:"spec,omitempty"`
	Status AccessControlPolicyStatus `json:"status,omitempty"`
}

AccessControlPolicy is the Schema for the AccessControlPolicy API

func (*AccessControlPolicy) DeepCopy

func (in *AccessControlPolicy) DeepCopy() *AccessControlPolicy

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

func (*AccessControlPolicy) DeepCopyInto

func (in *AccessControlPolicy) DeepCopyInto(out *AccessControlPolicy)

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

func (*AccessControlPolicy) DeepCopyObject

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

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

type AccessControlPolicyList

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

AccessControlPolicyList contains a list of AccessControlPolicy

func (*AccessControlPolicyList) DeepCopy

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

func (*AccessControlPolicyList) DeepCopyInto

func (in *AccessControlPolicyList) DeepCopyInto(out *AccessControlPolicyList)

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

func (*AccessControlPolicyList) DeepCopyObject

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

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

type AccessControlPolicySpec

type AccessControlPolicySpec struct {
	// TargetRef is the reference to the target resource to which the policy is applied
	TargetRef gwv1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// +optional
	// +listType=map
	// +listMapKey=port
	// +kubebuilder:validation:MaxItems=16
	// Ports is the access control configuration for ports
	Ports []PortAccessControl `json:"ports,omitempty"`

	// +optional
	// +listType=map
	// +listMapKey=hostname
	// +kubebuilder:validation:MaxItems=16
	// Hostnames is the access control configuration for hostnames
	Hostnames []HostnameAccessControl `json:"hostnames,omitempty"`

	// +optional
	// +kubebuilder:validation:MaxItems=16
	// HTTPAccessControls is the access control configuration for HTTP routes
	HTTPAccessControls []HTTPAccessControl `json:"http,omitempty"`

	// +optional
	// +kubebuilder:validation:MaxItems=16
	// GRPCAccessControls is the access control configuration for GRPC routes
	GRPCAccessControls []GRPCAccessControl `json:"grpc,omitempty"`

	// +optional
	// DefaultConfig is the default access control for all ports, routes and hostnames
	DefaultConfig *AccessControlConfig `json:"config,omitempty"`
}

AccessControlPolicySpec defines the desired state of AccessControlPolicy

func (*AccessControlPolicySpec) DeepCopy

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

func (*AccessControlPolicySpec) DeepCopyInto

func (in *AccessControlPolicySpec) DeepCopyInto(out *AccessControlPolicySpec)

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

type AccessControlPolicyStatus

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

AccessControlPolicyStatus defines the observed state of AccessControlPolicy

func (*AccessControlPolicyStatus) DeepCopy

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

func (*AccessControlPolicyStatus) DeepCopyInto

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

type CircuitBreakingConfig

type CircuitBreakingConfig struct {
	// +kubebuilder:validation:Minimum=1
	// MinRequestAmount is the minimum number of requests in the StatTimeWindow
	MinRequestAmount int32 `json:"minRequestAmount"`

	// +kubebuilder:validation:Minimum=1
	// StatTimeWindow is the time window in seconds to collect statistics
	StatTimeWindow int32 `json:"statTimeWindow"`

	// +optional
	// +kubebuilder:validation:Minimum=0.0001
	// SlowTimeThreshold is the threshold in seconds to determine a slow request
	SlowTimeThreshold *float32 `json:"slowTimeThreshold,omitempty"`

	// +optional
	// +kubebuilder:validation:Minimum=1
	// SlowAmountThreshold is the threshold of slow requests in the StatTimeWindow to trigger circuit breaking
	SlowAmountThreshold *int32 `json:"slowAmountThreshold,omitempty"`

	// +optional
	// +kubebuilder:validation:Minimum=0.00
	// +kubebuilder:validation:Maximum=1.00
	// SlowRatioThreshold is the threshold of slow requests ratio in the StatTimeWindow to trigger circuit breaking
	SlowRatioThreshold *float32 `json:"slowRatioThreshold,omitempty"`

	// +optional
	// +kubebuilder:validation:Minimum=1
	// ErrorAmountThreshold is the threshold of error requests in the StatTimeWindow to trigger circuit breaking
	ErrorAmountThreshold *int32 `json:"errorAmountThreshold,omitempty"`

	// +optional
	// +kubebuilder:validation:Minimum=0.00
	// +kubebuilder:validation:Maximum=1.00
	// ErrorRatioThreshold is the threshold of error requests ratio in the StatTimeWindow to trigger circuit breaking
	ErrorRatioThreshold *float32 `json:"errorRatioThreshold,omitempty"`

	// +kubebuilder:validation:Minimum=1
	// DegradedTimeWindow is the time window in seconds to degrade the service
	DegradedTimeWindow int32 `json:"degradedTimeWindow"`

	// +kubebuilder:default=503
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=10000
	// DegradedStatusCode is the status code to return when the service is degraded
	DegradedStatusCode int32 `json:"degradedStatusCode"`

	// +optional
	// DegradedResponseContent is the response content to return when the service is degraded
	DegradedResponseContent *string `json:"degradedResponseContent,omitempty"`
}

func (*CircuitBreakingConfig) DeepCopy

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

func (*CircuitBreakingConfig) DeepCopyInto

func (in *CircuitBreakingConfig) DeepCopyInto(out *CircuitBreakingConfig)

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

type CircuitBreakingPolicy

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

	Spec   CircuitBreakingPolicySpec   `json:"spec,omitempty"`
	Status CircuitBreakingPolicyStatus `json:"status,omitempty"`
}

CircuitBreakingPolicy is the Schema for the CircuitBreakingPolicy API

func (*CircuitBreakingPolicy) DeepCopy

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

func (*CircuitBreakingPolicy) DeepCopyInto

func (in *CircuitBreakingPolicy) DeepCopyInto(out *CircuitBreakingPolicy)

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

func (*CircuitBreakingPolicy) DeepCopyObject

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

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

type CircuitBreakingPolicyList

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

CircuitBreakingPolicyList contains a list of CircuitBreakingPolicy

func (*CircuitBreakingPolicyList) DeepCopy

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

func (*CircuitBreakingPolicyList) DeepCopyInto

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

func (*CircuitBreakingPolicyList) DeepCopyObject

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

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

type CircuitBreakingPolicySpec

type CircuitBreakingPolicySpec struct {
	// TargetRef is the reference to the target resource to which the policy is applied
	TargetRef gwv1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// +listType=map
	// +listMapKey=port
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	// Ports is the circuit breaking configuration for ports
	Ports []PortCircuitBreaking `json:"ports,omitempty"`

	// +optional
	// DefaultConfig is the default circuit breaking configuration for all ports
	DefaultConfig *CircuitBreakingConfig `json:"config,omitempty"`
}

CircuitBreakingPolicySpec defines the desired state of CircuitBreakingPolicy

func (*CircuitBreakingPolicySpec) DeepCopy

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

func (*CircuitBreakingPolicySpec) DeepCopyInto

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

type CircuitBreakingPolicyStatus

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

CircuitBreakingPolicyStatus defines the observed state of CircuitBreakingPolicy

func (*CircuitBreakingPolicyStatus) DeepCopy

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

func (*CircuitBreakingPolicyStatus) DeepCopyInto

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

type FaultInjectionAbort

type FaultInjectionAbort struct {
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=100
	// Percent is the percentage of requests to abort
	Percent int32 `json:"percent,omitempty"`

	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=10000
	// StatusCode is the HTTP status code to return for the aborted request
	StatusCode *int32 `json:"statusCode,omitempty"`

	// +optional
	// Message is the HTTP status message to return for the aborted request
	Message *string `json:"message,omitempty"`
}

FaultInjectionAbort defines the abort configuration

func (*FaultInjectionAbort) DeepCopy

func (in *FaultInjectionAbort) DeepCopy() *FaultInjectionAbort

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

func (*FaultInjectionAbort) DeepCopyInto

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

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

type FaultInjectionConfig

type FaultInjectionConfig struct {
	// +optional
	// Delay defines the delay configuration
	Delay *FaultInjectionDelay `json:"delay,omitempty"`

	// +optional
	// Abort defines the abort configuration
	Abort *FaultInjectionAbort `json:"abort,omitempty"`
}

FaultInjectionConfig defines the access control configuration for a route

func (*FaultInjectionConfig) DeepCopy

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

func (*FaultInjectionConfig) DeepCopyInto

func (in *FaultInjectionConfig) DeepCopyInto(out *FaultInjectionConfig)

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

type FaultInjectionDelay

type FaultInjectionDelay struct {
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=100
	// Percent is the percentage of requests to delay
	Percent int32 `json:"percent,omitempty"`

	// +optional
	// +kubebuilder:validation:Minimum=0
	// Fixed is the fixed delay duration, default Unit is ms
	Fixed *int64 `json:"fixed,omitempty"`

	// +optional
	// Range is the range of delay duration
	Range *FaultInjectionRange `json:"range,omitempty"`

	// +optional
	// +kubebuilder:validation:Enum=ms;s;m;h;d
	// +kubebuilder:default=ms
	// Unit is the unit of delay duration, default Unit is ms
	Unit *string `json:"unit,omitempty"`
}

FaultInjectionDelay defines the delay configuration

func (*FaultInjectionDelay) DeepCopy

func (in *FaultInjectionDelay) DeepCopy() *FaultInjectionDelay

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

func (*FaultInjectionDelay) DeepCopyInto

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

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

type FaultInjectionPolicy

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

	Spec   FaultInjectionPolicySpec   `json:"spec,omitempty"`
	Status FaultInjectionPolicyStatus `json:"status,omitempty"`
}

FaultInjectionPolicy is the Schema for the FaultInjectionPolicy API

func (*FaultInjectionPolicy) DeepCopy

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

func (*FaultInjectionPolicy) DeepCopyInto

func (in *FaultInjectionPolicy) DeepCopyInto(out *FaultInjectionPolicy)

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

func (*FaultInjectionPolicy) DeepCopyObject

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

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

type FaultInjectionPolicyList

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

FaultInjectionPolicyList contains a list of FaultInjectionPolicy

func (*FaultInjectionPolicyList) DeepCopy

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

func (*FaultInjectionPolicyList) DeepCopyInto

func (in *FaultInjectionPolicyList) DeepCopyInto(out *FaultInjectionPolicyList)

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

func (*FaultInjectionPolicyList) DeepCopyObject

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

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

type FaultInjectionPolicySpec

type FaultInjectionPolicySpec struct {
	// TargetRef is the reference to the target resource to which the policy is applied
	TargetRef gwv1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// +optional
	// +listType=map
	// +listMapKey=hostname
	// +kubebuilder:validation:MaxItems=16
	// Hostnames is the access control configuration for hostnames
	Hostnames []HostnameFaultInjection `json:"hostnames,omitempty"`

	// +optional
	// +kubebuilder:validation:MaxItems=16
	// HTTPFaultInjections is the access control configuration for HTTP routes
	HTTPFaultInjections []HTTPFaultInjection `json:"http,omitempty"`

	// +optional
	// +kubebuilder:validation:MaxItems=16
	// GRPCFaultInjections is the access control configuration for GRPC routes
	GRPCFaultInjections []GRPCFaultInjection `json:"grpc,omitempty"`

	// +optional
	// DefaultConfig is the default access control for all ports, routes and hostnames
	DefaultConfig *FaultInjectionConfig `json:"config,omitempty"`

	// +optional
	// +kubebuilder:validation:Enum=ms;s;m;h;d
	// +kubebuilder:default=ms
	// Unit is the unit of delay duration, default Unit is ms
	Unit *string `json:"unit,omitempty"`
}

FaultInjectionPolicySpec defines the desired state of FaultInjectionPolicy

func (*FaultInjectionPolicySpec) DeepCopy

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

func (*FaultInjectionPolicySpec) DeepCopyInto

func (in *FaultInjectionPolicySpec) DeepCopyInto(out *FaultInjectionPolicySpec)

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

type FaultInjectionPolicyStatus

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

FaultInjectionPolicyStatus defines the observed state of FaultInjectionPolicy

func (*FaultInjectionPolicyStatus) DeepCopy

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

func (*FaultInjectionPolicyStatus) DeepCopyInto

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

type FaultInjectionRange

type FaultInjectionRange struct {
	// +kubebuilder:validation:Minimum=0
	// Min is the minimum value of the range, default Unit is ms
	Min int64 `json:"min"`

	// +kubebuilder:validation:Minimum=1
	// Max is the maximum value of the range, default Unit is ms
	Max int64 `json:"max"`
}

func (*FaultInjectionRange) DeepCopy

func (in *FaultInjectionRange) DeepCopy() *FaultInjectionRange

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

func (*FaultInjectionRange) DeepCopyInto

func (in *FaultInjectionRange) DeepCopyInto(out *FaultInjectionRange)

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

type GRPCAccessControl

type GRPCAccessControl struct {
	// Match is the match condition for the GRPC route
	Match gwv1.GRPCRouteMatch `json:"match"`

	// +optional
	// Config is the access control configuration for the GRPC route
	Config *AccessControlConfig `json:"config,omitempty"`
}

GRPCAccessControl defines the access control configuration for a GRPC route

func (*GRPCAccessControl) DeepCopy

func (in *GRPCAccessControl) DeepCopy() *GRPCAccessControl

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

func (*GRPCAccessControl) DeepCopyInto

func (in *GRPCAccessControl) DeepCopyInto(out *GRPCAccessControl)

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

type GRPCFaultInjection

type GRPCFaultInjection struct {
	// Match is the match condition for the GRPC route
	Match gwv1.GRPCRouteMatch `json:"match"`

	// +optional
	// Config is the access control configuration for the GRPC route
	Config *FaultInjectionConfig `json:"config,omitempty"`
}

GRPCFaultInjection defines the access control configuration for a GRPC route

func (*GRPCFaultInjection) DeepCopy

func (in *GRPCFaultInjection) DeepCopy() *GRPCFaultInjection

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

func (*GRPCFaultInjection) DeepCopyInto

func (in *GRPCFaultInjection) DeepCopyInto(out *GRPCFaultInjection)

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

type GRPCRateLimit

type GRPCRateLimit struct {
	// Match is the match condition for the GRPC route
	Match gwv1.GRPCRouteMatch `json:"match"`

	// +optional
	// Config is the rate limit configuration for the GRPC route
	Config *L7RateLimit `json:"config,omitempty"`
}

GRPCRateLimit defines the rate limit configuration for a GRPC route

func (*GRPCRateLimit) DeepCopy

func (in *GRPCRateLimit) DeepCopy() *GRPCRateLimit

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

func (*GRPCRateLimit) DeepCopyInto

func (in *GRPCRateLimit) DeepCopyInto(out *GRPCRateLimit)

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

type HTTPAccessControl

type HTTPAccessControl struct {
	// Match is the match condition for the HTTP route
	Match gwv1.HTTPRouteMatch `json:"match"`

	// +optional
	// Config is the access control configuration for the HTTP route
	Config *AccessControlConfig `json:"config,omitempty"`
}

HTTPAccessControl defines the access control configuration for a HTTP route

func (*HTTPAccessControl) DeepCopy

func (in *HTTPAccessControl) DeepCopy() *HTTPAccessControl

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

func (*HTTPAccessControl) DeepCopyInto

func (in *HTTPAccessControl) DeepCopyInto(out *HTTPAccessControl)

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

type HTTPFaultInjection

type HTTPFaultInjection struct {
	// Match is the match condition for the HTTP route
	Match gwv1.HTTPRouteMatch `json:"match"`

	// +optional
	// Config is the access control configuration for the HTTP route
	Config *FaultInjectionConfig `json:"config,omitempty"`
}

HTTPFaultInjection defines the access control configuration for a HTTP route

func (*HTTPFaultInjection) DeepCopy

func (in *HTTPFaultInjection) DeepCopy() *HTTPFaultInjection

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

func (*HTTPFaultInjection) DeepCopyInto

func (in *HTTPFaultInjection) DeepCopyInto(out *HTTPFaultInjection)

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

type HTTPRateLimit

type HTTPRateLimit struct {
	// Match is the match condition for the HTTP route
	Match gwv1.HTTPRouteMatch `json:"match"`

	// +optional
	// Config is the rate limit configuration for the HTTP route
	Config *L7RateLimit `json:"config,omitempty"`
}

HTTPRateLimit defines the rate limit configuration for a HTTP route

func (*HTTPRateLimit) DeepCopy

func (in *HTTPRateLimit) DeepCopy() *HTTPRateLimit

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

func (*HTTPRateLimit) DeepCopyInto

func (in *HTTPRateLimit) DeepCopyInto(out *HTTPRateLimit)

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

type HealthCheckConfig

type HealthCheckConfig struct {
	// +kubebuilder:validation:Minimum=1
	// Interval is the interval in seconds to check the health of the service
	Interval int32 `json:"interval"`

	// +kubebuilder:validation:Minimum=0
	// MaxFails is the maximum number of consecutive failed health checks before considering the service as unhealthy
	MaxFails int32 `json:"maxFails"`

	// +optional
	// +kubebuilder:validation:Minimum=0
	// FailTimeout is the time in seconds before considering the service as healthy if it's marked as unhealthy, even if it's already healthy
	FailTimeout *int32 `json:"failTimeout,omitempty"`

	// +optional
	// Path is the path to check the health of the HTTP service, if it's not set, the health check will be TCP based
	Path *string `json:"path,omitempty"`

	// +optional
	// +kubebuilder:validation:MaxItems=16
	// Matches is the list of health check match conditions of HTTP service
	Matches []HealthCheckMatch `json:"matches,omitempty"`
}

func (*HealthCheckConfig) DeepCopy

func (in *HealthCheckConfig) DeepCopy() *HealthCheckConfig

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

func (*HealthCheckConfig) DeepCopyInto

func (in *HealthCheckConfig) DeepCopyInto(out *HealthCheckConfig)

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

type HealthCheckMatch

type HealthCheckMatch struct {
	// +optional
	// +listType=set
	// +kubebuilder:validation:MaxItems=16
	// StatusCodes is the list of status codes to match
	StatusCodes []int32 `json:"statusCodes,omitempty"`

	// +optional
	// Body is the content of response body to match
	Body *string `json:"body,omitempty"`

	// +optional
	// +listType=map
	// +listMapKey=name
	// +kubebuilder:validation:MaxItems=16
	// Headers is the list of response headers to match
	Headers []gwv1.HTTPHeader `json:"headers,omitempty"`
}

func (*HealthCheckMatch) DeepCopy

func (in *HealthCheckMatch) DeepCopy() *HealthCheckMatch

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

func (*HealthCheckMatch) DeepCopyInto

func (in *HealthCheckMatch) DeepCopyInto(out *HealthCheckMatch)

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

type HealthCheckPolicy

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

	Spec   HealthCheckPolicySpec   `json:"spec,omitempty"`
	Status HealthCheckPolicyStatus `json:"status,omitempty"`
}

HealthCheckPolicy is the Schema for the HealthCheckPolicy API

func (*HealthCheckPolicy) DeepCopy

func (in *HealthCheckPolicy) DeepCopy() *HealthCheckPolicy

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

func (*HealthCheckPolicy) DeepCopyInto

func (in *HealthCheckPolicy) DeepCopyInto(out *HealthCheckPolicy)

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

func (*HealthCheckPolicy) DeepCopyObject

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

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

type HealthCheckPolicyList

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

HealthCheckPolicyList contains a list of HealthCheckPolicy

func (*HealthCheckPolicyList) DeepCopy

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

func (*HealthCheckPolicyList) DeepCopyInto

func (in *HealthCheckPolicyList) DeepCopyInto(out *HealthCheckPolicyList)

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

func (*HealthCheckPolicyList) DeepCopyObject

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

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

type HealthCheckPolicySpec

type HealthCheckPolicySpec struct {
	// TargetRef is the reference to the target resource to which the policy is applied
	TargetRef gwv1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// +listType=map
	// +listMapKey=port
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	// Ports is the health check configuration for ports
	Ports []PortHealthCheck `json:"ports,omitempty"`

	// +optional
	// DefaultConfig is the default health check configuration for all ports
	DefaultConfig *HealthCheckConfig `json:"config,omitempty"`
}

HealthCheckPolicySpec defines the desired state of HealthCheckPolicy

func (*HealthCheckPolicySpec) DeepCopy

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

func (*HealthCheckPolicySpec) DeepCopyInto

func (in *HealthCheckPolicySpec) DeepCopyInto(out *HealthCheckPolicySpec)

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

type HealthCheckPolicyStatus

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

HealthCheckPolicyStatus defines the observed state of HealthCheckPolicy

func (*HealthCheckPolicyStatus) DeepCopy

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

func (*HealthCheckPolicyStatus) DeepCopyInto

func (in *HealthCheckPolicyStatus) DeepCopyInto(out *HealthCheckPolicyStatus)

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

type HostnameAccessControl

type HostnameAccessControl struct {
	// Hostname is the hostname for matching the access control
	Hostname gwv1.Hostname `json:"hostname"`

	// +optional
	// Config is the access control configuration for the hostname
	Config *AccessControlConfig `json:"config,omitempty"`
}

HostnameAccessControl defines the access control configuration for a hostname

func (*HostnameAccessControl) DeepCopy

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

func (*HostnameAccessControl) DeepCopyInto

func (in *HostnameAccessControl) DeepCopyInto(out *HostnameAccessControl)

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

type HostnameFaultInjection

type HostnameFaultInjection struct {
	// Hostname is the hostname for matching the access control
	Hostname gwv1.Hostname `json:"hostname"`

	// +optional
	// Config is the access control configuration for the hostname
	Config *FaultInjectionConfig `json:"config,omitempty"`
}

HostnameFaultInjection defines the access control configuration for a hostname

func (*HostnameFaultInjection) DeepCopy

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

func (*HostnameFaultInjection) DeepCopyInto

func (in *HostnameFaultInjection) DeepCopyInto(out *HostnameFaultInjection)

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

type HostnameRateLimit

type HostnameRateLimit struct {
	// Hostname is the hostname for matching the rate limit
	Hostname gwv1.Hostname `json:"hostname"`

	// +optional
	// Config is the rate limit configuration for the hostname
	Config *L7RateLimit `json:"config,omitempty"`
}

HostnameRateLimit defines the rate limit configuration for a hostname

func (*HostnameRateLimit) DeepCopy

func (in *HostnameRateLimit) DeepCopy() *HostnameRateLimit

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

func (*HostnameRateLimit) DeepCopyInto

func (in *HostnameRateLimit) DeepCopyInto(out *HostnameRateLimit)

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

type L7RateLimit

type L7RateLimit struct {
	// +optional
	// +kubebuilder:default=Local
	// +kubebuilder:validation:Enum=Local;Global
	// Mode is the mode of the rate limit policy, Local or Global, default is Local
	Mode *RateLimitPolicyMode `json:"mode"`

	// +optional
	// +kubebuilder:default=10
	// +kubebuilder:validation:Minimum=1
	// Backlog is the number of requests allowed to wait in the queue
	Backlog *int32 `json:"backlog,omitempty"`

	// Requests is the number of requests allowed per statTimeWindow
	// +kubebuilder:validation:Minimum=1
	Requests int32 `json:"requests"`

	// +optional
	// +kubebuilder:validation:Minimum=1
	// Burst is the number of requests allowed to be bursted, if not specified, it will be the same as Requests
	Burst *int32 `json:"burst,omitempty"`

	// +kubebuilder:validation:Minimum=1
	// StatTimeWindow is the time window in seconds
	StatTimeWindow int32 `json:"statTimeWindow"`

	// +optional
	// +kubebuilder:default=429
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=10000
	// ResponseStatusCode is the response status code to be returned when the rate limit is exceeded
	ResponseStatusCode *int32 `json:"responseStatusCode"`

	// +optional
	// +listType=map
	// +listMapKey=name
	// +kubebuilder:validation:MaxItems=16
	// ResponseHeadersToAdd is the response headers to be added when the rate limit is exceeded
	ResponseHeadersToAdd []gwv1.HTTPHeader `json:"responseHeadersToAdd,omitempty"`
}

L7RateLimit defines the rate limit configuration for a route

func (*L7RateLimit) DeepCopy

func (in *L7RateLimit) DeepCopy() *L7RateLimit

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

func (*L7RateLimit) DeepCopyInto

func (in *L7RateLimit) DeepCopyInto(out *L7RateLimit)

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

type LoadBalancerPolicy

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

	Spec   LoadBalancerPolicySpec   `json:"spec,omitempty"`
	Status LoadBalancerPolicyStatus `json:"status,omitempty"`
}

LoadBalancerPolicy is the Schema for the LoadBalancerPolicy API

func (*LoadBalancerPolicy) DeepCopy

func (in *LoadBalancerPolicy) DeepCopy() *LoadBalancerPolicy

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

func (*LoadBalancerPolicy) DeepCopyInto

func (in *LoadBalancerPolicy) DeepCopyInto(out *LoadBalancerPolicy)

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

func (*LoadBalancerPolicy) DeepCopyObject

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

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

type LoadBalancerPolicyList

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

LoadBalancerPolicyList contains a list of LoadBalancerPolicy

func (*LoadBalancerPolicyList) DeepCopy

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

func (*LoadBalancerPolicyList) DeepCopyInto

func (in *LoadBalancerPolicyList) DeepCopyInto(out *LoadBalancerPolicyList)

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

func (*LoadBalancerPolicyList) DeepCopyObject

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

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

type LoadBalancerPolicySpec

type LoadBalancerPolicySpec struct {
	// TargetRef is the reference to the target resource to which the policy is applied
	TargetRef gwv1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// +listType=map
	// +listMapKey=port
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	// Ports is the load balancer configuration for ports
	Ports []PortLoadBalancer `json:"ports,omitempty"`

	// +optional
	// +kubebuilder:default=RoundRobinLoadBalancer
	// +kubebuilder:validation:Enum=RoundRobinLoadBalancer;HashingLoadBalancer;LeastConnectionLoadBalancer
	// DefaultType is the default type of the load balancer for all ports
	DefaultType *LoadBalancerType `json:"type,omitempty"`
}

LoadBalancerPolicySpec defines the desired state of LoadBalancerPolicy

func (*LoadBalancerPolicySpec) DeepCopy

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

func (*LoadBalancerPolicySpec) DeepCopyInto

func (in *LoadBalancerPolicySpec) DeepCopyInto(out *LoadBalancerPolicySpec)

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

type LoadBalancerPolicyStatus

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

LoadBalancerPolicyStatus defines the observed state of LoadBalancerPolicy

func (*LoadBalancerPolicyStatus) DeepCopy

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

func (*LoadBalancerPolicyStatus) DeepCopyInto

func (in *LoadBalancerPolicyStatus) DeepCopyInto(out *LoadBalancerPolicyStatus)

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

type LoadBalancerType

type LoadBalancerType string
const (
	RoundRobinLoadBalancer      LoadBalancerType = "RoundRobinLoadBalancer"
	HashingLoadBalancer         LoadBalancerType = "HashingLoadBalancer"
	LeastConnectionLoadBalancer LoadBalancerType = "LeastConnectionLoadBalancer"
)

type PortAccessControl

type PortAccessControl struct {
	// Port is the port number for matching the access control
	Port gwv1.PortNumber `json:"port"`

	// +optional
	// Config is the access control configuration for the port
	Config *AccessControlConfig `json:"config,omitempty"`
}

PortAccessControl defines the access control configuration for a port

func (*PortAccessControl) DeepCopy

func (in *PortAccessControl) DeepCopy() *PortAccessControl

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

func (*PortAccessControl) DeepCopyInto

func (in *PortAccessControl) DeepCopyInto(out *PortAccessControl)

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

type PortCircuitBreaking

type PortCircuitBreaking struct {
	// Port is the port number of the target service
	Port gwv1.PortNumber `json:"port"`

	// +optional
	// Config is the circuit breaking configuration for the port
	Config *CircuitBreakingConfig `json:"config,omitempty"`
}

func (*PortCircuitBreaking) DeepCopy

func (in *PortCircuitBreaking) DeepCopy() *PortCircuitBreaking

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

func (*PortCircuitBreaking) DeepCopyInto

func (in *PortCircuitBreaking) DeepCopyInto(out *PortCircuitBreaking)

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

type PortHealthCheck

type PortHealthCheck struct {
	// Port is the port number of the target service
	Port gwv1.PortNumber `json:"port"`

	// +optional
	// Config is the health check configuration for the port
	Config *HealthCheckConfig `json:"config,omitempty"`
}

func (*PortHealthCheck) DeepCopy

func (in *PortHealthCheck) DeepCopy() *PortHealthCheck

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

func (*PortHealthCheck) DeepCopyInto

func (in *PortHealthCheck) DeepCopyInto(out *PortHealthCheck)

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

type PortLoadBalancer

type PortLoadBalancer struct {
	// Port is the port number for matching the load balancer
	Port gwv1.PortNumber `json:"port"`

	// +optional
	// +kubebuilder:default=RoundRobinLoadBalancer
	// +kubebuilder:validation:Enum=RoundRobinLoadBalancer;HashingLoadBalancer;LeastConnectionLoadBalancer
	// Type is the type of the load balancer
	Type *LoadBalancerType `json:"type,omitempty"`
}

PortLoadBalancer defines the load balancer configuration for a port

func (*PortLoadBalancer) DeepCopy

func (in *PortLoadBalancer) DeepCopy() *PortLoadBalancer

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

func (*PortLoadBalancer) DeepCopyInto

func (in *PortLoadBalancer) DeepCopyInto(out *PortLoadBalancer)

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

type PortRateLimit

type PortRateLimit struct {
	// Port is the port number for matching the rate limit
	Port gwv1.PortNumber `json:"port"`

	// +optional
	// +kubebuilder:validation:Minimum=1
	// BPS is the rate limit in bytes per second for the port
	BPS *int64 `json:"bps,omitempty"`
}

PortRateLimit defines the rate limit configuration for a port

func (*PortRateLimit) DeepCopy

func (in *PortRateLimit) DeepCopy() *PortRateLimit

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

func (*PortRateLimit) DeepCopyInto

func (in *PortRateLimit) DeepCopyInto(out *PortRateLimit)

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

type PortRetry

type PortRetry struct {
	// Port is the port number of the target service
	Port gwv1.PortNumber `json:"port"`

	// +optional
	// Config is the retry configuration for the port
	Config *RetryConfig `json:"config,omitempty"`
}

PortRetry defines the retry configuration for a port

func (*PortRetry) DeepCopy

func (in *PortRetry) DeepCopy() *PortRetry

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

func (*PortRetry) DeepCopyInto

func (in *PortRetry) DeepCopyInto(out *PortRetry)

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

type PortSessionSticky

type PortSessionSticky struct {
	// Port is the port number of the target service
	Port gwv1.PortNumber `json:"port"`

	// +optional
	// Config is the session sticky configuration for the port
	Config *SessionStickyConfig `json:"config,omitempty"`
}

PortSessionSticky defines the session sticky configuration for a port

func (*PortSessionSticky) DeepCopy

func (in *PortSessionSticky) DeepCopy() *PortSessionSticky

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

func (*PortSessionSticky) DeepCopyInto

func (in *PortSessionSticky) DeepCopyInto(out *PortSessionSticky)

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

type PortUpstreamTLS

type PortUpstreamTLS struct {
	// Port is the port number of the target service
	Port gwv1.PortNumber `json:"port"`

	// +optional
	// Config is the session sticky configuration for the port
	Config *UpstreamTLSConfig `json:"config,omitempty"`
}

PortUpstreamTLS defines the session sticky configuration for a port

func (*PortUpstreamTLS) DeepCopy

func (in *PortUpstreamTLS) DeepCopy() *PortUpstreamTLS

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

func (*PortUpstreamTLS) DeepCopyInto

func (in *PortUpstreamTLS) DeepCopyInto(out *PortUpstreamTLS)

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

type RateLimitPolicy

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

	Spec   RateLimitPolicySpec   `json:"spec,omitempty"`
	Status RateLimitPolicyStatus `json:"status,omitempty"`
}

RateLimitPolicy is the Schema for the RateLimitPolicy API

func (*RateLimitPolicy) DeepCopy

func (in *RateLimitPolicy) DeepCopy() *RateLimitPolicy

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

func (*RateLimitPolicy) DeepCopyInto

func (in *RateLimitPolicy) DeepCopyInto(out *RateLimitPolicy)

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

func (*RateLimitPolicy) DeepCopyObject

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

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

type RateLimitPolicyList

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

RateLimitPolicyList contains a list of RateLimitPolicy

func (*RateLimitPolicyList) DeepCopy

func (in *RateLimitPolicyList) DeepCopy() *RateLimitPolicyList

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

func (*RateLimitPolicyList) DeepCopyInto

func (in *RateLimitPolicyList) DeepCopyInto(out *RateLimitPolicyList)

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

func (*RateLimitPolicyList) DeepCopyObject

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

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

type RateLimitPolicyMode

type RateLimitPolicyMode string
const (
	// RateLimitPolicyModeLocal is the local mode
	RateLimitPolicyModeLocal RateLimitPolicyMode = "Local"

	// RateLimitPolicyModeGlobal is the global mode
	RateLimitPolicyModeGlobal RateLimitPolicyMode = "Global"
)

type RateLimitPolicySpec

type RateLimitPolicySpec struct {
	// TargetRef is the reference to the target resource to which the policy is applied
	TargetRef gwv1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// +optional
	// +listType=map
	// +listMapKey=port
	// +kubebuilder:validation:MaxItems=16
	// Ports is the rate limit configuration for ports
	Ports []PortRateLimit `json:"ports,omitempty"`

	// +optional
	// +kubebuilder:validation:Minimum=1
	// DefaultBPS is the default rate limit for all ports
	DefaultBPS *int64 `json:"bps,omitempty"`

	// +optional
	// +listType=map
	// +listMapKey=hostname
	// +kubebuilder:validation:MaxItems=16
	// Hostnames is the rate limit configuration for hostnames
	Hostnames []HostnameRateLimit `json:"hostnames,omitempty"`

	// +optional
	// +kubebuilder:validation:MaxItems=16
	// HTTPRateLimits is the rate limit configuration for HTTP routes
	HTTPRateLimits []HTTPRateLimit `json:"http,omitempty"`

	// +optional
	// +kubebuilder:validation:MaxItems=16
	// GRPCRateLimits is the rate limit configuration for GRPC routes
	GRPCRateLimits []GRPCRateLimit `json:"grpc,omitempty"`

	// +optional
	// DefaultConfig is the default rate limit for all routes and hostnames
	DefaultConfig *L7RateLimit `json:"config,omitempty"`
}

RateLimitPolicySpec defines the desired state of RateLimitPolicy

func (*RateLimitPolicySpec) DeepCopy

func (in *RateLimitPolicySpec) DeepCopy() *RateLimitPolicySpec

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

func (*RateLimitPolicySpec) DeepCopyInto

func (in *RateLimitPolicySpec) DeepCopyInto(out *RateLimitPolicySpec)

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

type RateLimitPolicyStatus

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

RateLimitPolicyStatus defines the observed state of RateLimitPolicy

func (*RateLimitPolicyStatus) DeepCopy

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

func (*RateLimitPolicyStatus) DeepCopyInto

func (in *RateLimitPolicyStatus) DeepCopyInto(out *RateLimitPolicyStatus)

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

type RetryConfig

type RetryConfig struct {
	// +listType=set
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	// RetryOn is the list of retryable response codes, e.g. 5xx matches 500-599, or 500 matches just 500
	RetryOn []string `json:"retryOn,omitempty"`

	// +optional
	// +kubebuilder:default=3
	// +kubebuilder:validation:Minimum=1
	// NumRetries is the number of retries
	NumRetries *int32 `json:"numRetries,omitempty"`

	// +optional
	// +kubebuilder:default=1.0
	// +kubebuilder:validation:Minimum=0.001
	// BackoffBaseInterval is the base interval for computing backoff in seconds
	BackoffBaseInterval *float32 `json:"backoffBaseInterval,omitempty"`
}

RetryConfig defines the retry configuration

func (*RetryConfig) DeepCopy

func (in *RetryConfig) DeepCopy() *RetryConfig

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

func (*RetryConfig) DeepCopyInto

func (in *RetryConfig) DeepCopyInto(out *RetryConfig)

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

type RetryPolicy

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

	Spec   RetryPolicySpec   `json:"spec,omitempty"`
	Status RetryPolicyStatus `json:"status,omitempty"`
}

RetryPolicy is the Schema for the RetryPolicy API

func (*RetryPolicy) DeepCopy

func (in *RetryPolicy) DeepCopy() *RetryPolicy

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

func (*RetryPolicy) DeepCopyInto

func (in *RetryPolicy) DeepCopyInto(out *RetryPolicy)

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

func (*RetryPolicy) DeepCopyObject

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

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

type RetryPolicyList

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

RetryPolicyList contains a list of RetryPolicy

func (*RetryPolicyList) DeepCopy

func (in *RetryPolicyList) DeepCopy() *RetryPolicyList

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

func (*RetryPolicyList) DeepCopyInto

func (in *RetryPolicyList) DeepCopyInto(out *RetryPolicyList)

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

func (*RetryPolicyList) DeepCopyObject

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

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

type RetryPolicySpec

type RetryPolicySpec struct {
	// TargetRef is the reference to the target resource to which the policy is applied
	TargetRef gwv1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// +listType=map
	// +listMapKey=port
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	// Ports is the retry configuration for ports
	Ports []PortRetry `json:"ports,omitempty"`

	// +optional
	// DefaultConfig is the default retry configuration for all ports
	DefaultConfig *RetryConfig `json:"config,omitempty"`
}

RetryPolicySpec defines the desired state of RetryPolicy

func (*RetryPolicySpec) DeepCopy

func (in *RetryPolicySpec) DeepCopy() *RetryPolicySpec

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

func (*RetryPolicySpec) DeepCopyInto

func (in *RetryPolicySpec) DeepCopyInto(out *RetryPolicySpec)

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

type RetryPolicyStatus

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

RetryPolicyStatus defines the observed state of RetryPolicy

func (*RetryPolicyStatus) DeepCopy

func (in *RetryPolicyStatus) DeepCopy() *RetryPolicyStatus

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

func (*RetryPolicyStatus) DeepCopyInto

func (in *RetryPolicyStatus) DeepCopyInto(out *RetryPolicyStatus)

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

type SessionStickyConfig

type SessionStickyConfig struct {
	// +optional
	// +kubebuilder:default=_srv_id
	// CookieName is the name of the cookie used for sticky session
	CookieName *string `json:"cookieName,omitempty"`

	// +optional
	// +kubebuilder:default=3600
	// +kubebuilder:validation:Minimum=1
	// Expires is the expiration time of the cookie in seconds
	Expires *int32 `json:"expires,omitempty"`
}

SessionStickyConfig defines the session sticky configuration

func (*SessionStickyConfig) DeepCopy

func (in *SessionStickyConfig) DeepCopy() *SessionStickyConfig

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

func (*SessionStickyConfig) DeepCopyInto

func (in *SessionStickyConfig) DeepCopyInto(out *SessionStickyConfig)

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

type SessionStickyPolicy

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

	Spec   SessionStickyPolicySpec   `json:"spec,omitempty"`
	Status SessionStickyPolicyStatus `json:"status,omitempty"`
}

SessionStickyPolicy is the Schema for the SessionStickyPolicy API

func (*SessionStickyPolicy) DeepCopy

func (in *SessionStickyPolicy) DeepCopy() *SessionStickyPolicy

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

func (*SessionStickyPolicy) DeepCopyInto

func (in *SessionStickyPolicy) DeepCopyInto(out *SessionStickyPolicy)

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

func (*SessionStickyPolicy) DeepCopyObject

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

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

type SessionStickyPolicyList

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

SessionStickyPolicyList contains a list of SessionStickyPolicy

func (*SessionStickyPolicyList) DeepCopy

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

func (*SessionStickyPolicyList) DeepCopyInto

func (in *SessionStickyPolicyList) DeepCopyInto(out *SessionStickyPolicyList)

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

func (*SessionStickyPolicyList) DeepCopyObject

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

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

type SessionStickyPolicySpec

type SessionStickyPolicySpec struct {
	// TargetRef is the reference to the target resource to which the policy is applied
	TargetRef gwv1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// +listType=map
	// +listMapKey=port
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	// Ports is the session sticky configuration for ports
	Ports []PortSessionSticky `json:"ports,omitempty"`

	// +optional
	// DefaultConfig is the default session sticky configuration for all ports
	DefaultConfig *SessionStickyConfig `json:"config,omitempty"`
}

SessionStickyPolicySpec defines the desired state of SessionStickyPolicy

func (*SessionStickyPolicySpec) DeepCopy

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

func (*SessionStickyPolicySpec) DeepCopyInto

func (in *SessionStickyPolicySpec) DeepCopyInto(out *SessionStickyPolicySpec)

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

type SessionStickyPolicyStatus

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

SessionStickyPolicyStatus defines the observed state of SessionStickyPolicy

func (*SessionStickyPolicyStatus) DeepCopy

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

func (*SessionStickyPolicyStatus) DeepCopyInto

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

type UpstreamTLSConfig

type UpstreamTLSConfig struct {
	// CertificateRef is the reference to the certificate used for TLS connection to upstream
	CertificateRef gwv1.SecretObjectReference `json:"certificateRef"`

	// +optional
	// +kubebuilder:default=false
	// MTLS is the flag to enable mutual TLS to upstream
	MTLS *bool `json:"mTLS,omitempty"`
}

UpstreamTLSConfig defines the session sticky configuration

func (*UpstreamTLSConfig) DeepCopy

func (in *UpstreamTLSConfig) DeepCopy() *UpstreamTLSConfig

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

func (*UpstreamTLSConfig) DeepCopyInto

func (in *UpstreamTLSConfig) DeepCopyInto(out *UpstreamTLSConfig)

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

type UpstreamTLSPolicy

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

	Spec   UpstreamTLSPolicySpec   `json:"spec,omitempty"`
	Status UpstreamTLSPolicyStatus `json:"status,omitempty"`
}

UpstreamTLSPolicy is the Schema for the UpstreamTLSPolicy API

func (*UpstreamTLSPolicy) DeepCopy

func (in *UpstreamTLSPolicy) DeepCopy() *UpstreamTLSPolicy

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

func (*UpstreamTLSPolicy) DeepCopyInto

func (in *UpstreamTLSPolicy) DeepCopyInto(out *UpstreamTLSPolicy)

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

func (*UpstreamTLSPolicy) DeepCopyObject

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

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

type UpstreamTLSPolicyList

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

UpstreamTLSPolicyList contains a list of UpstreamTLSPolicy

func (*UpstreamTLSPolicyList) DeepCopy

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

func (*UpstreamTLSPolicyList) DeepCopyInto

func (in *UpstreamTLSPolicyList) DeepCopyInto(out *UpstreamTLSPolicyList)

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

func (*UpstreamTLSPolicyList) DeepCopyObject

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

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

type UpstreamTLSPolicySpec

type UpstreamTLSPolicySpec struct {
	// TargetRef is the reference to the target resource to which the policy is applied
	TargetRef gwv1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// +listType=map
	// +listMapKey=port
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	// Ports is the session sticky configuration for ports
	Ports []PortUpstreamTLS `json:"ports,omitempty"`

	// +optional
	// DefaultConfig is the default session sticky configuration for all ports
	DefaultConfig *UpstreamTLSConfig `json:"config,omitempty"`
}

UpstreamTLSPolicySpec defines the desired state of UpstreamTLSPolicy

func (*UpstreamTLSPolicySpec) DeepCopy

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

func (*UpstreamTLSPolicySpec) DeepCopyInto

func (in *UpstreamTLSPolicySpec) DeepCopyInto(out *UpstreamTLSPolicySpec)

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

type UpstreamTLSPolicyStatus

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

UpstreamTLSPolicyStatus defines the observed state of UpstreamTLSPolicy

func (*UpstreamTLSPolicyStatus) DeepCopy

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

func (*UpstreamTLSPolicyStatus) DeepCopyInto

func (in *UpstreamTLSPolicyStatus) DeepCopyInto(out *UpstreamTLSPolicyStatus)

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

Jump to

Keyboard shortcuts

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