v1alpha1

package
v1.2.0-alpha.3 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: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 is the v1alpha3 version of the API.

Package v1alpha1 contains API Schema definitions for the gateway.flomesh.io v1alpha1 API group

Index

Constants

This section is empty.

Variables

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

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme adds all Resources to the Scheme
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

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
	// +kubebuilder:validation:MaxItems=256
	// Blacklist is the list of IP addresses to be blacklisted
	Blacklist []string `json:"blacklist,omitempty"`

	// +optional
	// +kubebuilder:validation:MaxItems=256
	// 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.PolicyTargetReference `json:"targetRef"`

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

	// +optional
	// +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.PolicyTargetReference `json:"targetRef"`

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

type GRPCAccessControl struct {
	// Match is the match condition for the GRPC route
	Match gwv1alpha2.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 GRPCRateLimit

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

	// +optional
	// RateLimit is the rate limit configuration for the GRPC route
	RateLimit *L7RateLimit `json:"rateLimit,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 gwv1beta1.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 HTTPRateLimit

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

	// +optional
	// RateLimit is the rate limit configuration for the HTTP route
	RateLimit *L7RateLimit `json:"rateLimit,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 HostnameAccessControl

type HostnameAccessControl struct {
	// Hostname is the hostname for matching the access control
	Hostname gwv1beta1.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 HostnameRateLimit

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

	// +optional
	// RateLimit is the rate limit configuration for the hostname
	RateLimit *L7RateLimit `json:"rateLimit,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
	// ResponseHeadersToAdd is the response headers to be added when the rate limit is exceeded
	ResponseHeadersToAdd map[string]string `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.PolicyTargetReference `json:"targetRef"`

	// +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 gwv1beta1.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 gwv1beta1.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 PortLoadBalancer

type PortLoadBalancer struct {
	// Port is the port number for matching the load balancer
	Port gwv1beta1.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 gwv1beta1.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 PortSessionSticky

type PortSessionSticky struct {
	// Port is the port number of the target service
	Port gwv1beta1.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 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.PolicyTargetReference `json:"targetRef"`

	// +optional
	// +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
	// +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
	// DefaultL7RateLimit is the default rate limit for all routes and hostnames
	DefaultL7RateLimit *L7RateLimit `json:"rateLimit,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 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.PolicyTargetReference `json:"targetRef"`

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

Jump to

Keyboard shortcuts

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