v1alpha2

package
v2.0.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2025 License: MIT Imports: 5 Imported by: 15

Documentation

Overview

Package v1alpha2 contains API Schema definitions for the konnect.konghq.com v1alpha2 API group. +kubebuilder:object:generate=true +groupName=konnect.konghq.com

Index

Constants

View Source
const (
	// KonnectExtensionReadyConditionType is the type of the condition that indicates
	// whether the Konnect extension is ready to be used.
	KonnectExtensionReadyConditionType = "Ready"

	// KonnectExtensionReadyReasonReady is the reason used with the
	// KonnectExtensionReady condition type indicating that the Konnect extension
	// is Ready.
	KonnectExtensionReadyReasonReady = "Ready"
	// KonnectExtensionReadyReasonPending is the reason used with the
	// KonnectExtensionReady condition type indicating that the Konnect extension
	// is pending.
	KonnectExtensionReadyReasonPending = "Pending"
	// KonnectExtensionReadyReasonProvisioning is the reason used with the
	// KonnectExtensionReady condition type indicating that the Konnect extension
	// is provisioning.
	KonnectExtensionReadyReasonProvisioning = "Provisioning"
)
View Source
const (
	// KonnectExtensionKind holds the kind for the KonnectExtension.
	KonnectExtensionKind = "KonnectExtension"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "konnect.konghq.com", Version: "v1alpha2"}

	// SchemeGroupVersion is a convenience var for generated clientsets.
	SchemeGroupVersion = GroupVersion

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource.

Types

type CertificateSecret

type CertificateSecret struct {
	// Provisioning is the method used to provision the certificate. It can be either Manual or Automatic.
	// In case manual provisioning is used, the certificate must be provided by the user.
	// In case automatic provisioning is used, the certificate will be automatically generated by the system.
	//
	// +optional
	// +kubebuilder:validation:Enum=Manual;Automatic
	// +kubebuilder:default=Automatic
	Provisioning *ProvisioningMethod `json:"provisioning,omitempty"`

	// CertificateSecretRef is the reference to the Secret containing the client certificate.
	//
	// +optional
	CertificateSecretRef *SecretRef `json:"secretRef,omitempty"`
}

CertificateSecret contains the information to access the client certificate.

func (*CertificateSecret) DeepCopy

func (in *CertificateSecret) DeepCopy() *CertificateSecret

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

func (*CertificateSecret) DeepCopyInto

func (in *CertificateSecret) DeepCopyInto(out *CertificateSecret)

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

type DataPlaneClientAuthStatus

type DataPlaneClientAuthStatus struct {
	// CertificateSecretRef is the reference to the Secret containing the client certificate.
	//
	// +optional
	CertificateSecretRef *SecretRef `json:"certificateSecretRef,omitempty"`
}

DataPlaneClientAuthStatus contains the status information related to the ClientAuth configuration.

func (*DataPlaneClientAuthStatus) DeepCopy

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

func (*DataPlaneClientAuthStatus) DeepCopyInto

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

type DataPlaneLabelValue

type DataPlaneLabelValue string

DataPlaneLabelValue is the type that defines the value of a label that will be applied to the Konnect DataPlane.

+kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=63 +kubebuilder:validation:Pattern="^[a-zA-Z0-9]([a-zA-Z0-9._-]*[a-zA-Z0-9])?$"

type KonnectEndpoints

type KonnectEndpoints struct {
	// TelemetryEndpoint is the endpoint for telemetry.
	//
	// +required
	TelemetryEndpoint string `json:"telemetry"`

	// ControlPlaneEndpoint is the endpoint for the control plane.
	//
	// +required
	ControlPlaneEndpoint string `json:"controlPlane"`
}

KonnectEndpoints defines the Konnect endpoints for the control plane.

func (*KonnectEndpoints) DeepCopy

func (in *KonnectEndpoints) DeepCopy() *KonnectEndpoints

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

func (*KonnectEndpoints) DeepCopyInto

func (in *KonnectEndpoints) DeepCopyInto(out *KonnectEndpoints)

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

type KonnectExtension

type KonnectExtension struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec is the specification of the KonnectExtension resource.
	Spec KonnectExtensionSpec `json:"spec,omitempty"`

	// Status is the status of the KonnectExtension resource.
	//
	// +optional
	// +kubebuilder:default={conditions: {{type: "Ready", status: "Unknown", reason:"Pending", message:"Waiting for controller", lastTransitionTime: "1970-01-01T00:00:00Z"}}}
	Status KonnectExtensionStatus `json:"status,omitempty"`
}

KonnectExtension is the Schema for the KonnectExtension API, and is intended to be referenced as extension by the DataPlane, ControlPlane or GatewayConfiguration APIs. If one of the above mentioned resources successfully refers a KonnectExtension, the underlying deployment(s) spec gets customized to include the konnect-related configuration.

+genclient +kubebuilder:storageversion +kubebuilder:resource:scope=Namespaced +kubebuilder:resource:categories=kong +kubebuilder:object:root=true +kubebuilder:object:generate=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Ready",description="The Resource is Ready to be used",type=string,JSONPath=`.status.conditions[?(@.type=='Ready')].status` +kubebuilder:validation:XValidation:rule="oldSelf.spec.konnect.controlPlane.ref == self.spec.konnect.controlPlane.ref", message="spec.konnect.controlPlane.ref is immutable." +apireference:kgo:include +kong:channels=gateway-operator

func (*KonnectExtension) DeepCopy

func (in *KonnectExtension) DeepCopy() *KonnectExtension

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

func (*KonnectExtension) DeepCopyInto

func (in *KonnectExtension) DeepCopyInto(out *KonnectExtension)

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

func (*KonnectExtension) DeepCopyObject

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

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

func (*KonnectExtension) GetConditions

func (obj *KonnectExtension) GetConditions() []metav1.Condition

GetConditions returns the Status Conditions

func (*KonnectExtension) GetControlPlaneRef

GetControlPlaneRef returns the ControlPlaneRef.

func (KonnectExtension) GetTypeName

func (obj KonnectExtension) GetTypeName() string

GetTypeName returns the KonnectExtension Kind name

func (*KonnectExtension) SetConditions

func (obj *KonnectExtension) SetConditions(conditions []metav1.Condition)

SetConditions sets the Status Conditions

func (*KonnectExtension) SetControlPlaneRef

func (obj *KonnectExtension) SetControlPlaneRef(ref *commonv1alpha1.KonnectExtensionControlPlaneRef)

SetControlPlaneRef sets the ControlPlaneRef.

type KonnectExtensionClientAuth

type KonnectExtensionClientAuth struct {
	// CertificateSecret contains the information to access the client certificate.
	//
	// +required
	CertificateSecret CertificateSecret `json:"certificateSecret"`
}

KonnectExtensionClientAuth contains the configuration for the client authentication for the DataPlane. At the moment authentication is only supported through client certificate, but it might be extended in the future, with e.g., token-based authentication.

+kubebuilder:validation:XValidation:rule="self.certificateSecret.provisioning == 'Manual' ? has(self.certificateSecret.secretRef) : true",message="secretRef must be set when provisioning is set to Manual." +kubebuilder:validation:XValidation:rule="self.certificateSecret.provisioning == 'Automatic' ? !has(self.certificateSecret.secretRef) : true",message="secretRef must not be set when provisioning is set to Automatic."

func (*KonnectExtensionClientAuth) DeepCopy

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

func (*KonnectExtensionClientAuth) DeepCopyInto

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

type KonnectExtensionClusterType

type KonnectExtensionClusterType string

KonnectExtensionClusterType is the type of the Konnect Control Plane.

const (
	// ClusterTypeControlPlane is the type of the Konnect Control Plane.
	ClusterTypeControlPlane KonnectExtensionClusterType = "ControlPlane"
	// ClusterTypeK8sIngressController is the type of the Kubernetes Control Plane.
	ClusterTypeK8sIngressController KonnectExtensionClusterType = "K8SIngressController"
)

type KonnectExtensionControlPlane

type KonnectExtensionControlPlane struct {
	// Ref is a reference to a Konnect ControlPlane this KonnectExtension is associated with.
	//
	// +required
	Ref commonv1alpha1.KonnectExtensionControlPlaneRef `json:"ref"`
}

KonnectExtensionControlPlane is the configuration for the Konnect Control Plane.

func (*KonnectExtensionControlPlane) DeepCopy

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

func (*KonnectExtensionControlPlane) DeepCopyInto

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

type KonnectExtensionControlPlaneStatus

type KonnectExtensionControlPlaneStatus struct {
	// ControlPlaneID is the Konnect ID of the ControlPlane this KonnectExtension is associated with.
	//
	// +required
	ControlPlaneID string `json:"controlPlaneID"`

	// ClusterType is the type of the Konnect Control Plane.
	//
	// +required
	// +kubebuilder:validation:Enum=ControlPlane;K8SIngressController
	ClusterType KonnectExtensionClusterType `json:"clusterType"`

	// Endpoints defines the Konnect endpoints for the control plane.
	//
	// +required
	Endpoints KonnectEndpoints `json:"endpoints"`
}

KonnectExtensionControlPlaneStatus contains the Konnect Control Plane status information.

func (*KonnectExtensionControlPlaneStatus) DeepCopy

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

func (*KonnectExtensionControlPlaneStatus) DeepCopyInto

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

type KonnectExtensionDataPlane

type KonnectExtensionDataPlane struct {
	// Labels is a set of labels that will be applied to the Konnect DataPlane.
	//
	// +optional
	// +kubebuilder:validation:MaxItems=5
	// +kubebuilder:validation:XValidation:rule="self.all(key, key.matches('^[a-zA-Z0-9]([a-zA-Z0-9._-]*[a-zA-Z0-9])?$'))",message="keys must match the pattern '^[a-zA-Z0-9]([a-zA-Z0-9._-]*[a-zA-Z0-9])?$'."
	// +kubebuilder:validation:XValidation:rule="self.all(key, !(key.startsWith('kong') || key.startsWith('konnect') || key.startsWith('insomnia') || key.startsWith('mesh') || key.startsWith('kic') || key.startsWith('_')))",message="keys must not start with 'kong', 'konnect', 'insomnia', 'mesh', 'kic', or '_'."
	// +kubebuilder:validation:XValidation:rule="self.all(key, size(key) > 0 && size(key) < 64)",message="Too long: may not be more than 63 bytes"
	Labels map[string]DataPlaneLabelValue `json:"labels,omitempty"`
}

KonnectExtensionDataPlane is the configuration for the Konnect DataPlane.

func (*KonnectExtensionDataPlane) DeepCopy

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

func (*KonnectExtensionDataPlane) DeepCopyInto

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

type KonnectExtensionKonnectSpec

type KonnectExtensionKonnectSpec struct {
	// ControlPlane is the configuration for the Konnect Control Plane.
	//
	// +required
	ControlPlane KonnectExtensionControlPlane `json:"controlPlane"`

	// DataPlane is the configuration for the Konnect DataPlane.
	//
	// +optional
	DataPlane *KonnectExtensionDataPlane `json:"dataPlane,omitempty"`
}

KonnectExtensionKonnectSpec holds the konnect-related configuration.

func (*KonnectExtensionKonnectSpec) DeepCopy

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

func (*KonnectExtensionKonnectSpec) DeepCopyInto

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

type KonnectExtensionList

type KonnectExtensionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KonnectExtension `json:"items"`
}

KonnectExtensionList contains a list of KonnectExtension.

+kubebuilder:object:root=true +apireference:kgo:include

func (*KonnectExtensionList) DeepCopy

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

func (*KonnectExtensionList) DeepCopyInto

func (in *KonnectExtensionList) DeepCopyInto(out *KonnectExtensionList)

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

func (*KonnectExtensionList) DeepCopyObject

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

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

func (KonnectExtensionList) GetItems

func (obj KonnectExtensionList) GetItems() []KonnectExtension

GetItems returns the list of KonnectExtension items.

type KonnectExtensionSpec

type KonnectExtensionSpec struct {
	// Konnect holds the konnect-related configuration
	//
	// +required
	Konnect KonnectExtensionKonnectSpec `json:"konnect"`

	// ClientAuth is the configuration for the client certificate authentication.
	//
	// +optional
	// +kubebuilder:default={certificateSecret:{provisioning: Automatic}}
	ClientAuth *KonnectExtensionClientAuth `json:"clientAuth,omitempty"`
}

KonnectExtensionSpec defines the desired state of KonnectExtension.

func (*KonnectExtensionSpec) DeepCopy

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

func (*KonnectExtensionSpec) DeepCopyInto

func (in *KonnectExtensionSpec) DeepCopyInto(out *KonnectExtensionSpec)

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

type KonnectExtensionStatus

type KonnectExtensionStatus struct {
	// DataPlaneRefs is the array  of DataPlane references this is associated with.
	// A new reference is set by the operator when this extension is associated with
	// a DataPlane through its extensions spec.
	//
	// +kubebuilder:validation:MaxItems=16
	// +optional
	DataPlaneRefs []commonv1alpha1.NamespacedRef `json:"dataPlaneRefs,omitempty"`

	// ControlPlaneRefs is the array  of ControlPlane references this is associated with.
	// A new reference is set by the operator when this extension is associated with
	// a ControlPlane through its extensions spec.
	//
	// +kubebuilder:validation:MaxItems=16
	// +optional
	ControlPlaneRefs []commonv1alpha1.NamespacedRef `json:"controlPlaneRefs,omitempty"`

	// DataPlaneClientAuth contains the configuration for the client certificate authentication for the DataPlane.
	//
	// +optional
	DataPlaneClientAuth *DataPlaneClientAuthStatus `json:"dataPlaneClientAuth,omitempty"`

	// Konnect contains the status information related to the Konnect Control Plane.
	//
	// +optional
	Konnect *KonnectExtensionControlPlaneStatus `json:"konnect,omitempty"`

	// Conditions describe the current conditions of the KonnectExtensionStatus.
	// Known condition types are:
	//
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=8
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

KonnectExtensionStatus defines the observed state of KonnectExtension.

func (*KonnectExtensionStatus) DeepCopy

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

func (*KonnectExtensionStatus) DeepCopyInto

func (in *KonnectExtensionStatus) DeepCopyInto(out *KonnectExtensionStatus)

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

type ProvisioningMethod

type ProvisioningMethod string

ProvisioningMethod is the type of the provisioning methods available to provision the certificate.

const (
	// ManualSecretProvisioning is the method used to provision the certificate manually.
	ManualSecretProvisioning ProvisioningMethod = "Manual"
	// AutomaticSecretProvisioning is the method used to provision the certificate automatically.
	AutomaticSecretProvisioning ProvisioningMethod = "Automatic"
)

type SecretRef

type SecretRef struct {
	// Name is the name of the Secret containing the Konnect Control Plane's cluster certificate.
	//
	// +required
	Name string `json:"name"`
}

SecretRef contains the reference to the Secret containing the Konnect Control Plane's cluster certificate.

func (*SecretRef) DeepCopy

func (in *SecretRef) DeepCopy() *SecretRef

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

func (*SecretRef) DeepCopyInto

func (in *SecretRef) DeepCopyInto(out *SecretRef)

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

Jump to

Keyboard shortcuts

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