v1

package
v1.4.0 Latest Latest
Warning

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

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

Documentation

Overview

Package v1 contains policy types for the GKE implementation of the Gateway API.

+kubebuilder:object:generate=true +groupName=networking.gke.io

Index

Constants

View Source
const (
	// PolicyConditionAttached indicates whether the policy has been accepted or rejected
	// by a targeted resource, and why.
	//
	// Possible reasons for this condition to be true are:
	//
	// * "Attached"
	//
	// Possible reasons for this condition to be False are:
	//
	// * "Conflicted"
	//
	PolicyConditionAttached PolicyConditionType = "Attached"

	// PolicyReasonAttached is used with the "Attached" condition when the policy has been
	// accepted by the targeted resource.
	PolicyReasonAttached PolicyConditionReason = "Attached"

	// PolicyReasonConflicted is used with the "Attached" condition when the policy has not
	// been accepted by a targeted resource because there is another policy that targets the same
	// resource and has higher precedence.
	PolicyReasonConflicted PolicyConditionReason = "Conflicted"

	// PolicyReasonInvalid is used with the "Attached" condition when the policy is syntactically
	// or semantically invalid.
	PolicyReasonInvalid PolicyConditionReason = "Invalid"

	// PolicyReasonTargetNotFound is used with the "Attached" condition when the policy is attached to
	// an invalid target resource
	PolicyReasonTargetNotFound PolicyConditionReason = "TargetNotFound"
)
View Source
const GroupName = "networking.gke.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: "v1"}

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

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

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

Functions

func Resource added in v1.1.0

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AutoCapacityDrain added in v1.3.0

type AutoCapacityDrain struct {
	// If set to 'True', backends in a certain (cluster, zone) will be
	// drained(considered to have 0 capacity) when less than 25% of the endpoints
	// there are healthy. Default to false.
	EnableAutoCapacityDrain *bool `json:"enableAutoCapacityDrain,omitempty"`
}

AutoCapacityDrain contains configurations for auto draining.

type CommonHTTPHealthCheck

type CommonHTTPHealthCheck struct {
	// Host is the value of the host header in the HTTP health check request. This
	// matches the RFC 1123 definition of a hostname with 1 notable exception that
	// numeric IP addresses are not allowed.
	// If not specified or left empty, the IP on behalf of which this health check is
	// performed will be used.
	// +kubebuilder:validation:MaxLength=2048
	// +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
	Host *string `json:"host,omitempty"`
	// The request path of the HTTP health check request.
	// If not specified or left empty, a default value of "/" is used.
	// +kubebuilder:validation:MaxLength=2048
	// +kubebuilder:validation:Pattern=`\/[A-Za-z0-9\/\-._~%!?$&'()*+,;=:]*$`
	RequestPath *string `json:"requestPath,omitempty"`
	// Specifies the type of proxy header to append before sending data to the backend,
	// either NONE or PROXY_V1. If not specified, this defaults to NONE.
	// +kubebuilder:validation:Enum=NONE;PROXY_V1
	ProxyHeader *ProxyHeaderType `json:"proxyHeader,omitempty"`
	// The string to match anywhere in the first 1024 bytes of the response body.
	// If not specified or left empty, the status code determines health.
	// The response data can only be ASCII.
	// +kubebuilder:validation:MaxLength=1024
	// +kubebuilder:validation:Pattern=[\x00-\xFF]+
	Response *string `json:"response,omitempty"`
}

CommonHTTPHealthCheck holds all the fields that are common across all HTTP health checks.

func (*CommonHTTPHealthCheck) DeepCopy

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

func (*CommonHTTPHealthCheck) DeepCopyInto

func (in *CommonHTTPHealthCheck) DeepCopyInto(out *CommonHTTPHealthCheck)

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

type CommonHealthCheck

type CommonHealthCheck struct {
	// Specifies how port is selected for health checking, can be one of following values:
	//
	// USE_FIXED_PORT: The port number in port is used for health checking.
	// USE_NAMED_PORT: The portName is used for health checking.
	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint
	// is used for health checking. For other backends, the port or named port specified in the
	// Backend Service is used for health checking.
	//
	// If not specified, Protocol health check follows behavior specified in port and portName fields.
	// If neither Port nor PortName is specified, this defaults to USE_SERVING_PORT.
	// +unionDiscriminator
	// +kubebuilder:validation:Enum=USE_FIXED_PORT;USE_NAMED_PORT;USE_SERVING_PORT
	PortSpecification *PortSpecificationType `json:"portSpecification,omitempty"`
	// The TCP port number for the health check request. Valid values are 1 through 65535.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +optional
	Port *int64 `json:"port,omitempty"`
	// Port name as defined in InstanceGroup#NamedPort#name.
	// If both port and portName are defined, port takes precedence.
	// +optional
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=[a-z]([-a-z0-9]*[a-z0-9])?
	PortName *string `json:"portName,omitempty"`
}

CommonHealthCheck holds all the fields that are common across all protocol health checks. +union

func (*CommonHealthCheck) DeepCopy

func (in *CommonHealthCheck) DeepCopy() *CommonHealthCheck

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

func (*CommonHealthCheck) DeepCopyInto

func (in *CommonHealthCheck) DeepCopyInto(out *CommonHealthCheck)

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

type ConnectionDraining

type ConnectionDraining struct {
	// DrainingTimeoutSec is a BackendService parameter.
	// It is used during removal of VMs from instance groups. This guarantees that for
	// the specified time all existing connections to a VM will remain untouched,
	// but no new connections will be accepted. Set timeout to zero to disable
	// connection draining. Enable the feature by specifying a timeout of up to
	// one hour. If the field is omitted, a default value (0s) will be used.
	// See https://cloud.google.com/compute/docs/reference/rest/v1/backendServices
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=3600
	DrainingTimeoutSec *int64 `json:"drainingTimeoutSec,omitempty"`
}

ConnectionDraining contains configuration for connection draining

func (*ConnectionDraining) DeepCopy

func (in *ConnectionDraining) DeepCopy() *ConnectionDraining

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

func (*ConnectionDraining) DeepCopyInto

func (in *ConnectionDraining) DeepCopyInto(out *ConnectionDraining)

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

type FailoverConfig added in v1.3.0

type FailoverConfig struct {
	// The percentage threshold that a load balancer will begin to send traffic
	// to failover backends. When not specified, the dataplane uses its own
	// builtin default value. For Envoy the default value is 70. Proxyless gRPC
	// defaults to 50.
	//
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=100
	FailoverHealthThreshold *int32 `json:"failoverHealthThreshold,omitempty"`
}

FailoverConfig contains configurations for failover behaviors.

type GCPBackendPolicy

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

	// Spec defines the desired state of GCPBackendPolicy.
	Spec GCPBackendPolicySpec `json:"spec"`

	// Status defines the current state of GCPBackendPolicy.
	Status GCPBackendPolicyStatus `json:"status,omitempty"`
}

GCPBackendPolicy provides a way to apply LoadBalancer policy configuration with the GKE implementation of the Gateway API.

func (*GCPBackendPolicy) DeepCopy

func (in *GCPBackendPolicy) DeepCopy() *GCPBackendPolicy

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

func (*GCPBackendPolicy) DeepCopyInto

func (in *GCPBackendPolicy) DeepCopyInto(out *GCPBackendPolicy)

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

func (*GCPBackendPolicy) DeepCopyObject

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

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

type GCPBackendPolicyConfig

type GCPBackendPolicyConfig struct {
	Logging            *LoggingConfig         `json:"logging,omitempty"`
	SessionAffinity    *SessionAffinityConfig `json:"sessionAffinity,omitempty"`
	ConnectionDraining *ConnectionDraining    `json:"connectionDraining,omitempty"`
	// TimeoutSec is a BackendService parameter.
	// See https://cloud.google.com/compute/docs/reference/rest/v1/backendServices.
	// If the field is omitted, a default value (30s) will be used.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=2147483647
	TimeoutSec *int64 `json:"timeoutSec,omitempty"`
	// SecurityPolicy is a reference to a GCP Cloud Armor SecurityPolicy resource.
	// +optional
	SecurityPolicy *string `json:"securityPolicy,omitempty"`
	// IAP contains the configurations for Identity-Aware Proxy.
	// See https://cloud.google.com/compute/docs/reference/rest/v1/backendServices
	// Identity-Aware Proxy manages access control policies for backend services associated with a HTTPRoute,
	// so they can be accessed only by authenticated users or applications with correct Identity and Access Management (IAM) role.
	// +optional
	IAP *IdentityAwareProxyConfig `json:"iap,omitempty"`
	// MaxRatePerEndpoint configures the target capacity for backends.
	// If the field is omitted, a default value (1e8) will be used.
	// In the future we may add selector based settings for MaxRatePerEndpoint but they will co-exist
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=1000000000
	// +optional
	MaxRatePerEndpoint *int64 `json:"maxRatePerEndpoint,omitempty"`
	// BackendPreference indicates whether the backend should be fully
	// utilized before sending traffic to backends with default preference.
	// Can only be configured for multi-cluster service backends when
	// GCPBackendPolicy targets ServiceExport.
	// The default value is DEFAULT.
	// +kubebuilder:validation:Enum=DEFAULT;PREFERRED
	// +optional
	BackendPreference *string `json:"backendPreference,omitempty"`
}

GCPBackendPolicyConfig contains LoadBalancer policy configuration.

func (*GCPBackendPolicyConfig) DeepCopy

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

func (*GCPBackendPolicyConfig) DeepCopyInto

func (in *GCPBackendPolicyConfig) DeepCopyInto(out *GCPBackendPolicyConfig)

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

type GCPBackendPolicyList

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

GCPBackendPolicyList contains a list of GCPBackendPolicy.

func (*GCPBackendPolicyList) DeepCopy

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

func (*GCPBackendPolicyList) DeepCopyInto

func (in *GCPBackendPolicyList) DeepCopyInto(out *GCPBackendPolicyList)

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

func (*GCPBackendPolicyList) DeepCopyObject

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

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

type GCPBackendPolicySpec

type GCPBackendPolicySpec struct {
	// TargetRef identifies an API object to apply policy to.
	TargetRef v1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// Default defines default policy configuration for the targeted resource.
	// +optional
	Default *GCPBackendPolicyConfig `json:"default,omitempty"`
}

GCPBackendPolicySpec defines the desired state of GCPBackendPolicy.

func (*GCPBackendPolicySpec) DeepCopy

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

func (*GCPBackendPolicySpec) DeepCopyInto

func (in *GCPBackendPolicySpec) DeepCopyInto(out *GCPBackendPolicySpec)

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

type GCPBackendPolicyStatus

type GCPBackendPolicyStatus struct {
	// Ancestors is a list of ancestor resources (usually Gateways) that are
	// associated with the policy, and the status of the policy with respect to
	// each ancestor.
	//
	// +optional
	// +kubebuilder:validation:MaxItems=16
	Ancestors []PolicyAncestorStatus `json:"ancestors,omitempty"`

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

GCPBackendPolicyStatus defines the observed state of GCPBackendPolicy.

func (*GCPBackendPolicyStatus) DeepCopy

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

func (*GCPBackendPolicyStatus) DeepCopyInto

func (in *GCPBackendPolicyStatus) DeepCopyInto(out *GCPBackendPolicyStatus)

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

type GCPGatewayPolicy

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

	// Spec defines the desired state of GCPGatewayPolicy.
	Spec GCPGatewayPolicySpec `json:"spec"`

	// Status defines the current state of GCPGatewayPolicy.
	Status GCPGatewayPolicyStatus `json:"status,omitempty"`
}

GCPGatewayPolicy provides a way to apply SSL policy and other configuration to the GKE Gateway.

func (*GCPGatewayPolicy) DeepCopy

func (in *GCPGatewayPolicy) DeepCopy() *GCPGatewayPolicy

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

func (*GCPGatewayPolicy) DeepCopyInto

func (in *GCPGatewayPolicy) DeepCopyInto(out *GCPGatewayPolicy)

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

func (*GCPGatewayPolicy) DeepCopyObject

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

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

type GCPGatewayPolicyConfig

type GCPGatewayPolicyConfig struct {

	// +optional
	SslPolicy string `json:"sslPolicy,omitempty"`
	// +optional
	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
	// Region allows to specify load balancer's region for Multi-cluster Gateway.
	// +optional
	Region string `json:"region,omitempty"`
}

GCPGatewayPolicyConfig contains gateway policy configuration.

func (*GCPGatewayPolicyConfig) DeepCopy

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

func (*GCPGatewayPolicyConfig) DeepCopyInto

func (in *GCPGatewayPolicyConfig) DeepCopyInto(out *GCPGatewayPolicyConfig)

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

type GCPGatewayPolicyList

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

GCPGatewayPolicyList contains a list of GCPGatewayPolicies.

func (*GCPGatewayPolicyList) DeepCopy

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

func (*GCPGatewayPolicyList) DeepCopyInto

func (in *GCPGatewayPolicyList) DeepCopyInto(out *GCPGatewayPolicyList)

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

func (*GCPGatewayPolicyList) DeepCopyObject

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

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

type GCPGatewayPolicySpec

type GCPGatewayPolicySpec struct {
	// TargetRef identifies an API object to apply policy to.
	TargetRef v1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// Default defines default gateway policy configuration for the targeted resource.
	// +optional
	Default *GCPGatewayPolicyConfig `json:"default,omitempty"`
}

GCPGatewayPolicySpec defines the desired state of GCPGatewayPolicy.

func (*GCPGatewayPolicySpec) DeepCopy

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

func (*GCPGatewayPolicySpec) DeepCopyInto

func (in *GCPGatewayPolicySpec) DeepCopyInto(out *GCPGatewayPolicySpec)

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

type GCPGatewayPolicyStatus

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

GCPGatewayPolicyStatus defines the observed state of GCPGatewayPolicy.

func (*GCPGatewayPolicyStatus) DeepCopy

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

func (*GCPGatewayPolicyStatus) DeepCopyInto

func (in *GCPGatewayPolicyStatus) DeepCopyInto(out *GCPGatewayPolicyStatus)

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

type GCPSessionAffinityFilter

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

	// Spec defines the desired state of GCPSessionAffinityFilter.
	Spec GCPSessionAffinitySpec `json:"spec"`

	// Status defines the current state of GCPSessionAffinityFilter.
	Status GCPSessionAffinityFilterStatus `json:"status,omitempty"`
}

GCPSessionAffinityFilter provides a way to configure session affinity for a RouteAction.

func (*GCPSessionAffinityFilter) DeepCopy

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

func (*GCPSessionAffinityFilter) DeepCopyInto

func (in *GCPSessionAffinityFilter) DeepCopyInto(out *GCPSessionAffinityFilter)

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

func (*GCPSessionAffinityFilter) DeepCopyObject

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

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

type GCPSessionAffinityFilterList

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

GCPSessionAffinityFilterList contains a list of GCPSessionAffinityFilter.

func (*GCPSessionAffinityFilterList) DeepCopy

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

func (*GCPSessionAffinityFilterList) DeepCopyInto

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

func (*GCPSessionAffinityFilterList) DeepCopyObject

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

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

type GCPSessionAffinityFilterStatus

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

GCPSessionAffinityFilterStatus defines the observed state of GCPSessionAffinityFilter.

func (*GCPSessionAffinityFilterStatus) DeepCopy

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

func (*GCPSessionAffinityFilterStatus) DeepCopyInto

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

type GCPSessionAffinityPolicy

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

	// Spec defines the desired state of GCPSessionAffinityPolicy.
	Spec GCPSessionAffinityPolicySpec `json:"spec"`

	// Status defines the current state of GCPSessionAffinityPolicy.
	Status GCPSessionAffinityPolicyStatus `json:"status,omitempty"`
}

GCPSessionAffinityPolicy provides a way to apply session affinity policy configuration.

func (*GCPSessionAffinityPolicy) DeepCopy

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

func (*GCPSessionAffinityPolicy) DeepCopyInto

func (in *GCPSessionAffinityPolicy) DeepCopyInto(out *GCPSessionAffinityPolicy)

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

func (*GCPSessionAffinityPolicy) DeepCopyObject

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

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

type GCPSessionAffinityPolicyList

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

GCPSessionAffinityPolicyList contains a list of GCPSessionAffinityPolicy.

func (*GCPSessionAffinityPolicyList) DeepCopy

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

func (*GCPSessionAffinityPolicyList) DeepCopyInto

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

func (*GCPSessionAffinityPolicyList) DeepCopyObject

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

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

type GCPSessionAffinityPolicySpec

type GCPSessionAffinityPolicySpec struct {
	// GCPSessionAffinitySpec is shared with GCPSessionAffinityFilter
	GCPSessionAffinitySpec `json:",inline"`

	// TargetRef identifies an API object to apply policy to.
	TargetRef v1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`
}

GCPSessionAffinityPolicySpec defines the desired state of GCPSessionAffinityPolicy.

func (*GCPSessionAffinityPolicySpec) DeepCopy

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

func (*GCPSessionAffinityPolicySpec) DeepCopyInto

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

type GCPSessionAffinityPolicyStatus

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

GCPSessionAffinityPolicyStatus defines the observed state of GCPSessionAffinityPolicy.

func (*GCPSessionAffinityPolicyStatus) DeepCopy

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

func (*GCPSessionAffinityPolicyStatus) DeepCopyInto

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

type GCPSessionAffinitySpec

type GCPSessionAffinitySpec struct {
	StatefulGeneratedCookie *StatefulGeneratedCookieConfig `json:"statefulGeneratedCookie,omitempty"`
}

GCPSessionAffinitySpec defines the desired state of GCPSessionAffinityFilter and is shared with GCPSessionAffinityPolicy.

func (*GCPSessionAffinitySpec) DeepCopy

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

func (*GCPSessionAffinitySpec) DeepCopyInto

func (in *GCPSessionAffinitySpec) DeepCopyInto(out *GCPSessionAffinitySpec)

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

type GCPTrafficDistributionPolicy added in v1.3.0

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

	// Spec defines the desired state for traffic distribution policy settings.
	Spec GCPTrafficDistributionPolicySpec `json:"spec"`

	// Status provides the current state of GCPTrafficDistributionPolicy.
	Status PolicyStatus `json:"status,omitempty"`
}

GCPTrafficDistributionPolicy contains settings that configure how traffic should be distributed to its targeting service(s).

type GCPTrafficDistributionPolicyConfig added in v1.3.0

type GCPTrafficDistributionPolicyConfig struct {
	// The load balancing algorithm used to determine traffic distribution weighting at
	// cluster/zone level.
	// ServiceLbAlgorithm works together with LocalityLbAlgorithm.
	// Refer to https://cloud.google.com/load-balancing/docs/service-lb-policy for a
	// more detailed explanation of how they work together.
	// Supported values: SPRAY_TO_REGION / WATERFALL_BY_ZONE / WATERFALL_BY_REGION
	// Refer to https://cloud.google.com/load-balancing/docs/service-lb-policy#lb-algos
	// explanation of the algorithms.
	// Default to WATERFALL_BY_REGION.
	// +kubebuilder:validation:Enum=SPRAY_TO_REGION;WATERFALL_BY_ZONE;WATERFALL_BY_REGION
	ServiceLbAlgorithm *string `json:"serviceLbAlgorithm,omitempty"`

	// The load balancing algorithm used within the scope of the locality. This algorithm
	// affects how an individual endpoint is selected for a particular request.
	// LocalityLbAlgorithm works together with ServiceLbAlgorithm.
	// Refer to https://cloud.google.com/load-balancing/docs/service-lb-policy for a
	// more detailed explanation of how they work together.
	// Default to ROUND_ROBIN.
	// +kubebuilder:validation:Enum=ROUND_ROBIN;LEAST_REQUEST;RING_HASH;RANDOM;ORIGINAL_DESTINATION;MAGLEV;WEIGHTED_ROUND_ROBIN
	LocalityLbAlgorithm *string `json:"localityLbAlgorithm,omitempty"`

	// AutoCapacityDrain contains configurations for auto draining.
	//
	// +optional
	AutoCapacityDrain *AutoCapacityDrain `json:"autoCapacityDrain,omitempty"`

	// FailoverConfig contains configurations for failover behaviors.
	//
	// +optional
	FailoverConfig *FailoverConfig `json:"failoverConfig,omitempty"`
}

GCPTrafficDistributionPolicyConfig defines the settings of GCPTrafficDistributionPolicy.

type GCPTrafficDistributionPolicyList added in v1.3.0

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

GCPTrafficDistributionPolicyList contains a list of GCPTrafficDistributionPolicy.

type GCPTrafficDistributionPolicySpec added in v1.3.0

type GCPTrafficDistributionPolicySpec struct {

	// +kubebuilder:validation:XValidation:message="TargetRefs must reference Service",rule="self.all(x, x.kind == 'Service' && x.group == ”)"
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	TargetRefs []LocalPolicyTargetReference `json:"targetRefs"`

	// Default defines default policy configuration for the targeted resource.
	// +optional
	Default *GCPTrafficDistributionPolicyConfig `json:"default,omitempty"`
}

GCPTrafficDistributionPolicySpec defines the desired state of GCPTrafficDistributionPolicy.

type GRPCHealthCheck

type GRPCHealthCheck struct {
	CommonHealthCheck `json:",inline"`
	// The gRPC service name for the health check. This field is optional.
	// The value of grpcServiceName has the following meanings by convention:
	// - Empty serviceName means the overall status of all services at the backend.
	// - Non-empty serviceName means the health of that gRPC service, as defined by
	//   the owner of the service.
	// The grpcServiceName can only be ASCII.
	// +kubebuilder:validation:MaxLength=1024
	// +kubebuilder:validation:Pattern=[\x00-\xFF]+
	GRPCServiceName *string `json:"grpcServiceName,omitempty"`
}

GRPCHealthCheck is the health check configuration of type GRPC

func (*GRPCHealthCheck) DeepCopy

func (in *GRPCHealthCheck) DeepCopy() *GRPCHealthCheck

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

func (*GRPCHealthCheck) DeepCopyInto

func (in *GRPCHealthCheck) DeepCopyInto(out *GRPCHealthCheck)

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

type HTTP2HealthCheck

type HTTP2HealthCheck struct {
	CommonHealthCheck     `json:",inline"`
	CommonHTTPHealthCheck `json:",inline"`
}

HTTP2HealthCheck is the health check configuration of type HTTP2

func (*HTTP2HealthCheck) DeepCopy

func (in *HTTP2HealthCheck) DeepCopy() *HTTP2HealthCheck

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

func (*HTTP2HealthCheck) DeepCopyInto

func (in *HTTP2HealthCheck) DeepCopyInto(out *HTTP2HealthCheck)

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

type HTTPHealthCheck

type HTTPHealthCheck struct {
	CommonHealthCheck     `json:",inline"`
	CommonHTTPHealthCheck `json:",inline"`
}

HTTPHealthCheck is the health check configuration of type HTTP

func (*HTTPHealthCheck) DeepCopy

func (in *HTTPHealthCheck) DeepCopy() *HTTPHealthCheck

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

func (*HTTPHealthCheck) DeepCopyInto

func (in *HTTPHealthCheck) DeepCopyInto(out *HTTPHealthCheck)

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

type HTTPSHealthCheck

type HTTPSHealthCheck struct {
	CommonHealthCheck     `json:",inline"`
	CommonHTTPHealthCheck `json:",inline"`
}

HTTPSHealthCheck is the health check configuration of type HTTPS

func (*HTTPSHealthCheck) DeepCopy

func (in *HTTPSHealthCheck) DeepCopy() *HTTPSHealthCheck

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

func (*HTTPSHealthCheck) DeepCopyInto

func (in *HTTPSHealthCheck) DeepCopyInto(out *HTTPSHealthCheck)

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

type HealthCheck

type HealthCheck struct {
	// Specifies the type of the healthCheck, either TCP, HTTP, HTTPS, HTTP2 or GRPC.
	// Exactly one of the protocol-specific health check field must be specified,
	// which must match type field.
	// +unionDiscriminator
	// +kubebuilder:validation:Enum=TCP;HTTP;HTTPS;HTTP2;GRPC
	Type HealthCheckType `json:"type,omitempty"`
	// TCP is the health check configuration of type TCP.
	// +optional
	TCP *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
	// HTTP is the health check configuration of type HTTP.
	// +optional
	HTTP *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
	// HTTPS is the health check configuration of type HTTPS.
	// +optional
	HTTPS *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
	// HTTP2 is the health check configuration of type HTTP2.
	// +optional
	HTTP2 *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
	// GRPC is the health check configuration of type GRPC.
	// +optional
	GRPC *GRPCHealthCheck `json:"grpcHealthCheck,omitempty"`
}

HealthCheck is a union struct that contains per protocol (i.e. HTTP, HTTPS, HTTP2, TCP, GRPC) configuration. +union +kubebuilder:validation:MaxProperties=2 +kubebuilder:validation:MinProperties=2

func (*HealthCheck) DeepCopy

func (in *HealthCheck) DeepCopy() *HealthCheck

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

func (*HealthCheck) DeepCopyInto

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

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 defines the desired state of HealthCheckPolicy.
	Spec HealthCheckPolicySpec `json:"spec"`

	// Status defines the current state of HealthCheckPolicy.
	Status HealthCheckPolicyStatus `json:"status,omitempty"`
}

HealthCheckPolicy provides a way to create and attach a HealthCheck to a BackendService with the GKE implementation of the Gateway API. This policy can only be attached to a BackendService.

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 HealthCheckPolicyConfig

type HealthCheckPolicyConfig struct {
	// How often (in seconds) to send a health check.
	// If not specified, a default value of 5 seconds will be used.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=300
	CheckIntervalSec *int64 `json:"checkIntervalSec,omitempty"`
	// How long (in seconds) to wait before claiming failure.
	// If not specified, a default value of 5 seconds will be used.
	// It is invalid for timeoutSec to have greater value than checkIntervalSec.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=300
	TimeoutSec *int64 `json:"timeoutSec,omitempty"`
	// A so-far healthy instance will be marked unhealthy after this many consecutive failures.
	// If not specified, a default value of 2 will be used.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=10
	UnhealthyThreshold *int64 `json:"unhealthyThreshold,omitempty"`
	// A so-far unhealthy instance will be marked healthy after this many consecutive successes.
	// If not specified, a default value of 2 will be used.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=10
	HealthyThreshold *int64 `json:"healthyThreshold,omitempty"`
	// Specifies the type of the healthCheck, either TCP, HTTP, HTTPS, HTTP2 or GRPC.
	// Exactly one of the protocol-specific health check field must be specified,
	// which must match type field.
	// Config contains per protocol (i.e. HTTP, HTTPS, HTTP2, TCP, GRPC) configuration.
	// If not specified, health check type defaults to HTTP.
	Config *HealthCheck `json:"config,omitempty"`
	// LogConfig configures logging on this health check.
	LogConfig *LogConfig `json:"logConfig,omitempty"`
}

HealthCheckPolicyConfig contains HealthCheck policy configuration.

func (*HealthCheckPolicyConfig) DeepCopy

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

func (*HealthCheckPolicyConfig) DeepCopyInto

func (in *HealthCheckPolicyConfig) DeepCopyInto(out *HealthCheckPolicyConfig)

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

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 identifies an API object to apply policy to.
	TargetRef v1alpha2.NamespacedPolicyTargetReference `json:"targetRef"`

	// Default defines default policy configuration for the targeted resource.
	// +optional
	Default *HealthCheckPolicyConfig `json:"default,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 HealthCheckType

type HealthCheckType string

HealthCheckType is the HealthCheck protocol type.

const (
	// TCP is ProtocolType of TCP
	TCP HealthCheckType = "TCP"
	// HTTP is ProtocolType of HTTP
	HTTP HealthCheckType = "HTTP"
	// HTTPS is ProtocolType of HTTPS
	HTTPS HealthCheckType = "HTTPS"
	// HTTP2 is ProtocolType of HTTP2
	HTTP2 HealthCheckType = "HTTP2"
	// GRPC is ProtocolType of GRPC
	GRPC HealthCheckType = "GRPC"
)

type IdentityAwareProxyConfig

type IdentityAwareProxyConfig struct {
	// Enabled denotes whether the serving infrastructure will authenticate and authorize all incoming requests.
	// If true, the ClientID and Oauth2ClientSecret fields must be non-empty.
	// If not specified, this defaults to false, which means Identity-Aware Proxy is disabled by default.
	Enabled *bool `json:"enabled,omitempty"`
	// Oauth2ClientSecret contains the OAuth2 client secret to use for the authentication flow.
	// Oauth2ClientSecret must be set if Enabled is set to true.
	// +optional
	Oauth2ClientSecret *Oauth2ClientSecret `json:"oauth2ClientSecret,omitempty"`
	// ClientID is the OAuth2 client ID to use for the authentication flow.
	// See iap.oauth2ClientId in https://cloud.google.com/compute/docs/reference/rest/v1/backendServices
	// ClientID must be set if Enabled is set to true.
	// +optional
	ClientID *string `json:"clientID,omitempty"`
}

IdentityAwareProxyConfig contains the configurations for Identity-Aware Proxy. Identity-Aware Proxy manages access control policies for backend services associated with a HTTPRoute, so they can be accessed only by authenticated users or applications with correct Identity and Access Management (IAM) role. See https://cloud.google.com/compute/docs/reference/rest/v1/backendServices

func (*IdentityAwareProxyConfig) DeepCopy

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

func (*IdentityAwareProxyConfig) DeepCopyInto

func (in *IdentityAwareProxyConfig) DeepCopyInto(out *IdentityAwareProxyConfig)

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

type LocalPolicyTargetReference added in v1.3.0

type LocalPolicyTargetReference struct {
	// Group is the group of the target resource.
	Group v1.Group `json:"group"`

	// Kind is kind of the target resource.
	Kind v1.Kind `json:"kind"`

	// Name is the name of the target resource.
	Name v1.ObjectName `json:"name"`
}

LocalPolicyTargetReference identifies an API object to apply a direct or inherited policy to. This should be used as part of Policy resources that can target Gateway API resources. For more information on how this policy attachment model works, and a sample Policy resource, refer to the policy attachment documentation for Gateway API.

type LogConfig

type LogConfig struct {
	// Enabled indicates whether or not to export health check logs. If not
	// specified, this defaults to false, which means health check logging will be
	// disabled.
	Enabled *bool `json:"enabled,omitempty"`
}

LogConfig configures logging on this health check.

func (*LogConfig) DeepCopy

func (in *LogConfig) DeepCopy() *LogConfig

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

func (*LogConfig) DeepCopyInto

func (in *LogConfig) DeepCopyInto(out *LogConfig)

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

type LoggingConfig

type LoggingConfig struct {
	// Enabled denotes whether to enable logging for the load balancer traffic
	// served by this backend service. If not specified, this defaults to false,
	// which means logging is disabled by default.
	Enabled *bool `json:"enabled,omitempty"`
	// This field can only be specified if logging is enabled for this backend
	// service. The value of the field must be in range [0, 1e6]. This is
	// converted to a floating point value in the range [0, 1] by dividing by 1e6
	// for use with the GCE api and interpreted as the proportion of requests that
	// will be logged. By default all requests will be logged.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=1000000
	SampleRate *int32 `json:"sampleRate,omitempty"`
}

LoggingConfig contains configuration for logging.

func (*LoggingConfig) DeepCopy

func (in *LoggingConfig) DeepCopy() *LoggingConfig

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

func (*LoggingConfig) DeepCopyInto

func (in *LoggingConfig) DeepCopyInto(out *LoggingConfig)

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

type Oauth2ClientSecret

type Oauth2ClientSecret struct {
	// Name is the reference to the secret resource.
	Name *string `json:"name,omitempty"`
}

Oauth2ClientSecret contains the OAuth2 client secret to use for the authentication flow. See https://cloud.google.com/compute/docs/reference/rest/v1/backendServices

func (*Oauth2ClientSecret) DeepCopy

func (in *Oauth2ClientSecret) DeepCopy() *Oauth2ClientSecret

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

func (*Oauth2ClientSecret) DeepCopyInto

func (in *Oauth2ClientSecret) DeepCopyInto(out *Oauth2ClientSecret)

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

type PolicyAncestorStatus added in v1.3.0

type PolicyAncestorStatus struct {
	// AncestorRef corresponds with a ParentRef in the spec that this
	// PolicyAncestorStatus struct describes the status of.
	AncestorRef v1.ParentReference `json:"ancestorRef"`

	// ControllerName is a domain/path string that indicates the name of the
	// controller that wrote this status. This corresponds with the
	// controllerName field on GatewayClass.
	//
	// Example: "example.net/gateway-controller".
	//
	// The format of this field is DOMAIN "/" PATH, where DOMAIN and PATH are
	// valid Kubernetes names
	// (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names).
	//
	// Controllers MUST populate this field when writing status. Controllers should ensure that
	// entries to status populated with their ControllerName are cleaned up when they are no
	// longer necessary.
	ControllerName v1.GatewayController `json:"controllerName"`

	// Conditions describes the status of the Policy with respect to the given Ancestor.
	//
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=8
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

PolicyAncestorStatus describes the status of a route with respect to an associated Ancestor.

Ancestors refer to objects that are either the Target of a policy or above it in terms of object hierarchy. For example, if a policy targets a Service, the Policy's Ancestors are, in order, the Service, the HTTPRoute, the Gateway, and the GatewayClass. Almost always, in this hierarchy, the Gateway will be the most useful object to place Policy status on, so we recommend that implementations SHOULD use Gateway as the PolicyAncestorStatus object unless the designers have a _very_ good reason otherwise.

In the context of policy attachment, the Ancestor is used to distinguish which resource results in a distinct application of this policy. For example, if a policy targets a Service, it may have a distinct result per attached Gateway.

Policies targeting the same resource may have different effects depending on the ancestors of those resources. For example, different Gateways targeting the same Service may have different capabilities, especially if they have different underlying implementations.

For example, in BackendTLSPolicy, the Policy attaches to a Service that is used as a backend in a HTTPRoute that is itself attached to a Gateway. In this case, the relevant object for status is the Gateway, and that is the ancestor object referred to in this status.

Note that a parent is also an ancestor, so for objects where the parent is the relevant object for status, this struct SHOULD still be used.

This struct is intended to be used in a slice that's effectively a map, with a composite key made up of the AncestorRef and the ControllerName.

type PolicyConditionReason

type PolicyConditionReason string

PolicyConditionReason is a reason for a service policy condition.

type PolicyConditionType

type PolicyConditionType string

PolicyConditionType is a type of condition for a service policy.

type PolicyStatus added in v1.3.0

type PolicyStatus struct {
	// Ancestors is a list of ancestor resources (usually Gateways) that are
	// associated with the policy, and the status of the policy with respect to
	// each ancestor. When this policy attaches to a parent, the controller that
	// manages the parent and the ancestors MUST add an entry to this list when
	// the controller first sees the policy and SHOULD update the entry as
	// appropriate when the relevant ancestor is modified.
	//
	// Note that choosing the relevant ancestor is left to the Policy designers;
	// an important part of Policy design is designing the right object level at
	// which to namespace this status.
	//
	// Note also that implementations MUST ONLY populate ancestor status for
	// the Ancestor resources they are responsible for. Implementations MUST
	// use the ControllerName field to uniquely identify the entries in this list
	// that they are responsible for.
	//
	// Note that to achieve this, the list of PolicyAncestorStatus structs
	// MUST be treated as a map with a composite key, made up of the AncestorRef
	// and ControllerName fields combined.
	//
	// A maximum of 16 ancestors will be represented in this list. An empty list
	// means the Policy is not relevant for any ancestors.
	//
	// If this slice is full, implementations MUST NOT add further entries.
	// Instead they MUST consider the policy unimplementable and signal that
	// on any related resources such as the ancestor that would be referenced
	// here. For example, if this list was full on BackendTLSPolicy, no
	// additional Gateways would be able to reference the Service targeted by
	// the BackendTLSPolicy.
	//
	// +kubebuilder:validation:MaxItems=16
	Ancestors []PolicyAncestorStatus `json:"ancestors"`
}

PolicyStatus defines the common attributes that all Policies should include within their status.

type PortSpecificationType

type PortSpecificationType string

PortSpecificationType is the PortSpecification type.

const (
	// UseFixedPort is PortSpecificationType of USE_FIXED_PORT
	UseFixedPort PortSpecificationType = "USE_FIXED_PORT"
	// UseNamedPort is PortSpecificationType of USE_NAMED_PORT
	UseNamedPort PortSpecificationType = "USE_NAMED_PORT"
	// UseServingPort is PortSpecificationType of USE_SERVING_PORT
	UseServingPort PortSpecificationType = "USE_SERVING_PORT"
)

type ProxyHeaderType

type ProxyHeaderType string

ProxyHeaderType is the ProxyHeader type.

const (
	// None is ProxyHeaderType of NONE
	None ProxyHeaderType = "NONE"
	// ProxyV1 is ProxyHeaderType of PROXY_V1
	ProxyV1 ProxyHeaderType = "PROXY_V1"
)

type SessionAffinityConfig

type SessionAffinityConfig struct {
	// Type specifies the type of session affinity to use. If not specified, this
	// defaults to NONE.
	// +kubebuilder:validation:Enum=CLIENT_IP;CLIENT_IP_PORT_PROTO;CLIENT_IP_PROTO;GENERATED_COOKIE;HEADER_FIELD;HTTP_COOKIE;NONE
	Type *string `json:"type,omitempty"`
	// CookieTTLSec specifies the lifetime of cookies in seconds. This setting
	// requires GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the
	// cookie is non-persistent and lasts only until the end of the browser
	// session (or equivalent). The maximum allowed value is two weeks
	// (1,209,600).
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=1209600
	CookieTTLSec *int64 `json:"cookieTtlSec,omitempty"`
}

SessionAffinityConfig contains configuration for stickiness parameters.

func (*SessionAffinityConfig) DeepCopy

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

func (*SessionAffinityConfig) DeepCopyInto

func (in *SessionAffinityConfig) DeepCopyInto(out *SessionAffinityConfig)

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

type StatefulGeneratedCookieConfig

type StatefulGeneratedCookieConfig struct {
	// The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the
	// cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.
	CookieTTLSeconds *int64 `json:"cookieTtlSeconds"`
}

StatefulGeneratedCookieConfig defines cookie-based stateful session affinity where the date plane supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. GCP will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next.

func (*StatefulGeneratedCookieConfig) DeepCopy

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

func (*StatefulGeneratedCookieConfig) DeepCopyInto

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

type TCPHealthCheck

type TCPHealthCheck struct {
	CommonHealthCheck `json:",inline"`
	// The application data to send once the TCP connection has been established. If not specified,
	// this defaults to empty. If both request and response are empty, the connection establishment
	// alone will indicate health. The request data can only be ASCII.
	// +kubebuilder:validation:MaxLength=1024
	// +kubebuilder:validation:Pattern=[\x00-\xFF]+
	Request *string `json:"request,omitempty"`
	// The bytes to match against the beginning of the response data.
	// If not specified or left empty, any response will indicate health.
	// The response data can only be ASCII.
	// +kubebuilder:validation:MaxLength=1024
	// +kubebuilder:validation:Pattern=[\x00-\xFF]+
	Response *string `json:"response,omitempty"`
	// Specifies the type of proxy header to append before sending data to the backend,
	// either NONE or PROXY_V1. If not specified, this defaults to NONE.
	// +kubebuilder:validation:Enum=NONE;PROXY_V1
	ProxyHeader *ProxyHeaderType `json:"proxyHeader,omitempty"`
}

TCPHealthCheck is the health check configuration of type TCP

func (*TCPHealthCheck) DeepCopy

func (in *TCPHealthCheck) DeepCopy() *TCPHealthCheck

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

func (*TCPHealthCheck) DeepCopyInto

func (in *TCPHealthCheck) DeepCopyInto(out *TCPHealthCheck)

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