Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the gateway-operator.konghq.com v1beta1 API group +kubebuilder:object:generate=true +groupName=gateway-operator.konghq.com
Index ¶
- Constants
- Variables
- func ControlPlaneGVR() schema.GroupVersionResource
- func DataPlaneGVR() schema.GroupVersionResource
- type Address
- type AddressSourceType
- type AddressType
- type BlueGreenStrategy
- type ControlPlane
- type ControlPlaneDeploymentOptions
- type ControlPlaneList
- type ControlPlaneOptions
- type ControlPlaneSpec
- type ControlPlaneStatus
- type DataPlane
- type DataPlaneDeploymentOptions
- type DataPlaneList
- type DataPlaneNetworkOptions
- type DataPlaneOptions
- type DataPlaneResources
- type DataPlaneRolloutStatus
- type DataPlaneRolloutStatusDeployment
- type DataPlaneRolloutStatusServices
- type DataPlaneServiceOptions
- type DataPlaneServicePort
- type DataPlaneServices
- type DataPlaneSpec
- type DataPlaneStatus
- type DeploymentOptions
- type GatewayConfigDataPlaneNetworkOptions
- type GatewayConfigDataPlaneOptions
- 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) SetConditions(conditions []metav1.Condition)
- type GatewayConfigurationList
- type GatewayConfigurationSpec
- type GatewayConfigurationStatus
- type GatewayConfigurationTargetKind
- type HorizontalScaling
- type KonnectCertificateOptions
- type NamespacedName
- type PodDisruptionBudget
- type PodDisruptionBudgetSpec
- type Promotion
- type PromotionStrategy
- type Rollout
- type RolloutResourcePlan
- type RolloutResourcePlanDeployment
- type RolloutResources
- type RolloutStatusService
- type RolloutStrategy
- type Scaling
- type ServiceOptions
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" )
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "gateway-operator.konghq.com", Version: "v1beta1"} // 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 DataPlaneGVR ¶
func DataPlaneGVR() schema.GroupVersionResource
DataPlaneGVR returns current package DataPlane GVR.
Types ¶
type Address ¶
type Address struct { // Type of the address. // // +optional // +kubebuilder:default=IPAddress Type *AddressType `json:"type,omitempty"` // Value of the address. The validity of the values will depend // on the type and support by the controller. // // Examples: `1.2.3.4`, `128::1`, `my-ip-address`. // // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 Value string `json:"value"` // Source type of the address. SourceType AddressSourceType `json:"sourceType"` }
Address describes an address which can be either an IP address or a hostname. +apireference:kgo:include
func (*Address) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Address.
func (*Address) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AddressSourceType ¶
type AddressSourceType string
AddressSourceType defines the type of source this address represents.
Can be one of:
* `PublicLoadBalancer` * `PrivateLoadBalancer` * `PublicIP` * `PrivateIP`
+kubebuilder:validation:Pattern=`^PublicLoadBalancer|PrivateLoadBalancer|PublicIP|PrivateIP$` +apireference:kgo:include
const ( // PublicLoadBalancerAddressSourceType represents an address belonging to // a public Load Balancer. PublicLoadBalancerAddressSourceType AddressSourceType = "PublicLoadBalancer" // PrivateLoadBalancerAddressSourceType represents an address belonging to // a private Load Balancer. PrivateLoadBalancerAddressSourceType AddressSourceType = "PrivateLoadBalancer" // PublicIPAddressSourceType represents an address belonging to a public IP. PublicIPAddressSourceType AddressSourceType = "PublicIP" // PrivateIPAddressSourceType represents an address belonging to a private IP. PrivateIPAddressSourceType AddressSourceType = "PrivateIP" )
type AddressType ¶
type AddressType string
AddressType defines how a network address is represented as a text string.
Can be one of:
* `IPAddress` * `Hostname`
+kubebuilder:validation:Pattern=`^IPAddress|Hostname$` +apireference:kgo:include
const ( // IPAddressType is a textual representation of a numeric IP address. IPv4 // addresses must be in dotted-decimal form. IPv6 addresses // must be in a standard IPv6 text representation // (see [RFC 5952](https://tools.ietf.org/html/rfc5952)). // // This type is intended for specific addresses. Address ranges are not // supported (e.g. you can not use a CIDR range like 127.0.0.0/24 as an // IPAddress). IPAddressType AddressType = "IPAddress" // HostnameAddressType represents a DNS based ingress point. This is similar to the // corresponding hostname field in Kubernetes load balancer status. For // example, this concept may be used for cloud load balancers where a DNS // name is used to expose a load balancer. HostnameAddressType AddressType = "Hostname" )
type BlueGreenStrategy ¶
type BlueGreenStrategy struct { // Promotion defines how the operator handles promotion of resources. Promotion Promotion `json:"promotion"` // Resources controls what happens to operator managed resources during or // after a rollout. // // +kubebuilder:validation: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 ControlPlane ¶
type ControlPlane struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ControlPlaneSpec `json:"spec,omitempty"` Status ControlPlaneStatus `json:"status,omitempty"` }
ControlPlane is the Schema for the controlplanes API +apireference:kgo:include
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) SetConditions ¶
func (c *ControlPlane) SetConditions(conditions []metav1.Condition)
SetConditions sets the ControlPlane Status Conditions
type ControlPlaneDeploymentOptions ¶
type ControlPlaneDeploymentOptions struct { // Replicas describes the number of desired pods. // This is a pointer to distinguish between explicit zero and not specified. // This only affects the DataPlane deployments for now, for more details on // ControlPlane scaling please see https://github.com/Kong/gateway-operator/issues/736. // // +optional // +kubebuilder:default=1 Replicas *int32 `json:"replicas,omitempty"` // PodTemplateSpec defines PodTemplateSpec for Deployment's pods. // // +optional PodTemplateSpec *corev1.PodTemplateSpec `json:"podTemplateSpec,omitempty"` }
ControlPlaneDeploymentOptions 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 the number of replicas or pod options like container image and resource requirements. version, as well as Env variable overrides. +apireference:kgo:include
func (*ControlPlaneDeploymentOptions) DeepCopy ¶
func (in *ControlPlaneDeploymentOptions) DeepCopy() *ControlPlaneDeploymentOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneDeploymentOptions.
func (*ControlPlaneDeploymentOptions) DeepCopyInto ¶
func (in *ControlPlaneDeploymentOptions) DeepCopyInto(out *ControlPlaneDeploymentOptions)
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 +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 { // +optional Deployment ControlPlaneDeploymentOptions `json:"deployment"` // DataPlanes refers to the named DataPlane objects which this ControlPlane // is responsible for. Currently they must be in the same namespace as the // DataPlane. // // +optional DataPlane *string `json:"dataplane,omitempty"` // Extensions provide additional or replacement features for the ControlPlane // resources to influence or enhance functionality. // // +optional Extensions []v1alpha1.ExtensionRef `json:"extensions,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 { ControlPlaneOptions `json:",inline"` // GatewayClass indicates the Gateway resources which this ControlPlane // should be responsible for configuring routes for (e.g. HTTPRoute, // TCPRoute, UDPRoute, TLSRoute, e.t.c.). // // Required for the ControlPlane to have any effect: at least one Gateway // must be present for configuration to be pushed to the data-plane and // only Gateway resources can be used to identify data-plane entities. // // +optional GatewayClass *gatewayv1.ObjectName `json:"gatewayClass,omitempty"` // IngressClass enables support for the older Ingress resource and indicates // which Ingress resources this ControlPlane should be responsible for. // // Routing configured this way will be applied to the Gateway resources // indicated by GatewayClass. // // If omitted, Ingress resources will not be supported by the ControlPlane. // // +optional IngressClass *string `json:"ingressClass,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"` }
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 DataPlane ¶
type DataPlane struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec DataPlaneSpec `json:"spec,omitempty"` Status DataPlaneStatus `json:"status,omitempty"` }
DataPlane is the Schema for the dataplanes API +apireference:kgo:include
func (*DataPlane) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlane.
func (*DataPlane) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DataPlane) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DataPlane) GetConditions ¶
GetConditions retrieves the DataPlane Status Conditions
func (*DataPlane) SetConditions ¶
SetConditions sets the DataPlane Status Conditions
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 DataPlaneList ¶
type DataPlaneList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []DataPlane `json:"items"` }
DataPlaneList contains a list of DataPlane +apireference:kgo:include
func (*DataPlaneList) DeepCopy ¶
func (in *DataPlaneList) DeepCopy() *DataPlaneList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneList.
func (*DataPlaneList) DeepCopyInto ¶
func (in *DataPlaneList) DeepCopyInto(out *DataPlaneList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DataPlaneList) DeepCopyObject ¶
func (in *DataPlaneList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DataPlaneNetworkOptions ¶
type DataPlaneNetworkOptions struct { // Services indicates the configuration of Kubernetes Services needed for // the topology of various forms of traffic (including ingress, e.t.c.) to // and from the DataPlane. Services *DataPlaneServices `json:"services,omitempty"` // KonnectCA is the certificate authority that the operator uses to provision client certificates the DataPlane // will use to authenticate itself to the Konnect API. Requires Enterprise. // // +optional KonnectCertificateOptions *KonnectCertificateOptions `json:"konnectCertificate,omitempty"` }
DataPlaneNetworkOptions defines network related options for a DataPlane. +apireference:kgo:include
func (*DataPlaneNetworkOptions) DeepCopy ¶
func (in *DataPlaneNetworkOptions) DeepCopy() *DataPlaneNetworkOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneNetworkOptions.
func (*DataPlaneNetworkOptions) DeepCopyInto ¶
func (in *DataPlaneNetworkOptions) DeepCopyInto(out *DataPlaneNetworkOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataPlaneOptions ¶
type DataPlaneOptions struct { // +optional Deployment DataPlaneDeploymentOptions `json:"deployment"` // +optional Network DataPlaneNetworkOptions `json:"network"` // +optional Resources DataPlaneResources `json:"resources"` // Extensions provide additional or replacement features for the DataPlane // resources to influence or enhance functionality. // NOTE: since we have one extension only (KonnectExtension), we limit the amount of extensions to 1. // // +optional // +kubebuilder:validation:MinItems=0 // +kubebuilder:validation:MaxItems=1 Extensions []v1alpha1.ExtensionRef `json:"extensions,omitempty"` // PluginsToInstall is a list of KongPluginInstallation resources that // will be installed and available in the DataPlane. // +optional PluginsToInstall []NamespacedName `json:"pluginsToInstall,omitempty"` }
DataPlaneOptions defines the information specifically needed to deploy the DataPlane. +apireference:kgo:include
func (*DataPlaneOptions) DeepCopy ¶
func (in *DataPlaneOptions) DeepCopy() *DataPlaneOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneOptions.
func (*DataPlaneOptions) DeepCopyInto ¶
func (in *DataPlaneOptions) DeepCopyInto(out *DataPlaneOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataPlaneResources ¶ added in v1.4.0
type DataPlaneResources struct { // PodDisruptionBudget is the configuration for the PodDisruptionBudget // that will be created for the DataPlane. PodDisruptionBudget *PodDisruptionBudget `json:"podDisruptionBudget,omitempty"` }
DataPlaneResources defines the resources that will be created and managed for the DataPlane. +apireference:kgo:include
func (*DataPlaneResources) DeepCopy ¶ added in v1.4.0
func (in *DataPlaneResources) DeepCopy() *DataPlaneResources
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneResources.
func (*DataPlaneResources) DeepCopyInto ¶ added in v1.4.0
func (in *DataPlaneResources) DeepCopyInto(out *DataPlaneResources)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataPlaneRolloutStatus ¶
type DataPlaneRolloutStatus struct { // Services contain the information about the services which are available // through which user can access the preview deployment. Services *DataPlaneRolloutStatusServices `json:"services,omitempty"` // Deployment contains the information about the preview deployment. Deployment *DataPlaneRolloutStatusDeployment `json:"deployment,omitempty"` // Conditions contains the status conditions about the rollout. // // +listType=map // +listMapKey=type // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=8 Conditions []metav1.Condition `json:"conditions,omitempty"` }
DataPlaneRolloutStatus describes the DataPlane rollout status. +apireference:kgo:include
func (*DataPlaneRolloutStatus) DeepCopy ¶
func (in *DataPlaneRolloutStatus) DeepCopy() *DataPlaneRolloutStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneRolloutStatus.
func (*DataPlaneRolloutStatus) DeepCopyInto ¶
func (in *DataPlaneRolloutStatus) DeepCopyInto(out *DataPlaneRolloutStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DataPlaneRolloutStatus) GetConditions ¶
func (d *DataPlaneRolloutStatus) GetConditions() []metav1.Condition
GetConditions retrieves the DataPlane Status Conditions
func (*DataPlaneRolloutStatus) SetConditions ¶
func (d *DataPlaneRolloutStatus) SetConditions(conditions []metav1.Condition)
SetConditions sets the DataPlane Status Conditions
type DataPlaneRolloutStatusDeployment ¶
type DataPlaneRolloutStatusDeployment struct { // Selector is a stable label selector value assigned to a DataPlane rollout // status which is used throughout the rollout as a deterministic labels selector // for Services and Deployments. // // +kubebuilder:validation:MaxLength=512 // +kubebuilder:validation:MinLength=8 Selector string `json:"selector,omitempty"` }
DataPlaneRolloutStatusDeployment is a rollout status field which contains fields specific for Deployments during the rollout. +apireference:kgo:include
func (*DataPlaneRolloutStatusDeployment) DeepCopy ¶
func (in *DataPlaneRolloutStatusDeployment) DeepCopy() *DataPlaneRolloutStatusDeployment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneRolloutStatusDeployment.
func (*DataPlaneRolloutStatusDeployment) DeepCopyInto ¶
func (in *DataPlaneRolloutStatusDeployment) DeepCopyInto(out *DataPlaneRolloutStatusDeployment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataPlaneRolloutStatusServices ¶
type DataPlaneRolloutStatusServices struct { // Ingress contains the name and the address of the preview service for ingress. // Using this service users can send requests that will hit the preview deployment. Ingress *RolloutStatusService `json:"ingress,omitempty"` // AdminAPI contains the name and the address of the preview service for Admin API. // Using this service users can send requests to configure the DataPlane's preview deployment. AdminAPI *RolloutStatusService `json:"adminAPI,omitempty"` }
DataPlaneRolloutStatusServices describes the status of the services during DataPlane rollout. +apireference:kgo:include
func (*DataPlaneRolloutStatusServices) DeepCopy ¶
func (in *DataPlaneRolloutStatusServices) DeepCopy() *DataPlaneRolloutStatusServices
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneRolloutStatusServices.
func (*DataPlaneRolloutStatusServices) DeepCopyInto ¶
func (in *DataPlaneRolloutStatusServices) DeepCopyInto(out *DataPlaneRolloutStatusServices)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataPlaneServiceOptions ¶
type DataPlaneServiceOptions struct { // Ports defines the list of ports that are exposed by the service. // The ports field allows defining the name, port and targetPort of // the underlying service ports, while the protocol is defaulted to TCP, // as it is the only protocol currently supported. Ports []DataPlaneServicePort `json:"ports,omitempty"` // ServiceOptions is the struct containing service options shared with // the GatewayConfiguration. ServiceOptions `json:",inline"` }
DataPlaneServiceOptions contains Services related DataPlane configuration. +apireference:kgo:include
func (*DataPlaneServiceOptions) DeepCopy ¶
func (in *DataPlaneServiceOptions) DeepCopy() *DataPlaneServiceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneServiceOptions.
func (*DataPlaneServiceOptions) DeepCopyInto ¶
func (in *DataPlaneServiceOptions) DeepCopyInto(out *DataPlaneServiceOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataPlaneServicePort ¶
type DataPlaneServicePort struct { // The name of this port within the service. This must be a DNS_LABEL. // All ports within a ServiceSpec must have unique names. When considering // the endpoints for a Service, this must match the 'name' field in the // EndpointPort. // Optional if only one ServicePort is defined on this service. // +optional Name string `json:"name,omitempty"` // The port that will be exposed by this service. Port int32 `json:"port"` // Number or name of the port to access on the pods targeted by the service. // Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. // If this is a string, it will be looked up as a named port in the // target Pod's container ports. If this is not specified, the value // of the 'port' field is used (an identity map). // This field is ignored for services with clusterIP=None, and should be // omitted or set equal to the 'port' field. // More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service // +optional TargetPort intstr.IntOrString `json:"targetPort,omitempty"` }
DataPlaneServicePort contains information on service's port. +apireference:kgo:include
func (*DataPlaneServicePort) DeepCopy ¶
func (in *DataPlaneServicePort) DeepCopy() *DataPlaneServicePort
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneServicePort.
func (*DataPlaneServicePort) DeepCopyInto ¶
func (in *DataPlaneServicePort) DeepCopyInto(out *DataPlaneServicePort)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataPlaneServices ¶
type DataPlaneServices 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 *DataPlaneServiceOptions `json:"ingress,omitempty"` }
DataPlaneServices contains Services related DataPlane configuration, shared with the GatewayConfiguration. +apireference:kgo:include
func (*DataPlaneServices) DeepCopy ¶
func (in *DataPlaneServices) DeepCopy() *DataPlaneServices
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneServices.
func (*DataPlaneServices) DeepCopyInto ¶
func (in *DataPlaneServices) DeepCopyInto(out *DataPlaneServices)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataPlaneSpec ¶
type DataPlaneSpec struct {
DataPlaneOptions `json:",inline"`
}
DataPlaneSpec defines the desired state of DataPlane +apireference:kgo:include
func (*DataPlaneSpec) DeepCopy ¶
func (in *DataPlaneSpec) DeepCopy() *DataPlaneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneSpec.
func (*DataPlaneSpec) DeepCopyInto ¶
func (in *DataPlaneSpec) DeepCopyInto(out *DataPlaneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataPlaneStatus ¶
type DataPlaneStatus struct { // Conditions describe the status of the DataPlane. // +listType=map // +listMapKey=type // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=8 Conditions []metav1.Condition `json:"conditions,omitempty"` // Service indicates the Service that exposes the DataPlane's configured routes Service string `json:"service,omitempty"` // Addresses lists the addresses that have actually been bound to the DataPlane. // // +optional Addresses []Address `json:"addresses,omitempty"` // Selector contains a unique DataPlane identifier used as a deterministic // label selector that is used throughout its dependent resources. // This is used e.g. as a label selector for DataPlane's Services, Deployments and PodDisruptionBudgets. // // +kubebuilder:validation:MaxLength=512 // +kubebuilder:validation:MinLength=8 Selector string `json:"selector,omitempty"` // ReadyReplicas indicates how many replicas have reported to be ready. // // +kubebuilder:default=0 ReadyReplicas int32 `json:"readyReplicas"` // Replicas indicates how many replicas have been set for the DataPlane. // // +kubebuilder:default=0 Replicas int32 `json:"replicas"` // RolloutStatus contains information about the rollout. // It is set only if a rollout strategy was configured in the spec. // // +optional RolloutStatus *DataPlaneRolloutStatus `json:"rollout,omitempty"` }
DataPlaneStatus defines the observed state of DataPlane +apireference:kgo:include
func (*DataPlaneStatus) DeepCopy ¶
func (in *DataPlaneStatus) DeepCopy() *DataPlaneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlaneStatus.
func (*DataPlaneStatus) DeepCopyInto ¶
func (in *DataPlaneStatus) DeepCopyInto(out *DataPlaneStatus)
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.
+kubebuilder:validation:XValidation:message="Using both replicas and scaling fields is not allowed.",rule="!(has(self.scaling) && has(self.replicas))" +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 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. 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"` // Extensions provide additional or replacement features for the DataPlane // resources to influence or enhance functionality. // NOTE: since we have one extension only (KonnectExtension), we limit the amount of extensions to 1. // // +optional // +kubebuilder:validation:MinItems=0 // +kubebuilder:validation:MaxItems=1 Extensions []v1alpha1.ExtensionRef `json:"extensions,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 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 GatewayConfigurationSpec `json:"spec,omitempty"` Status GatewayConfigurationStatus `json:"status,omitempty"` }
GatewayConfiguration is the Schema for the gatewayconfigurations API +apireference:kgo:include
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) 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
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 created for the Gateway. // // +optional ControlPlaneOptions *ControlPlaneOptions `json:"controlPlaneOptions,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 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. 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 KonnectCertificateOptions ¶
type KonnectCertificateOptions struct { // Issuer is the cert-manager Issuer or ClusterIssuer the operator will use to request certificates. When Namespace // is set, the operator will retrieve the Issuer with that Name in that Namespace. When Namespace is omitted, the // operator will retrieve the ClusterIssuer with that name. Issuer NamespacedName `json:"issuer"` }
KonnectCertificateOptions indicates how the operator should manage the certificates that managed entities will use to interact with Konnect. +apireference:kgo:include
func (*KonnectCertificateOptions) DeepCopy ¶
func (in *KonnectCertificateOptions) DeepCopy() *KonnectCertificateOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KonnectCertificateOptions.
func (*KonnectCertificateOptions) DeepCopyInto ¶
func (in *KonnectCertificateOptions) DeepCopyInto(out *KonnectCertificateOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespacedName ¶
type NamespacedName struct { // +optional Namespace string `json:"namespace"` Name string `json:"name"` }
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 ¶ added in v1.4.0
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 ¶ added in v1.4.0
func (in *PodDisruptionBudget) DeepCopy() *PodDisruptionBudget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudget.
func (*PodDisruptionBudget) DeepCopyInto ¶ added in v1.4.0
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 ¶ added in v1.4.0
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 ¶ added in v1.4.0
func (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec.
func (*PodDisruptionBudgetSpec) DeepCopyInto ¶ added in v1.4.0
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=AutomaticPromotion;BreakBeforePromotion // +kubebuilder:default=BreakBeforePromotion Strategy PromotionStrategy `json:"strategy"` }
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. 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;DeleteOnPromotionRecreateOnRollout // +kubebuilder:default=ScaleDownOnPromotionScaleUpOnRollout 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. // // +kubebuilder:validation: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 RolloutStatusService ¶
type RolloutStatusService struct { // Name indicates the name of the service. Name string `json:"name"` // Addresses contains the addresses of a Service. // +optional // +kubebuilder:validation:MaxItems=16 Addresses []Address `json:"addresses,omitempty"` }
RolloutStatusService is a struct which contains status information about services that are exposed as part of the rollout. +apireference:kgo:include
func (*RolloutStatusService) DeepCopy ¶
func (in *RolloutStatusService) DeepCopy() *RolloutStatusService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutStatusService.
func (*RolloutStatusService) DeepCopyInto ¶
func (in *RolloutStatusService) DeepCopyInto(out *RolloutStatusService)
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. // // +optional BlueGreen *BlueGreenStrategy `json:"blueGreen,omitempty"` }
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`. // // Valid options are `LoadBalancer` and `ClusterIP`. // // `ClusterIP` allocates a cluster-internal IP address for load-balancing // to endpoints. // // `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;ClusterIP Type corev1.ServiceType `json:"type,omitempty" protobuf:"bytes,4,opt,name=type,casttype=ServiceType"` // 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.