v1beta1

package
v1.4.1 Latest Latest
Warning

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

Go to latest
Published: Nov 28, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

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

View Source
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

View Source
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

func (in *Address) DeepCopy() *Address

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

func (*Address) DeepCopyInto

func (in *Address) DeepCopyInto(out *Address)

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

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

func (*ControlPlaneDeploymentOptions) DeepCopyInto

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

func (in *DataPlane) DeepCopy() *DataPlane

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

func (*DataPlane) DeepCopyInto

func (in *DataPlane) DeepCopyInto(out *DataPlane)

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

func (*DataPlane) DeepCopyObject

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

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

func (*DataPlane) GetConditions

func (d *DataPlane) GetConditions() []metav1.Condition

GetConditions retrieves the DataPlane Status Conditions

func (*DataPlane) SetConditions

func (d *DataPlane) SetConditions(conditions []metav1.Condition)

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

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

func (*DataPlaneDeploymentOptions) DeepCopyInto

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

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

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

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

func (*DataPlaneRolloutStatusDeployment) DeepCopyInto

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

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

func (*DataPlaneRolloutStatusServices) DeepCopyInto

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

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

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

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

func (*GatewayConfigDataPlaneNetworkOptions) DeepCopyInto

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

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

func (*GatewayConfigDataPlaneOptions) DeepCopyInto

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

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

func (*GatewayConfigDataPlaneServices) DeepCopyInto

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

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

func (*GatewayConfigServiceOptions) DeepCopyInto

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

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

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

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

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

func (*GatewayConfigurationStatus) DeepCopyInto

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

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

func (*KonnectCertificateOptions) DeepCopyInto

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"`

	// An eviction is allowed if at most "maxUnavailable" pods selected by
	// "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

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

func (in *Promotion) DeepCopy() *Promotion

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

func (*Promotion) DeepCopyInto

func (in *Promotion) DeepCopyInto(out *Promotion)

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

func (in *Rollout) DeepCopy() *Rollout

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

func (*Rollout) DeepCopyInto

func (in *Rollout) DeepCopyInto(out *Rollout)

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

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

func (in *Scaling) DeepCopy() *Scaling

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

func (*Scaling) DeepCopyInto

func (in *Scaling) DeepCopyInto(out *Scaling)

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL