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.