Documentation
¶
Overview ¶
Package v2alpha1 contains API Schema definitions for the gateway-operator.konghq.com v2alpha1 API group. +kubebuilder:object:generate=true +groupName=gateway-operator.konghq.com +groupGoName=GatewayOperator
Package v2alpha1 contains API Schema definitions for the gateway-operator.konghq.com v2alpha1 API group +kubebuilder:object:generate=true +groupName=gateway-operator.konghq.com
Index ¶
- Variables
- func ControlPlaneGVR() schema.GroupVersionResource
- type ControlPlane
- func (in *ControlPlane) DeepCopy() *ControlPlane
- func (in *ControlPlane) DeepCopyInto(out *ControlPlane)
- func (in *ControlPlane) DeepCopyObject() runtime.Object
- func (c *ControlPlane) GetConditions() []metav1.Condition
- func (c *ControlPlane) GetExtensions() []commonv1alpha1.ExtensionRef
- func (c *ControlPlane) SetConditions(conditions []metav1.Condition)
- type ControlPlaneController
- type ControlPlaneDataPlaneTarget
- type ControlPlaneDataPlaneTargetRef
- type ControlPlaneDataPlaneTargetType
- type ControlPlaneFeatureGate
- type ControlPlaneGatewayDiscovery
- type ControlPlaneList
- type ControlPlaneOptions
- type ControlPlaneSpec
- type ControlPlaneStatus
- type ControllerState
- type FeatureGateState
- type GatewayConfigControlPlaneOptions
- type GatewayConfigDataPlaneNetworkOptions
- type GatewayConfigDataPlaneOptions
- type GatewayConfigDataPlaneResources
- type GatewayConfigDataPlaneServices
- type GatewayConfigServiceOptions
- type GatewayConfiguration
- func (in *GatewayConfiguration) DeepCopy() *GatewayConfiguration
- func (in *GatewayConfiguration) DeepCopyInto(out *GatewayConfiguration)
- func (in *GatewayConfiguration) DeepCopyObject() runtime.Object
- func (g *GatewayConfiguration) GetConditions() []metav1.Condition
- func (g *GatewayConfiguration) GetExtensions() []commonv1alpha1.ExtensionRef
- func (g *GatewayConfiguration) SetConditions(conditions []metav1.Condition)
- type GatewayConfigurationList
- type GatewayConfigurationSpec
- type GatewayConfigurationStatus
- type NamespacedName
- type PodDisruptionBudget
- type PodDisruptionBudgetSpec
- type ServiceOptions
Constants ¶
This section is empty.
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "gateway-operator.konghq.com", Version: "v2alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func ControlPlaneGVR ¶
func ControlPlaneGVR() schema.GroupVersionResource
ControlPlaneGVR returns current package ControlPlane GVR.
Types ¶
type ControlPlane ¶
type ControlPlane struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec is the specification of the ControlPlane resource.
Spec ControlPlaneSpec `json:"spec,omitempty"`
// Status is the status of the ControlPlane resource.
//
// +optional
Status ControlPlaneStatus `json:"status,omitempty"`
}
ControlPlane is the Schema for the controlplanes API
+genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:storageversion +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=kocp,categories=kong;all +kubebuilder:printcolumn:name="Ready",description="The Resource is ready",type=string,JSONPath=`.status.conditions[?(@.type=='Ready')].status` +apireference:kgo:include +kong:channels=gateway-operator
func (*ControlPlane) DeepCopy ¶
func (in *ControlPlane) DeepCopy() *ControlPlane
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlane.
func (*ControlPlane) DeepCopyInto ¶
func (in *ControlPlane) DeepCopyInto(out *ControlPlane)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControlPlane) DeepCopyObject ¶
func (in *ControlPlane) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ControlPlane) GetConditions ¶
func (c *ControlPlane) GetConditions() []metav1.Condition
GetConditions returns the ControlPlane Status Conditions
func (*ControlPlane) GetExtensions ¶
func (c *ControlPlane) GetExtensions() []commonv1alpha1.ExtensionRef
GetExtensions retrieves the ControlPlane Extensions
func (*ControlPlane) SetConditions ¶
func (c *ControlPlane) SetConditions(conditions []metav1.Condition)
SetConditions sets the ControlPlane Status Conditions
type ControlPlaneController ¶
type ControlPlaneController struct {
// Name is the name of the controller.
//
// +required
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
// State indicates whether the feature gate is enabled or disabled.
//
// +required
// +kubebuilder:validation:Enum=enabled;disabled
State ControllerState `json:"state"`
}
ControlPlaneController defines a controller state for the ControlPlane. It overrides the default behavior as defined in the deployed operator version.
+apireference:kgo:include
func (*ControlPlaneController) DeepCopy ¶
func (in *ControlPlaneController) DeepCopy() *ControlPlaneController
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneController.
func (*ControlPlaneController) DeepCopyInto ¶
func (in *ControlPlaneController) DeepCopyInto(out *ControlPlaneController)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneDataPlaneTarget ¶
type ControlPlaneDataPlaneTarget struct {
// Type indicates the type of the DataPlane target.
//
// +required
// +kubebuilder:validation:Enum=ref;managedByOwner
Type ControlPlaneDataPlaneTargetType `json:"type"`
// Ref is the name of the DataPlane to configure.
//
// +optional
Ref *ControlPlaneDataPlaneTargetRef `json:"ref,omitempty"`
}
ControlPlaneDataPlaneTarget defines the target for the DataPlane that the ControlPlane is responsible for configuring.
+kubebuilder:validation:XValidation:message="Ref has to be provided when type is set to ref",rule="self.type != 'ref' || has(self.ref)" +kubebuilder:validation:XValidation:message="Ref cannot be provided when type is set to managedByOwner",rule="self.type != 'managedByOwner' || !has(self.ref)"
func (*ControlPlaneDataPlaneTarget) DeepCopy ¶
func (in *ControlPlaneDataPlaneTarget) DeepCopy() *ControlPlaneDataPlaneTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneDataPlaneTarget.
func (*ControlPlaneDataPlaneTarget) DeepCopyInto ¶
func (in *ControlPlaneDataPlaneTarget) DeepCopyInto(out *ControlPlaneDataPlaneTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneDataPlaneTargetRef ¶
type ControlPlaneDataPlaneTargetRef struct {
// Ref is the name of the DataPlane to configure.
//
// +required
Name string `json:"name"`
}
ControlPlaneDataPlaneTargetRef defines the reference to a DataPlane resource that the ControlPlane is responsible for configuring.
func (*ControlPlaneDataPlaneTargetRef) DeepCopy ¶
func (in *ControlPlaneDataPlaneTargetRef) DeepCopy() *ControlPlaneDataPlaneTargetRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneDataPlaneTargetRef.
func (*ControlPlaneDataPlaneTargetRef) DeepCopyInto ¶
func (in *ControlPlaneDataPlaneTargetRef) DeepCopyInto(out *ControlPlaneDataPlaneTargetRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneDataPlaneTargetType ¶
type ControlPlaneDataPlaneTargetType string
ControlPlaneDataPlaneTargetType defines the type of the DataPlane target that the ControlPlane is responsible for configuring.
const ( // ControlPlaneDataPlaneTargetRefType indicates that the DataPlane target is a ref // of a DataPlane resource managed by the operator. // This is used for configuring DataPlanes that are managed by the operator. ControlPlaneDataPlaneTargetRefType ControlPlaneDataPlaneTargetType = "ref" // ControlPlaneDataPlaneTargetManagedByType indicates that the DataPlane target // is managed by the owner of the ControlPlane. // This is the case when using a Gateway resource to manage the DataPlane // and the ControlPlane is responsible for configuring it. ControlPlaneDataPlaneTargetManagedByType ControlPlaneDataPlaneTargetType = "managedByOwner" )
type ControlPlaneFeatureGate ¶
type ControlPlaneFeatureGate struct {
// Name is the name of the feature gate.
//
// +required
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
// State indicates whether the feature gate is enabled or disabled.
//
// +required
// +kubebuilder:validation:Enum=enabled;disabled
State FeatureGateState `json:"state"`
}
ControlPlaneFeatureGate defines a feature gate state for the ControlPlane. It overrides the default behavior as defined in the deployed operator version.
+apireference:kgo:include
func (*ControlPlaneFeatureGate) DeepCopy ¶
func (in *ControlPlaneFeatureGate) DeepCopy() *ControlPlaneFeatureGate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneFeatureGate.
func (*ControlPlaneFeatureGate) DeepCopyInto ¶
func (in *ControlPlaneFeatureGate) DeepCopyInto(out *ControlPlaneFeatureGate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneGatewayDiscovery ¶
type ControlPlaneGatewayDiscovery struct {
// ReadinessCheckInterval defines the interval at which the ControlPlane
// checks the readiness of the DataPlanes it is responsible for.
// If not specified, the default interval as defined by the operator will be used.
//
// +optional
ReadinessCheckInterval *metav1.Duration `json:"readinessCheckInterval,omitempty"`
// ReadinessCheckTimeout defines the timeout for the DataPlane readiness check.
// If not specified, the default interval as defined by the operator will be used.
//
// +optional
ReadinessCheckTimeout *metav1.Duration `json:"readinessCheckTimeout,omitempty"`
}
ControlPlaneGatewayDiscovery defines the configuration for the Gateway Discovery feature of the ControlPlane.
func (*ControlPlaneGatewayDiscovery) DeepCopy ¶
func (in *ControlPlaneGatewayDiscovery) DeepCopy() *ControlPlaneGatewayDiscovery
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneGatewayDiscovery.
func (*ControlPlaneGatewayDiscovery) DeepCopyInto ¶
func (in *ControlPlaneGatewayDiscovery) DeepCopyInto(out *ControlPlaneGatewayDiscovery)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneList ¶
type ControlPlaneList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ControlPlane `json:"items"`
}
ControlPlaneList contains a list of ControlPlane
+kubebuilder:object:root=true +apireference:kgo:include
func (*ControlPlaneList) DeepCopy ¶
func (in *ControlPlaneList) DeepCopy() *ControlPlaneList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneList.
func (*ControlPlaneList) DeepCopyInto ¶
func (in *ControlPlaneList) DeepCopyInto(out *ControlPlaneList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControlPlaneList) DeepCopyObject ¶
func (in *ControlPlaneList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ControlPlaneOptions ¶
type ControlPlaneOptions struct {
// IngressClass enables support for the Ingress resources and indicates
// which Ingress resources this ControlPlane should be responsible for.
//
// If omitted, Ingress resources will not be supported by the ControlPlane.
//
// +optional
IngressClass *string `json:"ingressClass,omitempty"`
// WatchNamespaces indicates the namespaces to watch for resources.
//
// +optional
// +kubebuilder:default={type: all}
WatchNamespaces *operatorv1beta1.WatchNamespaces `json:"watchNamespaces,omitempty"`
// FeatureGates is a list of feature gates that are enabled for this ControlPlane.
//
// +optional
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:MaxItems=32
FeatureGates []ControlPlaneFeatureGate `json:"featureGates,omitempty"`
// Controllers defines the controllers that are enabled for this ControlPlane.
//
// +optional
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:MaxItems=32
Controllers []ControlPlaneController `json:"controllers,omitempty"`
// GatewayDiscovery defines the configuration for the Gateway Discovery feature.
//
// +optional
GatewayDiscovery *ControlPlaneGatewayDiscovery `json:"gatewayDiscovery,omitempty"`
}
ControlPlaneOptions indicates the specific information needed to deploy and connect a ControlPlane to a DataPlane object.
+apireference:kgo:include
func (*ControlPlaneOptions) DeepCopy ¶
func (in *ControlPlaneOptions) DeepCopy() *ControlPlaneOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneOptions.
func (*ControlPlaneOptions) DeepCopyInto ¶
func (in *ControlPlaneOptions) DeepCopyInto(out *ControlPlaneOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneSpec ¶
type ControlPlaneSpec struct {
// DataPlane designates the target data plane to configure.
//
// It can be:
// - a name of a DataPlane resource that is managed by the operator,
// - a DataPlane that is managed by the owner of the ControlPlane (e.g. a Gateway resource)
//
// +required
DataPlane ControlPlaneDataPlaneTarget `json:"dataplane"`
ControlPlaneOptions `json:",inline"`
// Extensions provide additional or replacement features for the ControlPlane
// resources to influence or enhance functionality.
//
// +optional
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:XValidation:message="Extension not allowed for ControlPlane",rule="self.all(e, (e.group == 'konnect.konghq.com' && e.kind == 'KonnectExtension') || (e.group == 'gateway-operator.konghq.com' && e.kind == 'DataPlaneMetricsExtension'))"
Extensions []commonv1alpha1.ExtensionRef `json:"extensions,omitempty"`
}
ControlPlaneSpec defines the desired state of ControlPlane
+apireference:kgo:include
func (*ControlPlaneSpec) DeepCopy ¶
func (in *ControlPlaneSpec) DeepCopy() *ControlPlaneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneSpec.
func (*ControlPlaneSpec) DeepCopyInto ¶
func (in *ControlPlaneSpec) DeepCopyInto(out *ControlPlaneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneStatus ¶
type ControlPlaneStatus struct {
// Conditions describe the current conditions of the Gateway.
//
// +optional
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MaxItems=8
// +kubebuilder:default={{type: "Scheduled", status: "Unknown", reason:"NotReconciled", message:"Waiting for controller", lastTransitionTime: "1970-01-01T00:00:00Z"}}
Conditions []metav1.Condition `json:"conditions,omitempty"`
// FeatureGates is a list of effective feature gates for this ControlPlane.
//
// +optional
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:MaxItems=32
FeatureGates []ControlPlaneFeatureGate `json:"featureGates,omitempty"`
// Controllers is a list of enabled and disabled controllers for this ControlPlane.
//
// +optional
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:MaxItems=32
Controllers []ControlPlaneController `json:"controllers,omitempty"`
}
ControlPlaneStatus defines the observed state of ControlPlane
+apireference:kgo:include
func (*ControlPlaneStatus) DeepCopy ¶
func (in *ControlPlaneStatus) DeepCopy() *ControlPlaneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneStatus.
func (*ControlPlaneStatus) DeepCopyInto ¶
func (in *ControlPlaneStatus) DeepCopyInto(out *ControlPlaneStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControllerState ¶
type ControllerState string
ControllerState defines the state of a feature gate.
const ( // ControllerStateEnabled indicates that the feature gate is enabled. ControllerStateEnabled ControllerState = "enabled" // ControllerStateDisabled indicates that the feature gate is disabled. ControllerStateDisabled ControllerState = "disabled" )
type FeatureGateState ¶
type FeatureGateState string
FeatureGateState defines the state of a feature gate.
const ( // FeatureGateStateEnabled indicates that the feature gate is enabled. FeatureGateStateEnabled FeatureGateState = "enabled" // FeatureGateStateDisabled indicates that the feature gate is disabled. FeatureGateStateDisabled FeatureGateState = "disabled" )
type GatewayConfigControlPlaneOptions ¶
type GatewayConfigControlPlaneOptions struct {
ControlPlaneOptions `json:",inline"`
}
GatewayConfigControlPlaneOptions contains the options for configuring ControlPlane resources that will be managed as part of the Gateway.
func (*GatewayConfigControlPlaneOptions) DeepCopy ¶
func (in *GatewayConfigControlPlaneOptions) DeepCopy() *GatewayConfigControlPlaneOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigControlPlaneOptions.
func (*GatewayConfigControlPlaneOptions) DeepCopyInto ¶
func (in *GatewayConfigControlPlaneOptions) DeepCopyInto(out *GatewayConfigControlPlaneOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GatewayConfigDataPlaneNetworkOptions ¶
type GatewayConfigDataPlaneNetworkOptions struct {
// Services indicates the configuration of Kubernetes Services needed for
// the topology of various forms of traffic (including ingress, etc.) to
// and from the DataPlane.
//
// +optional
Services *GatewayConfigDataPlaneServices `json:"services,omitempty"`
}
GatewayConfigDataPlaneNetworkOptions defines network related options for a DataPlane.
+apireference:kgo:include
func (*GatewayConfigDataPlaneNetworkOptions) DeepCopy ¶
func (in *GatewayConfigDataPlaneNetworkOptions) DeepCopy() *GatewayConfigDataPlaneNetworkOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigDataPlaneNetworkOptions.
func (*GatewayConfigDataPlaneNetworkOptions) DeepCopyInto ¶
func (in *GatewayConfigDataPlaneNetworkOptions) DeepCopyInto(out *GatewayConfigDataPlaneNetworkOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GatewayConfigDataPlaneOptions ¶
type GatewayConfigDataPlaneOptions struct {
// +optional
Deployment operatorv1beta1.DataPlaneDeploymentOptions `json:"deployment"`
// +optional
Network GatewayConfigDataPlaneNetworkOptions `json:"network"`
// +optional
Resources *GatewayConfigDataPlaneResources `json:"resources,omitempty"`
// PluginsToInstall is a list of KongPluginInstallation resources that
// will be installed and available in the Gateways (DataPlanes) that
// use this GatewayConfig.
//
// +optional
PluginsToInstall []NamespacedName `json:"pluginsToInstall,omitempty"`
}
GatewayConfigDataPlaneOptions indicates the specific information needed to configure and deploy a DataPlane object.
+apireference:kgo:include
func (*GatewayConfigDataPlaneOptions) DeepCopy ¶
func (in *GatewayConfigDataPlaneOptions) DeepCopy() *GatewayConfigDataPlaneOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigDataPlaneOptions.
func (*GatewayConfigDataPlaneOptions) DeepCopyInto ¶
func (in *GatewayConfigDataPlaneOptions) DeepCopyInto(out *GatewayConfigDataPlaneOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GatewayConfigDataPlaneResources ¶
type GatewayConfigDataPlaneResources struct {
// PodDisruptionBudget is the configuration for the PodDisruptionBudget
// that will be created for the DataPlane.
//
// +optional
PodDisruptionBudget *PodDisruptionBudget `json:"podDisruptionBudget,omitempty"`
}
GatewayConfigDataPlaneResources defines the resources that will be created and managed for Gateway's DataPlane.
+apireference:kgo:include
func (*GatewayConfigDataPlaneResources) DeepCopy ¶
func (in *GatewayConfigDataPlaneResources) DeepCopy() *GatewayConfigDataPlaneResources
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigDataPlaneResources.
func (*GatewayConfigDataPlaneResources) DeepCopyInto ¶
func (in *GatewayConfigDataPlaneResources) DeepCopyInto(out *GatewayConfigDataPlaneResources)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GatewayConfigDataPlaneServices ¶
type GatewayConfigDataPlaneServices struct {
// Ingress is the Kubernetes Service that will be used to expose ingress
// traffic for the DataPlane. Here you can determine whether the DataPlane
// will be exposed outside the cluster (e.g. using a LoadBalancer type
// Services) or only internally (e.g. ClusterIP), and inject any additional
// annotations you need on the service (for instance, if you need to
// influence a cloud provider LoadBalancer configuration).
//
// +optional
Ingress *GatewayConfigServiceOptions `json:"ingress,omitempty"`
}
GatewayConfigDataPlaneServices contains Services related DataPlane configuration.
+apireference:kgo:include
func (*GatewayConfigDataPlaneServices) DeepCopy ¶
func (in *GatewayConfigDataPlaneServices) DeepCopy() *GatewayConfigDataPlaneServices
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigDataPlaneServices.
func (*GatewayConfigDataPlaneServices) DeepCopyInto ¶
func (in *GatewayConfigDataPlaneServices) DeepCopyInto(out *GatewayConfigDataPlaneServices)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GatewayConfigServiceOptions ¶
type GatewayConfigServiceOptions struct {
ServiceOptions `json:",inline"`
}
GatewayConfigServiceOptions is used to includes options to customize the ingress service, such as the annotations.
+apireference:kgo:include
func (*GatewayConfigServiceOptions) DeepCopy ¶
func (in *GatewayConfigServiceOptions) DeepCopy() *GatewayConfigServiceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigServiceOptions.
func (*GatewayConfigServiceOptions) DeepCopyInto ¶
func (in *GatewayConfigServiceOptions) DeepCopyInto(out *GatewayConfigServiceOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GatewayConfiguration ¶
type GatewayConfiguration struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the desired state of GatewayConfiguration.
Spec GatewayConfigurationSpec `json:"spec,omitempty"`
// Status defines the observed state of GatewayConfiguration.
//
// +optional
Status GatewayConfigurationStatus `json:"status,omitempty"`
}
GatewayConfiguration is the Schema for the gatewayconfigurations API.
+genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:storageversion +apireference:kgo:include +kong:channels=gateway-operator +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=kogc,categories=kong;all
func (*GatewayConfiguration) DeepCopy ¶
func (in *GatewayConfiguration) DeepCopy() *GatewayConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfiguration.
func (*GatewayConfiguration) DeepCopyInto ¶
func (in *GatewayConfiguration) DeepCopyInto(out *GatewayConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GatewayConfiguration) DeepCopyObject ¶
func (in *GatewayConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*GatewayConfiguration) GetConditions ¶
func (g *GatewayConfiguration) GetConditions() []metav1.Condition
GetConditions retrieves the GatewayConfiguration Status Condition
func (*GatewayConfiguration) GetExtensions ¶
func (g *GatewayConfiguration) GetExtensions() []commonv1alpha1.ExtensionRef
GetExtensions retrieves the GatewayConfiguration Extensions
func (*GatewayConfiguration) SetConditions ¶
func (g *GatewayConfiguration) SetConditions(conditions []metav1.Condition)
SetConditions sets the GatewayConfiguration Status Condition
type GatewayConfigurationList ¶
type GatewayConfigurationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []GatewayConfiguration `json:"items"`
}
GatewayConfigurationList contains a list of GatewayConfiguration
+apireference:kgo:include +kubebuilder:object:root=true
func (*GatewayConfigurationList) DeepCopy ¶
func (in *GatewayConfigurationList) DeepCopy() *GatewayConfigurationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigurationList.
func (*GatewayConfigurationList) DeepCopyInto ¶
func (in *GatewayConfigurationList) DeepCopyInto(out *GatewayConfigurationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GatewayConfigurationList) DeepCopyObject ¶
func (in *GatewayConfigurationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GatewayConfigurationSpec ¶
type GatewayConfigurationSpec struct {
// DataPlaneOptions is the specification for configuration
// overrides for DataPlane resources that will be created for the Gateway.
//
// +optional
DataPlaneOptions *GatewayConfigDataPlaneOptions `json:"dataPlaneOptions,omitempty"`
// ControlPlaneOptions is the specification for configuration
// overrides for ControlPlane resources that will be managed as part of the Gateway.
//
// +optional
ControlPlaneOptions *GatewayConfigControlPlaneOptions `json:"controlPlaneOptions,omitempty"`
// Extensions provide additional or replacement features for the Gateway
// resource to influence or enhance functionality.
// NOTE: currently, there are only 2 extensions that can be attached
// at the Gateway level (KonnectExtension, DataPlaneMetricsExtension),
// so the amount of extensions is limited to 2.
//
// +optional
// +kubebuilder:validation:MinItems=0
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:XValidation:message="Extension not allowed for GatewayConfiguration",rule="self.all(e, (e.group == 'konnect.konghq.com' && e.kind == 'KonnectExtension') || (e.group == 'gateway-operator.konghq.com' && e.kind == 'DataPlaneMetricsExtension'))"
Extensions []commonv1alpha1.ExtensionRef `json:"extensions,omitempty"`
}
GatewayConfigurationSpec defines the desired state of GatewayConfiguration
+apireference:kgo:include
func (*GatewayConfigurationSpec) DeepCopy ¶
func (in *GatewayConfigurationSpec) DeepCopy() *GatewayConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigurationSpec.
func (*GatewayConfigurationSpec) DeepCopyInto ¶
func (in *GatewayConfigurationSpec) DeepCopyInto(out *GatewayConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GatewayConfigurationStatus ¶
type GatewayConfigurationStatus struct {
// Conditions describe the current conditions of the GatewayConfigurationStatus.
//
// +optional
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MaxItems=8
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
GatewayConfigurationStatus defines the observed state of GatewayConfiguration
+apireference:kgo:include
func (*GatewayConfigurationStatus) DeepCopy ¶
func (in *GatewayConfigurationStatus) DeepCopy() *GatewayConfigurationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigurationStatus.
func (*GatewayConfigurationStatus) DeepCopyInto ¶
func (in *GatewayConfigurationStatus) DeepCopyInto(out *GatewayConfigurationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespacedName ¶
type NamespacedName struct {
// Name is the name of the resource.
//
// +required
Name string `json:"name"`
// Namespace is the namespace of the resource.
//
// +optional
Namespace string `json:"namespace"`
}
NamespacedName is a resource identified by name and optional namespace.
+apireference:kgo:include
func (*NamespacedName) DeepCopy ¶
func (in *NamespacedName) DeepCopy() *NamespacedName
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespacedName.
func (*NamespacedName) DeepCopyInto ¶
func (in *NamespacedName) DeepCopyInto(out *NamespacedName)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodDisruptionBudget ¶
type PodDisruptionBudget struct {
// Spec defines the specification of the PodDisruptionBudget.
// Selector is managed by the controller and cannot be set by the user.
Spec PodDisruptionBudgetSpec `json:"spec,omitempty"`
}
PodDisruptionBudget defines the configuration for the PodDisruptionBudget.
+apireference:kgo:include
func (*PodDisruptionBudget) DeepCopy ¶
func (in *PodDisruptionBudget) DeepCopy() *PodDisruptionBudget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudget.
func (*PodDisruptionBudget) DeepCopyInto ¶
func (in *PodDisruptionBudget) DeepCopyInto(out *PodDisruptionBudget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodDisruptionBudgetSpec ¶
type PodDisruptionBudgetSpec struct {
// An eviction is allowed if at least "minAvailable" pods selected by
// "selector" will still be available after the eviction, i.e. even in the
// absence of the evicted pod. So for example you can prevent all voluntary
// evictions by specifying "100%".
//
// +optional
MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty" protobuf:"bytes,1,opt,name=minAvailable"`
// "selector" are unavailable after the eviction, i.e. even in absence of
// the evicted pod. For example, one can prevent all voluntary evictions
// by specifying 0. This is a mutually exclusive setting with "minAvailable".
//
// +optional
MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,3,opt,name=maxUnavailable"`
// UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods
// should be considered for eviction. Current implementation considers healthy pods,
// as pods that have status.conditions item with type="Ready",status="True".
//
// Valid policies are IfHealthyBudget and AlwaysAllow.
// If no policy is specified, the default behavior will be used,
// which corresponds to the IfHealthyBudget policy.
//
// IfHealthyBudget policy means that running pods (status.phase="Running"),
// but not yet healthy can be evicted only if the guarded application is not
// disrupted (status.currentHealthy is at least equal to status.desiredHealthy).
// Healthy pods will be subject to the PDB for eviction.
//
// AlwaysAllow policy means that all running pods (status.phase="Running"),
// but not yet healthy are considered disrupted and can be evicted regardless
// of whether the criteria in a PDB is met. This means perspective running
// pods of a disrupted application might not get a chance to become healthy.
// Healthy pods will be subject to the PDB for eviction.
//
// Additional policies may be added in the future.
// Clients making eviction decisions should disallow eviction of unhealthy pods
// if they encounter an unrecognized policy in this field.
//
// This field is beta-level. The eviction API uses this field when
// the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).
//
// +optional
UnhealthyPodEvictionPolicy *policyv1.UnhealthyPodEvictionPolicyType `json:"unhealthyPodEvictionPolicy,omitempty" protobuf:"bytes,4,opt,name=unhealthyPodEvictionPolicy"`
}
PodDisruptionBudgetSpec defines the specification of a PodDisruptionBudget.
+kubebuilder:validation:XValidation:message="You can specify only one of maxUnavailable and minAvailable in a single PodDisruptionBudgetSpec.",rule="(has(self.minAvailable) && !has(self.maxUnavailable)) || (!has(self.minAvailable) && has(self.maxUnavailable))" +apireference:kgo:include
func (*PodDisruptionBudgetSpec) DeepCopy ¶
func (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec.
func (*PodDisruptionBudgetSpec) DeepCopyInto ¶
func (in *PodDisruptionBudgetSpec) DeepCopyInto(out *PodDisruptionBudgetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceOptions ¶
type ServiceOptions struct {
// Type determines how the Service is exposed.
// Defaults to `LoadBalancer`.
//
// `ClusterIP` allocates a cluster-internal IP address for load-balancing
// to endpoints.
//
// `NodePort` exposes the Service on each Node's IP at a static port (the NodePort).
// To make the node port available, Kubernetes sets up a cluster IP address,
// the same as if you had requested a Service of type: ClusterIP.
//
// `LoadBalancer` builds on NodePort and creates an external load-balancer
// (if supported in the current cloud) which routes to the same endpoints
// as the clusterIP.
//
// More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
//
// +optional
// +kubebuilder:default=LoadBalancer
// +kubebuilder:validation:Enum=LoadBalancer;NodePort;ClusterIP
Type corev1.ServiceType `json:"type,omitempty" protobuf:"bytes,4,opt,name=type,casttype=ServiceType"`
// Name defines the name of the service.
// If Name is empty, the controller will generate a service name from the owning object.
//
// +optional
Name *string `json:"name,omitempty"`
// Annotations is an unstructured key value map stored with a resource that may be
// set by external tools to store and retrieve arbitrary metadata. They are not
// queryable and should be preserved when modifying objects.
//
// More info: http://kubernetes.io/docs/user-guide/annotations
//
// +optional
Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"`
// ExternalTrafficPolicy describes how nodes distribute service traffic they
// receive on one of the Service's "externally-facing" addresses (NodePorts,
// ExternalIPs, and LoadBalancer IPs). If set to "Local", the proxy will configure
// the service in a way that assumes that external load balancers will take care
// of balancing the service traffic between nodes, and so each node will deliver
// traffic only to the node-local endpoints of the service, without masquerading
// the client source IP. (Traffic mistakenly sent to a node with no endpoints will
// be dropped.) The default value, "Cluster", uses the standard behavior of
// routing to all endpoints evenly (possibly modified by topology and other
// features). Note that traffic sent to an External IP or LoadBalancer IP from
// within the cluster will always get "Cluster" semantics, but clients sending to
// a NodePort from within the cluster may need to take traffic policy into account
// when picking a node.
//
// More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
//
// +optional
// +kubebuilder:validation:Enum=Cluster;Local
ExternalTrafficPolicy corev1.ServiceExternalTrafficPolicy `json:"externalTrafficPolicy,omitempty"`
}
ServiceOptions is used to includes options to customize the ingress service, such as the annotations. +apireference:kgo:include +kubebuilder:validation:XValidation:message="Cannot set ExternalTrafficPolicy for ClusterIP service.", rule="has(self.type) && self.type == 'ClusterIP' ? !has(self.externalTrafficPolicy) : true"
func (*ServiceOptions) DeepCopy ¶
func (in *ServiceOptions) DeepCopy() *ServiceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceOptions.
func (*ServiceOptions) DeepCopyInto ¶
func (in *ServiceOptions) DeepCopyInto(out *ServiceOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.