Documentation
¶
Overview ¶
Package v2beta1 contains API Schema definitions for the gateway-operator.konghq.com v2beta1 API group. +kubebuilder:object:generate=true +groupName=gateway-operator.konghq.com +groupGoName=GatewayOperator
Package v2beta1 contains API Schema definitions for the gateway-operator.konghq.com v2beta1 API group +kubebuilder:object:generate=true +groupName=gateway-operator.konghq.com
Index ¶
- Constants
- Variables
- func ControlPlaneGVR() schema.GroupVersionResource
- func GatewayConfigurationGVR() schema.GroupVersionResource
- type BlueGreenStrategy
- type ConfigDumpState
- 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) Hub()
- func (c *ControlPlane) SetConditions(conditions []metav1.Condition)
- type ControlPlaneCombinedServicesFromDifferentHTTPRoutesState
- type ControlPlaneConfigDump
- type ControlPlaneController
- type ControlPlaneDataPlaneStatus
- type ControlPlaneDataPlaneSync
- type ControlPlaneDataPlaneTarget
- type ControlPlaneDataPlaneTargetRef
- type ControlPlaneDataPlaneTargetType
- type ControlPlaneDrainSupportState
- type ControlPlaneFallbackConfiguration
- type ControlPlaneFallbackConfigurationState
- type ControlPlaneFeatureGate
- type ControlPlaneFilterForObjectType
- type ControlPlaneGatewayDiscovery
- type ControlPlaneK8sCache
- type ControlPlaneKonnectConsumersSyncState
- type ControlPlaneKonnectLicensing
- type ControlPlaneKonnectLicensingState
- type ControlPlaneKonnectOptions
- type ControlPlaneList
- type ControlPlaneObjectFilters
- type ControlPlaneOptions
- type ControlPlaneReverseSyncState
- type ControlPlaneSpec
- type ControlPlaneStatus
- type ControlPlaneTranslationOptions
- type ControllerState
- type DataPlaneDeploymentOptions
- type DeploymentOptions
- 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) Hub()
- func (g *GatewayConfiguration) SetConditions(conditions []metav1.Condition)
- type GatewayConfigurationList
- type GatewayConfigurationListenerOptions
- type GatewayConfigurationSpec
- type GatewayConfigurationStatus
- type GatewayConfigurationTargetKind
- type HorizontalScaling
- type NamespacedName
- type PodDisruptionBudget
- type PodDisruptionBudgetSpec
- type Promotion
- type PromotionStrategy
- type Rollout
- type RolloutResourcePlan
- type RolloutResourcePlanDeployment
- type RolloutResources
- type RolloutStrategy
- type Scaling
- type ServiceOptions
- type WatchNamespaces
- type WatchNamespacesType
Constants ¶
const ( // DataPlanePromoteWhenReadyAnnotationKey is the annotation key which can be used // to annotate a DataPlane object to signal that the live resources should be // promoted and replace the preview resources. It is used in conjunction with // the BreakBeforePromotion promotion strategy. // It has to be set to `true` to take effect. Once the operator detects the annotation, it will proceed with the // promotion and remove the annotation. DataPlanePromoteWhenReadyAnnotationKey = "gateway-operator.konghq.com/promote-when-ready" // DataPlanePromoteWhenReadyAnnotationTrue is the annotation value that needs to be set to the DataPlane's // DataPlanePromoteWhenReadyAnnotationKey annotation to signal that the new resources should be promoted. DataPlanePromoteWhenReadyAnnotationTrue = "true" )
const DefaultControlPlaneInitialCacheSyncDelay = 5 * time.Second
DefaultControlPlaneInitialCacheSyncDelay defines the default initial delay to wait for the Kubernetes object caches to be synced.
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "gateway-operator.konghq.com", Version: "v2beta1"} // 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.
func GatewayConfigurationGVR ¶
func GatewayConfigurationGVR() schema.GroupVersionResource
GatewayConfigurationGVR returns current package GatewayConfiguration GVR.
Types ¶
type BlueGreenStrategy ¶
type BlueGreenStrategy struct { // Promotion defines how the operator handles promotion of resources. // // +optional // +kubebuilder:default={"strategy":"BreakBeforePromotion"} Promotion *Promotion `json:"promotion,omitempty"` // Resources controls what happens to operator managed resources during or // after a rollout. // // +optional // +kubebuilder:default={"plan":{"deployment":"ScaleDownOnPromotionScaleUpOnRollout"}} Resources *RolloutResources `json:"resources,omitempty"` }
BlueGreenStrategy defines the Blue Green deployment strategy. +apireference:kgo:include
func (*BlueGreenStrategy) DeepCopy ¶
func (in *BlueGreenStrategy) DeepCopy() *BlueGreenStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueGreenStrategy.
func (*BlueGreenStrategy) DeepCopyInto ¶
func (in *BlueGreenStrategy) DeepCopyInto(out *BlueGreenStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigDumpState ¶
type ConfigDumpState string
ConfigDumpState defines the state of configuration dump.
const ( // ConfigDumpStateEnabled indicates that configuration dump is enabled. ConfigDumpStateEnabled ConfigDumpState = "enabled" // ConfigDumpStateDisabled indicates that the configuration dump is disabled. ConfigDumpStateDisabled ConfigDumpState = "disabled" )
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 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Age" +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) Hub ¶
func (c *ControlPlane) Hub()
Hub marks the ControlPlane type as a hub type (storageversion) for conversion webhook.
func (*ControlPlane) SetConditions ¶
func (c *ControlPlane) SetConditions(conditions []metav1.Condition)
SetConditions sets the ControlPlane Status Conditions
type ControlPlaneCombinedServicesFromDifferentHTTPRoutesState ¶
type ControlPlaneCombinedServicesFromDifferentHTTPRoutesState string
ControlPlaneCombinedServicesFromDifferentHTTPRoutesState defines the state of the feature that allows the ControlPlane to combine services from different HTTPRoutes.
const ( // ControlPlaneCombinedServicesFromDifferentHTTPRoutesStateEnabled indicates that the feature is enabled. ControlPlaneCombinedServicesFromDifferentHTTPRoutesStateEnabled ControlPlaneCombinedServicesFromDifferentHTTPRoutesState = "enabled" // ControlPlaneCombinedServicesFromDifferentHTTPRoutesStateDisabled indicates that the feature is disabled. ControlPlaneCombinedServicesFromDifferentHTTPRoutesStateDisabled ControlPlaneCombinedServicesFromDifferentHTTPRoutesState = "disabled" )
type ControlPlaneConfigDump ¶
type ControlPlaneConfigDump struct { // When State is enabled, Operator will dump the translated Kong configuration by it from a diagnostics server. // // +required // +kubebuilder:validation:Enum=enabled;disabled // +kubebuilder:default="disabled" State ConfigDumpState `json:"state"` // When DumpSensitive is enabled, the configuration will be dumped unchanged, including sensitive parts like private keys and credentials. // When DumpSensitive is disabled, the sensitive configuration parts like private keys and credentials are redacted. // // +required // +kubebuilder:validation:Enum=enabled;disabled // +kubebuilder:default="disabled" DumpSensitive ConfigDumpState `json:"dumpSensitive"` }
ControlPlaneConfigDump defines the options for dumping translated Kong configuration from a diagnostics server.
+apireference:kgo:include +kubebuilder:validation:XValidation:message="Cannot enable dumpSensitive when state is disabled",rule="self.state == 'enabled' || self.dumpSensitive == 'disabled'"
func (*ControlPlaneConfigDump) DeepCopy ¶
func (in *ControlPlaneConfigDump) DeepCopy() *ControlPlaneConfigDump
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneConfigDump.
func (*ControlPlaneConfigDump) DeepCopyInto ¶
func (in *ControlPlaneConfigDump) DeepCopyInto(out *ControlPlaneConfigDump)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ControlPlaneDataPlaneStatus ¶
type ControlPlaneDataPlaneStatus struct { // Name is the name of the DataPlane. // // +required // +kubebuilder:validation:MinLength=1 Name string `json:"name"` }
ControlPlaneDataPlaneStatus defines the status of the DataPlane that the ControlPlane is responsible for configuring.
func (*ControlPlaneDataPlaneStatus) DeepCopy ¶
func (in *ControlPlaneDataPlaneStatus) DeepCopy() *ControlPlaneDataPlaneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneDataPlaneStatus.
func (*ControlPlaneDataPlaneStatus) DeepCopyInto ¶
func (in *ControlPlaneDataPlaneStatus) DeepCopyInto(out *ControlPlaneDataPlaneStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneDataPlaneSync ¶
type ControlPlaneDataPlaneSync struct { // ReverseSync sends configuration to DataPlane (Kong Gateway) even if // the configuration checksum has not changed since previous update. // // +optional // +kubebuilder:default=disabled ReverseSync *ControlPlaneReverseSyncState `json:"reverseSync,omitempty"` // Interval is the interval between two rounds of syncing Kong configuration with dataplanes. // // +optional Interval *metav1.Duration `json:"interval,omitempty"` // Timeout is the timeout of a single run of syncing Kong configuration with dataplanes. // // +optional Timeout *metav1.Duration `json:"timeout,omitempty"` }
ControlPlaneDataPlaneSync defines the configuration for syncing Kong configuration to the DataPlane.
+apireference:kgo:include
func (*ControlPlaneDataPlaneSync) DeepCopy ¶
func (in *ControlPlaneDataPlaneSync) DeepCopy() *ControlPlaneDataPlaneSync
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneDataPlaneSync.
func (*ControlPlaneDataPlaneSync) DeepCopyInto ¶
func (in *ControlPlaneDataPlaneSync) DeepCopyInto(out *ControlPlaneDataPlaneSync)
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 ControlPlaneDrainSupportState ¶
type ControlPlaneDrainSupportState string
ControlPlaneDrainSupportState defines the state of the feature that allows the ControlPlane to include terminating endpoints in Kong upstreams with weight=0 for graceful connection draining.
const ( // ControlPlaneDrainSupportStateEnabled indicates that the feature is enabled. ControlPlaneDrainSupportStateEnabled ControlPlaneDrainSupportState = "enabled" // ControlPlaneDrainSupportStateDisabled indicates that the feature is disabled. ControlPlaneDrainSupportStateDisabled ControlPlaneDrainSupportState = "disabled" )
type ControlPlaneFallbackConfiguration ¶
type ControlPlaneFallbackConfiguration struct { // UseLastValidConfig indicates whether the ControlPlane should use the last valid configuration // when the current configuration is invalid. // // +optional // +kubebuilder:default=enabled // +kubebuilder:validation:Enum=enabled;disabled UseLastValidConfig *ControlPlaneFallbackConfigurationState `json:"useLastValidConfig,omitempty"` }
ControlPlaneFallbackConfiguration defines the fallback configuration options for the ControlPlane.
func (*ControlPlaneFallbackConfiguration) DeepCopy ¶
func (in *ControlPlaneFallbackConfiguration) DeepCopy() *ControlPlaneFallbackConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneFallbackConfiguration.
func (*ControlPlaneFallbackConfiguration) DeepCopyInto ¶
func (in *ControlPlaneFallbackConfiguration) DeepCopyInto(out *ControlPlaneFallbackConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneFallbackConfigurationState ¶
type ControlPlaneFallbackConfigurationState string
ControlPlaneFallbackConfigurationState defines the state of the fallback configuration feature.
const ( // ControlPlaneFallbackConfigurationStateEnabled indicates that the fallback configuration is enabled. ControlPlaneFallbackConfigurationStateEnabled ControlPlaneFallbackConfigurationState = "enabled" // ControlPlaneFallbackConfigurationStateDisabled indicates that the fallback configuration is disabled. ControlPlaneFallbackConfigurationStateDisabled ControlPlaneFallbackConfigurationState = "disabled" )
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 ControlPlaneFilterForObjectType ¶
type ControlPlaneFilterForObjectType struct { // MatchLabels defines the labels that the object must match to get reconciled by the controller for the ControlPlane. // For example, if `secrets.matchLabels` is `{"label1":"val1","label2":"val2"}`, // only secrets with labels `label1=val1` and `label2=val2` are reconciled. // // +optional // +kubebuilder:validation:MaxProperties=8 // +kubebuilder:validation:XValidation:message="Minimum length of key in matchLabels is 1",rule="self.all(key,key.size() >= 1)" // +kubebuilder:validation:XValidation:message="Maximum length of value in matchLabels is 63",rule="self.all(key,self[key].size() <= 63)" MatchLabels map[string]string `json:"matchLabels,omitempty"` }
ControlPlaneFilterForObjectType defines the filters for a certain type of object.
func (*ControlPlaneFilterForObjectType) DeepCopy ¶
func (in *ControlPlaneFilterForObjectType) DeepCopy() *ControlPlaneFilterForObjectType
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneFilterForObjectType.
func (*ControlPlaneFilterForObjectType) DeepCopyInto ¶
func (in *ControlPlaneFilterForObjectType) DeepCopyInto(out *ControlPlaneFilterForObjectType)
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 ControlPlaneK8sCache ¶
type ControlPlaneK8sCache struct { // InitSyncDuration defines the initial delay to wait for Kubernetes object caches to be synced before the initial configuration. // If omitted, the default value (5s) is used. // // +optional InitSyncDuration *metav1.Duration `json:"initSyncDuration,omitempty"` }
ControlPlaneK8sCache defines the configuration related to Kubernetes object caches of the ControlPlane.
+apireference:kgo:include
func (*ControlPlaneK8sCache) DeepCopy ¶
func (in *ControlPlaneK8sCache) DeepCopy() *ControlPlaneK8sCache
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneK8sCache.
func (*ControlPlaneK8sCache) DeepCopyInto ¶
func (in *ControlPlaneK8sCache) DeepCopyInto(out *ControlPlaneK8sCache)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneKonnectConsumersSyncState ¶
type ControlPlaneKonnectConsumersSyncState string
ControlPlaneKonnectConsumersSyncState defines the state of consumer synchronization with Konnect.
const ( // ControlPlaneKonnectConsumersSyncStateEnabled indicates that consumer synchronization is enabled. ControlPlaneKonnectConsumersSyncStateEnabled ControlPlaneKonnectConsumersSyncState = "enabled" // ControlPlaneKonnectConsumersSyncStateDisabled indicates that consumer synchronization is disabled. ControlPlaneKonnectConsumersSyncStateDisabled ControlPlaneKonnectConsumersSyncState = "disabled" )
type ControlPlaneKonnectLicensing ¶
type ControlPlaneKonnectLicensing struct { // State indicates whether Konnect licensing is enabled. // // +optional // +kubebuilder:default=disabled // +kubebuilder:validation:Enum=enabled;disabled State *ControlPlaneKonnectLicensingState `json:"state,omitempty"` // InitialPollingPeriod is the initial polling period for license checks. // // +optional InitialPollingPeriod *metav1.Duration `json:"initialPollingPeriod,omitempty"` // PollingPeriod is the polling period for license checks. // // +optional PollingPeriod *metav1.Duration `json:"pollingPeriod,omitempty"` // StorageState indicates whether to store licenses fetched from Konnect // to Secrets locally to use them later when connection to Konnect is broken. // Only effective when State is set to enabled. // // +optional // +kubebuilder:default=enabled // +kubebuilder:validation:Enum=enabled;disabled StorageState *ControlPlaneKonnectLicensingState `json:"storageState,omitempty"` }
ControlPlaneKonnectLicensing defines the configuration for Konnect licensing.
+apireference:kgo:include +kubebuilder:validation:XValidation:message="initialPollingPeriod can only be set when licensing is enabled",rule="!has(self.initialPollingPeriod) || self.state == 'enabled'" +kubebuilder:validation:XValidation:message="pollingPeriod can only be set when licensing is enabled",rule="!has(self.pollingPeriod) || self.state == 'enabled'" +kubebuilder:validation:XValidation:message="storageState can only be set to enabled when licensing is enabled",rule="!has(self.storageState) || self.storageState == 'disabled' || self.state == 'enabled'"
func (*ControlPlaneKonnectLicensing) DeepCopy ¶
func (in *ControlPlaneKonnectLicensing) DeepCopy() *ControlPlaneKonnectLicensing
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneKonnectLicensing.
func (*ControlPlaneKonnectLicensing) DeepCopyInto ¶
func (in *ControlPlaneKonnectLicensing) DeepCopyInto(out *ControlPlaneKonnectLicensing)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneKonnectLicensingState ¶
type ControlPlaneKonnectLicensingState string
ControlPlaneKonnectLicensingState defines the state of Konnect licensing.
const ( // ControlPlaneKonnectLicensingStateEnabled indicates that Konnect licensing is enabled. ControlPlaneKonnectLicensingStateEnabled ControlPlaneKonnectLicensingState = "enabled" // ControlPlaneKonnectLicensingStateDisabled indicates that Konnect licensing is disabled. ControlPlaneKonnectLicensingStateDisabled ControlPlaneKonnectLicensingState = "disabled" )
type ControlPlaneKonnectOptions ¶
type ControlPlaneKonnectOptions struct { // ConsumersSync indicates whether consumer synchronization with Konnect is enabled. // // +optional // +kubebuilder:default=enabled // +kubebuilder:validation:Enum=enabled;disabled ConsumersSync *ControlPlaneKonnectConsumersSyncState `json:"consumersSync,omitempty"` // Licensing defines the configuration for Konnect licensing. // // +optional Licensing *ControlPlaneKonnectLicensing `json:"licensing,omitempty"` // NodeRefreshPeriod is the period for refreshing the node information in Konnect. // // +optional NodeRefreshPeriod *metav1.Duration `json:"nodeRefreshPeriod,omitempty"` // ConfigUploadPeriod is the period for uploading configuration to Konnect. // // +optional ConfigUploadPeriod *metav1.Duration `json:"configUploadPeriod,omitempty"` }
ControlPlaneKonnectOptions defines the Konnect-related configuration options for the ControlPlane.
+apireference:kgo:include
func (*ControlPlaneKonnectOptions) DeepCopy ¶
func (in *ControlPlaneKonnectOptions) DeepCopy() *ControlPlaneKonnectOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneKonnectOptions.
func (*ControlPlaneKonnectOptions) DeepCopyInto ¶
func (in *ControlPlaneKonnectOptions) DeepCopyInto(out *ControlPlaneKonnectOptions)
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 ControlPlaneObjectFilters ¶
type ControlPlaneObjectFilters struct { // Secrets defines the filters for watched secrets. // // +optional Secrets *ControlPlaneFilterForObjectType `json:"secrets,omitempty"` // ConfigMaps defines the filters for watched config maps. // // +optional ConfigMaps *ControlPlaneFilterForObjectType `json:"configMaps,omitempty"` }
ControlPlaneObjectFilters defines filters to limit watched objects by the controllers.
func (*ControlPlaneObjectFilters) DeepCopy ¶
func (in *ControlPlaneObjectFilters) DeepCopy() *ControlPlaneObjectFilters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneObjectFilters.
func (*ControlPlaneObjectFilters) DeepCopyInto ¶
func (in *ControlPlaneObjectFilters) DeepCopyInto(out *ControlPlaneObjectFilters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 *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"` // Cache defines the configuration related to the kubernetes object caches. // // +optional Cache *ControlPlaneK8sCache `json:"cache,omitempty"` // DataPlaneSync defines the configuration for syncing Kong configuration to the DataPlane. // // +optional DataPlaneSync *ControlPlaneDataPlaneSync `json:"dataplaneSync,omitempty"` // Translation defines the configuration for translating Kong configuration. // // +optional Translation *ControlPlaneTranslationOptions `json:"translation,omitempty"` // ConfigDump defines the options for dumping generated Kong configuration from a diagnostics server. // // +optional ConfigDump *ControlPlaneConfigDump `json:"configDump,omitempty"` // ObjectFilters defines the filters to limit watched objects by the controllers. // // +optional ObjectFilters *ControlPlaneObjectFilters `json:"objectFilters,omitempty"` // Konnect defines the Konnect-related configuration options for the ControlPlane. // // +optional Konnect *ControlPlaneKonnectOptions `json:"konnect,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 ControlPlaneReverseSyncState ¶
type ControlPlaneReverseSyncState string
ControlPlaneReverseSyncState defines the state of the reverse sync feature.
const ( // ControlPlaneReverseSyncStateEnabled indicates that reverse sync is enabled. ControlPlaneReverseSyncStateEnabled ControlPlaneReverseSyncState = "enabled" // ControlPlaneReverseSyncStateDisabled indicates that reverse sync is disabled. ControlPlaneReverseSyncStateDisabled ControlPlaneReverseSyncState = "disabled" )
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 +kubebuilder:validation:XValidation:message="When dataplane target is of type 'ref' the ingressClass must be set",rule="self.dataplane.type != 'ref' || has(self.ingressClass)"
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 // +patchStrategy=merge // +patchMergeKey=type // +kubebuilder:validation:MaxItems=8 // +kubebuilder:default={{type: "Provisioned", status: "Unknown", reason:"NotReconciled", message:"Waiting for controller", lastTransitionTime: "1970-01-01T00:00:00Z"}} Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` // DataPlane describes the status of the DataPlane that the ControlPlane is // responsible for configuring. // // +optional DataPlane *ControlPlaneDataPlaneStatus `json:"dataPlane,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 ControlPlaneTranslationOptions ¶
type ControlPlaneTranslationOptions struct { // CombinedServicesFromDifferentHTTPRoutes indicates whether the ControlPlane should // combine services from different HTTPRoutes into a single Kong DataPlane service. // // +optional // +kubebuilder:default=enabled // +kubebuilder:validation:Enum=enabled;disabled CombinedServicesFromDifferentHTTPRoutes *ControlPlaneCombinedServicesFromDifferentHTTPRoutesState `json:"combinedServicesFromDifferentHTTPRoutes,omitempty"` // FallbackConfiguration defines the fallback configuration options for the ControlPlane. // // +optional FallbackConfiguration *ControlPlaneFallbackConfiguration `json:"fallbackConfiguration,omitempty"` // DrainSupport defines the configuration for the ControlPlane to include // terminating endpoints in Kong upstreams with weight=0 for graceful connection draining. // // +optional // +kubebuilder:default=enabled // +kubebuilder:validation:Enum=enabled;disabled DrainSupport *ControlPlaneDrainSupportState `json:"drainSupport,omitempty"` }
ControlPlaneTranslationOptions defines the configuration for translating cluster resources into Kong configuration.
func (*ControlPlaneTranslationOptions) DeepCopy ¶
func (in *ControlPlaneTranslationOptions) DeepCopy() *ControlPlaneTranslationOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneTranslationOptions.
func (*ControlPlaneTranslationOptions) DeepCopyInto ¶
func (in *ControlPlaneTranslationOptions) DeepCopyInto(out *ControlPlaneTranslationOptions)
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 controller.
const ( // ControllerStateEnabled indicates that the controller is enabled. ControllerStateEnabled ControllerState = "enabled" // ControllerStateDisabled indicates that the controller is disabled. ControllerStateDisabled ControllerState = "disabled" )
type DataPlaneDeploymentOptions ¶
type DataPlaneDeploymentOptions struct { // Rollout describes a custom rollout strategy. // // +optional Rollout *Rollout `json:"rollout,omitempty"` DeploymentOptions `json:",inline"` }
DataPlaneDeploymentOptions specifies options for the Deployments (as in the Kubernetes resource "Deployment") which are created and managed for the DataPlane resource. +apireference:kgo:include
func (*DataPlaneDeploymentOptions) DeepCopy ¶
func (in *DataPlaneDeploymentOptions) DeepCopy() *DataPlaneDeploymentOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneDeploymentOptions.
func (*DataPlaneDeploymentOptions) DeepCopyInto ¶
func (in *DataPlaneDeploymentOptions) DeepCopyInto(out *DataPlaneDeploymentOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeploymentOptions ¶
type DeploymentOptions struct { // Replicas describes the number of desired pods. // This is a pointer to distinguish between explicit zero and not specified. // This is effectively shorthand for setting a scaling minimum and maximum // to the same value. This field and the scaling field are mutually exclusive: // You can only configure one or the other. // // +optional Replicas *int32 `json:"replicas,omitempty"` // Scaling defines the scaling options for the deployment. // // +optional Scaling *Scaling `json:"scaling,omitempty"` // PodTemplateSpec defines PodTemplateSpec for Deployment's pods. // It's being applied on top of the generated Deployments using // [StrategicMergePatch](https://pkg.go.dev/k8s.io/apimachinery/pkg/util/strategicpatch#StrategicMergePatch). // // +optional PodTemplateSpec *corev1.PodTemplateSpec `json:"podTemplateSpec,omitempty"` }
DeploymentOptions is a shared type used on objects to indicate that their configuration results in a Deployment which is managed by the Operator and includes options for managing Deployments such as the number of replicas or pod options like container image and resource requirements. version, as well as Env variable overrides.
+apireference:kgo:include
func (*DeploymentOptions) DeepCopy ¶
func (in *DeploymentOptions) DeepCopy() *DeploymentOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentOptions.
func (*DeploymentOptions) DeepCopyInto ¶
func (in *DeploymentOptions) DeepCopyInto(out *DeploymentOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 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 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Age"
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) Hub ¶
func (g *GatewayConfiguration) Hub()
Hub marks the GatewayConfiguration type as a hub type (storageversion) for conversion webhook.
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 GatewayConfigurationListenerOptions ¶
type GatewayConfigurationListenerOptions struct { // Name is the name of the Listener. // // +required Name gatewayv1.SectionName `json:"name"` // The port on each node on which this service is exposed when type is // NodePort or LoadBalancer. Usually assigned by the system. If a value is // specified, in-range, and not in use it will be used, otherwise the // operation will fail. If not specified, a port will be allocated if this // Service requires one. If this field is specified when creating a // Service which does not need it, creation will fail. This field will be // wiped when updating a Service to no longer need it (e.g. changing type // from NodePort to ClusterIP). // // More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport // // Can only be specified if type of the dataplane ingress service (specified in `spec.dataplaneOptions.network.services.ingress.type`) // is NodePort or LoadBalancer. // // +required // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=65535 NodePort int32 `json:"nodePort"` }
GatewayConfigurationListenerOptions specifies configuration overrides of defaults on certain listener of the Gateway. The name must match the name of a listener in the Gateway and the options are applied to the configuration of the matching listener. For example, if the option for listener "http" specified the nodeport number to 30080, The ingress service will expose the nodeport 30080 for the "http" listener of the Gateway. For listeners without an item in listener options of GatewayConfiguration, default configuration is used for it.
+apireference:kgo:include
func (*GatewayConfigurationListenerOptions) DeepCopy ¶
func (in *GatewayConfigurationListenerOptions) DeepCopy() *GatewayConfigurationListenerOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigurationListenerOptions.
func (*GatewayConfigurationListenerOptions) DeepCopyInto ¶
func (in *GatewayConfigurationListenerOptions) DeepCopyInto(out *GatewayConfigurationListenerOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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"` // ListenerOptions is the specification for configuration bound to specific listeners in the Gateway. // It will override the default configuration of control plane or data plane for the specified listener. // // +optional // +kubebuilder:validation:MaxItems=64 // +kubebuilder:validation:XValidation:message="Listener name must be unique within the Gateway",rule="self.all(l1, self.exists_one(l2, l1.name == l2.name))" // +kubebuilder:validation:XValidation:message="Nodeport must be unique within the Gateway if specified",rule="self.all(l1, !has(l1.nodePort) || self.exists_one(l2, l1.nodePort == l2.nodePort))" ListenersOptions []GatewayConfigurationListenerOptions `json:"listenersOptions,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
+kubebuilder:validation:XValidation:message="Can only specify listener's NodePort when the type of service for dataplane to receive ingress traffic ('spec.dataPlaneOptions.network.services.ingress') is NodePort or LoadBalancer",rule="(has(self.dataPlaneOptions) && has(self.dataPlaneOptions.network) && has(self.dataPlaneOptions.network.services) && has(self.dataPlaneOptions.network.services.ingress) && (self.dataPlaneOptions.network.services.ingress.type == 'LoadBalancer' || self.dataPlaneOptions.network.services.ingress.type == 'NodePort')) ? true : (!has(self.listenersOptions) || self.listenersOptions.all(l,!has(l.nodePort)))" +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 // +patchStrategy=merge // +patchMergeKey=type // +kubebuilder:validation:MaxItems=8 Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` }
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 GatewayConfigurationTargetKind ¶
type GatewayConfigurationTargetKind string
GatewayConfigurationTargetKind is an object kind that can be targeted for GatewayConfiguration attachment. +apireference:kgo:include
const ( // GatewayConfigurationTargetKindGateway is a target kind which indicates // that a Gateway resource is the target. GatewayConfigurationTargetKindGateway GatewayConfigurationTargetKind = "Gateway" // GatewayConfigurationTargetKindGatewayClass is a target kind which indicates // that a GatewayClass resource is the target. GatewayConfigurationTargetKindGatewayClass GatewayConfigurationTargetKind = "GatewayClass" )
type HorizontalScaling ¶
type HorizontalScaling struct { // minReplicas is the lower limit for the number of replicas to which the autoscaler // can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the // alpha feature gate HPAScaleToZero is enabled and at least one Object or External // metric is configured. Scaling is active as long as at least one metric value is // available. // +optional MinReplicas *int32 `json:"minReplicas,omitempty" protobuf:"varint,2,opt,name=minReplicas"` // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. // It cannot be less that minReplicas. // +required MaxReplicas int32 `json:"maxReplicas" protobuf:"varint,3,opt,name=maxReplicas"` // metrics contains the specifications for which to use to calculate the // desired replica count (the maximum replica count across all metrics will // be used). The desired replica count is calculated multiplying the // ratio between the target value and the current value by the current // number of pods. Ergo, metrics used must decrease as the pod count is // increased, and vice-versa. See the individual metric source types for // more information about how each type of metric must respond. // If not set, the default metric will be set to 80% average CPU utilization. // +listType=atomic // +optional Metrics []autoscalingv2.MetricSpec `json:"metrics,omitempty" protobuf:"bytes,4,rep,name=metrics"` // behavior configures the scaling behavior of the target // in both Up and Down directions (scaleUp and scaleDown fields respectively). // If not set, the default HPAScalingRules for scale up and scale down are used. // +optional Behavior *autoscalingv2.HorizontalPodAutoscalerBehavior `json:"behavior,omitempty" protobuf:"bytes,5,opt,name=behavior"` }
HorizontalScaling defines horizontal scaling options for the deployment. It holds all the options from the HorizontalPodAutoscalerSpec besides the ScaleTargetRef which is being controlled by the Operator. +apireference:kgo:include
func (*HorizontalScaling) DeepCopy ¶
func (in *HorizontalScaling) DeepCopy() *HorizontalScaling
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalScaling.
func (*HorizontalScaling) DeepCopyInto ¶
func (in *HorizontalScaling) DeepCopyInto(out *HorizontalScaling)
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 Promotion ¶
type Promotion struct { // Strategy indicates how you want the operator to handle the promotion of // the preview (green) resources (Deployments and Services) after all workflows // and tests succeed, OR if you even want it to break before performing // the promotion to allow manual inspection. // // +kubebuilder:validation:Enum=BreakBeforePromotion // +kubebuilder:default=BreakBeforePromotion // +optional Strategy *PromotionStrategy `json:"strategy,omitempty"` }
Promotion is a type that contains fields that define how the operator handles promotion of resources during a blue/green rollout. +apireference:kgo:include
func (*Promotion) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Promotion.
func (*Promotion) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PromotionStrategy ¶
type PromotionStrategy string
PromotionStrategy is the type of promotion strategy consts.
Allowed values:
- `BreakBeforePromotion` is a promotion strategy which will ensure all new resources are ready and then break, to enable manual inspection. The user must indicate manually when they want the promotion to continue. That can be done by annotating the `DataPlane` object with `"gateway-operator.konghq.com/promote-when-ready": "true"`.
+apireference:kgo:include
const ( // AutomaticPromotion indicates that once all workflows and tests have completed successfully, // the new resources should be promoted and replace the previous resources. AutomaticPromotion PromotionStrategy = "AutomaticPromotion" // BreakBeforePromotion is the same as AutomaticPromotion but with an added breakpoint // to enable manual inspection. // The user must indicate manually when they want the promotion to continue. // That can be done by annotating the DataPlane object with // `"gateway-operator.konghq.com/promote-when-ready": "true"`. BreakBeforePromotion PromotionStrategy = "BreakBeforePromotion" )
type Rollout ¶
type Rollout struct { // Strategy contains the deployment strategy for rollout. // // +required Strategy RolloutStrategy `json:"strategy"` }
Rollout defines options for rollouts. +apireference:kgo:include
func (*Rollout) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rollout.
func (*Rollout) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutResourcePlan ¶
type RolloutResourcePlan struct { // Deployment describes how the operator manages Deployments during and after a rollout. // // +kubebuilder:validation:Enum=ScaleDownOnPromotionScaleUpOnRollout // +kubebuilder:default=ScaleDownOnPromotionScaleUpOnRollout // +optional Deployment RolloutResourcePlanDeployment `json:"deployment,omitempty"` }
RolloutResourcePlan is a type that holds rollout resource plan related fields which control how the operator handles resources during and after a rollout. +apireference:kgo:include
func (*RolloutResourcePlan) DeepCopy ¶
func (in *RolloutResourcePlan) DeepCopy() *RolloutResourcePlan
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutResourcePlan.
func (*RolloutResourcePlan) DeepCopyInto ¶
func (in *RolloutResourcePlan) DeepCopyInto(out *RolloutResourcePlan)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutResourcePlanDeployment ¶
type RolloutResourcePlanDeployment string
RolloutResourcePlanDeployment is the type that holds the resource plan for managing the Deployment objects during and after a rollout.
Allowed values:
- `ScaleDownOnPromotionScaleUpOnRollout` is a rollout resource plan for Deployment which makes the operator scale down the Deployment to 0 when the rollout is not initiated by a spec change and then to scale it up when the rollout is initiated (the owner resource like a DataPlane is patched or updated).
+apireference:kgo:include
const ( // RolloutResourcePlanDeploymentScaleDownOnPromotionScaleUpOnRollout is a rollout // resource plan for Deployment which makes the operator scale down // the Deployment to 0 when the rollout is not initiated by a spec change // and then to scale it up when the rollout is initiated (the owner resource // like a DataPlane is patched or updated). RolloutResourcePlanDeploymentScaleDownOnPromotionScaleUpOnRollout RolloutResourcePlanDeployment = "ScaleDownOnPromotionScaleUpOnRollout" // RolloutResourcePlanDeploymentDeleteOnPromotionRecreateOnRollout which makes the operator delete the // Deployment the rollout is not initiated by a spec change and then to // re-create it when the rollout is initiated (the owner resource like // a DataPlane is patched or updated) RolloutResourcePlanDeploymentDeleteOnPromotionRecreateOnRollout RolloutResourcePlanDeployment = "DeleteOnPromotionRecreateOnRollout" )
type RolloutResources ¶
type RolloutResources struct { // Plan defines the resource plan for managing resources during and after a rollout. // // +optional // +kubebuilder:default={"deployment":"ScaleDownOnPromotionScaleUpOnRollout"} Plan RolloutResourcePlan `json:"plan,omitempty"` }
RolloutResources is the type which contains the fields which control how the operator manages the resources it manages during or after the rollout concludes. +apireference:kgo:include
func (*RolloutResources) DeepCopy ¶
func (in *RolloutResources) DeepCopy() *RolloutResources
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutResources.
func (*RolloutResources) DeepCopyInto ¶
func (in *RolloutResources) DeepCopyInto(out *RolloutResources)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutStrategy ¶
type RolloutStrategy struct { // BlueGreen holds the options specific for Blue Green Deployments. // // +required BlueGreen BlueGreenStrategy `json:"blueGreen"` }
RolloutStrategy holds the rollout strategy options. +apireference:kgo:include
func (*RolloutStrategy) DeepCopy ¶
func (in *RolloutStrategy) DeepCopy() *RolloutStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutStrategy.
func (*RolloutStrategy) DeepCopyInto ¶
func (in *RolloutStrategy) DeepCopyInto(out *RolloutStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Scaling ¶
type Scaling struct { // HorizontalScaling defines horizontal scaling options for the deployment. // +optional HorizontalScaling *HorizontalScaling `json:"horizontal,omitempty"` }
Scaling defines the scaling options for the deployment. +apireference:kgo:include
func (*Scaling) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scaling.
func (*Scaling) DeepCopyInto ¶
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.
type WatchNamespaces ¶
type WatchNamespaces struct { // Type indicates the type of namespace watching to be done. // By default, all namespaces are watched. // // +required Type WatchNamespacesType `json:"type"` // List is a list of namespaces to watch for resources. // Only used when Type is set to List. // // +optional List []string `json:"list,omitempty"` }
WatchNamespaces defines the namespaces to watch for resources
+kubebuilder:validation:XValidation:message="list is required when type is 'list'", rule="self.type == 'list' ? has(self.list) : true" +kubebuilder:validation:XValidation:message="list must not be specified when type is not 'list'", rule="self.type != 'list' ? !has(self.list) : true" +apireference:kgo:include
func (*WatchNamespaces) DeepCopy ¶
func (in *WatchNamespaces) DeepCopy() *WatchNamespaces
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WatchNamespaces.
func (*WatchNamespaces) DeepCopyInto ¶
func (in *WatchNamespaces) DeepCopyInto(out *WatchNamespaces)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WatchNamespacesType ¶
type WatchNamespacesType string
WatchNamespacesType indicates the type of namespace watching to be done.
+kubebuilder:validation:Enum=all;list;own
const ( // WatchNamespacesTypeAll indicates that all namespaces should be watched // for resources. WatchNamespacesTypeAll WatchNamespacesType = "all" // WatchNamespacesTypeList indicates that only the namespaces listed in // the Namespaces field should be watched for resources. // All the namespaces enumerated in the list will be watched in addition to // the namespace of the object. WatchNamespacesTypeList WatchNamespacesType = "list" // WatchNamespacesTypeOwn indicates that only the namespace of the // object should be watched for resources. WatchNamespacesTypeOwn WatchNamespacesType = "own" )