v1alpha1

package
v1.12.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package v1alpha1 contains the v1alpha1 implementation of ExtensionConfig. +k8s:conversion-gen=sigs.k8s.io/cluster-api/api/runtime/v1beta2

Deprecated: This package is deprecated and is going to be removed when support for v1beta1 will be dropped.

Index

Constants

View Source
const (
	// ExtensionConfigDiscoveredV1Beta2Condition is true if the runtime extension has been successfully discovered.
	ExtensionConfigDiscoveredV1Beta2Condition = "Discovered"

	// ExtensionConfigDiscoveredV1Beta2Reason surfaces that the runtime extension has been successfully discovered.
	ExtensionConfigDiscoveredV1Beta2Reason = "Discovered"

	// ExtensionConfigNotDiscoveredV1Beta2Reason surfaces that the runtime extension has not been successfully discovered.
	ExtensionConfigNotDiscoveredV1Beta2Reason = "NotDiscovered"
)

ExtensionConfig's Discovered conditions and corresponding reasons that will be used in v1Beta2 API version.

View Source
const (
	// RuntimeExtensionDiscoveredCondition is a condition set on an ExtensionConfig object once it has been discovered by the Runtime SDK client.
	RuntimeExtensionDiscoveredCondition clusterv1beta1.ConditionType = "Discovered"

	// DiscoveryFailedReason documents failure of a Discovery call.
	DiscoveryFailedReason string = "DiscoveryFailed"

	// InjectCAFromSecretAnnotation is the annotation that specifies that an ExtensionConfig
	// object wants injection of CAs. The value is a reference to a Secret
	// as <namespace>/<name>.
	InjectCAFromSecretAnnotation string = "runtime.cluster.x-k8s.io/inject-ca-from-secret"

	// PendingHooksAnnotation is the annotation used to keep track of pending runtime hooks.
	// The annotation will be used to track the intent to call a hook as soon as an operation completes;
	// the intent will be removed as soon as the hook call completes successfully.
	PendingHooksAnnotation string = "runtime.cluster.x-k8s.io/pending-hooks"

	// OkToDeleteAnnotation is the annotation used to indicate if a cluster is ready to be fully deleted.
	// This annotation is added to the cluster after the BeforeClusterDelete hook has passed.
	OkToDeleteAnnotation string = "runtime.cluster.x-k8s.io/ok-to-delete"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "runtime.cluster.x-k8s.io", Version: "v1alpha1"}

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

Functions

func Convert_v1_Condition_To_v1beta1_Condition

func Convert_v1_Condition_To_v1beta1_Condition(in *metav1.Condition, out *clusterv1beta1.Condition, s apimachineryconversion.Scope) error

func Convert_v1alpha1_ClientConfig_To_v1beta2_ClientConfig

func Convert_v1alpha1_ClientConfig_To_v1beta2_ClientConfig(in *ClientConfig, out *runtimev1.ClientConfig, s apimachineryconversion.Scope) error

func Convert_v1alpha1_ExtensionConfigList_To_v1beta2_ExtensionConfigList

func Convert_v1alpha1_ExtensionConfigList_To_v1beta2_ExtensionConfigList(in *ExtensionConfigList, out *v1beta2.ExtensionConfigList, s conversion.Scope) error

Convert_v1alpha1_ExtensionConfigList_To_v1beta2_ExtensionConfigList is an autogenerated conversion function.

func Convert_v1alpha1_ExtensionConfigSpec_To_v1beta2_ExtensionConfigSpec

func Convert_v1alpha1_ExtensionConfigSpec_To_v1beta2_ExtensionConfigSpec(in *ExtensionConfigSpec, out *v1beta2.ExtensionConfigSpec, s conversion.Scope) error

Convert_v1alpha1_ExtensionConfigSpec_To_v1beta2_ExtensionConfigSpec is an autogenerated conversion function.

func Convert_v1alpha1_ExtensionConfigStatus_To_v1beta2_ExtensionConfigStatus

func Convert_v1alpha1_ExtensionConfigStatus_To_v1beta2_ExtensionConfigStatus(in *ExtensionConfigStatus, out *runtimev1.ExtensionConfigStatus, s apimachineryconversion.Scope) error

func Convert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig

func Convert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig(in *ExtensionConfig, out *v1beta2.ExtensionConfig, s conversion.Scope) error

Convert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig is an autogenerated conversion function.

func Convert_v1alpha1_ExtensionHandler_To_v1beta2_ExtensionHandler

func Convert_v1alpha1_ExtensionHandler_To_v1beta2_ExtensionHandler(in *ExtensionHandler, out *runtimev1.ExtensionHandler, s apimachineryconversion.Scope) error

func Convert_v1alpha1_GroupVersionHook_To_v1beta2_GroupVersionHook

func Convert_v1alpha1_GroupVersionHook_To_v1beta2_GroupVersionHook(in *GroupVersionHook, out *v1beta2.GroupVersionHook, s conversion.Scope) error

Convert_v1alpha1_GroupVersionHook_To_v1beta2_GroupVersionHook is an autogenerated conversion function.

func Convert_v1alpha1_ServiceReference_To_v1beta2_ServiceReference

func Convert_v1alpha1_ServiceReference_To_v1beta2_ServiceReference(in *ServiceReference, out *v1beta2.ServiceReference, s conversion.Scope) error

Convert_v1alpha1_ServiceReference_To_v1beta2_ServiceReference is an autogenerated conversion function.

func Convert_v1beta1_Condition_To_v1_Condition

func Convert_v1beta1_Condition_To_v1_Condition(in *clusterv1beta1.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error

func Convert_v1beta2_ClientConfig_To_v1alpha1_ClientConfig

func Convert_v1beta2_ClientConfig_To_v1alpha1_ClientConfig(in *runtimev1.ClientConfig, out *ClientConfig, s apimachineryconversion.Scope) error

func Convert_v1beta2_ExtensionConfigList_To_v1alpha1_ExtensionConfigList

func Convert_v1beta2_ExtensionConfigList_To_v1alpha1_ExtensionConfigList(in *v1beta2.ExtensionConfigList, out *ExtensionConfigList, s conversion.Scope) error

Convert_v1beta2_ExtensionConfigList_To_v1alpha1_ExtensionConfigList is an autogenerated conversion function.

func Convert_v1beta2_ExtensionConfigSpec_To_v1alpha1_ExtensionConfigSpec

func Convert_v1beta2_ExtensionConfigSpec_To_v1alpha1_ExtensionConfigSpec(in *v1beta2.ExtensionConfigSpec, out *ExtensionConfigSpec, s conversion.Scope) error

Convert_v1beta2_ExtensionConfigSpec_To_v1alpha1_ExtensionConfigSpec is an autogenerated conversion function.

func Convert_v1beta2_ExtensionConfigStatus_To_v1alpha1_ExtensionConfigStatus

func Convert_v1beta2_ExtensionConfigStatus_To_v1alpha1_ExtensionConfigStatus(in *runtimev1.ExtensionConfigStatus, out *ExtensionConfigStatus, s apimachineryconversion.Scope) error

func Convert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig

func Convert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig(in *v1beta2.ExtensionConfig, out *ExtensionConfig, s conversion.Scope) error

Convert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig is an autogenerated conversion function.

func Convert_v1beta2_ExtensionHandler_To_v1alpha1_ExtensionHandler

func Convert_v1beta2_ExtensionHandler_To_v1alpha1_ExtensionHandler(in *runtimev1.ExtensionHandler, out *ExtensionHandler, s apimachineryconversion.Scope) error

func Convert_v1beta2_GroupVersionHook_To_v1alpha1_GroupVersionHook

func Convert_v1beta2_GroupVersionHook_To_v1alpha1_GroupVersionHook(in *v1beta2.GroupVersionHook, out *GroupVersionHook, s conversion.Scope) error

Convert_v1beta2_GroupVersionHook_To_v1alpha1_GroupVersionHook is an autogenerated conversion function.

func Convert_v1beta2_ServiceReference_To_v1alpha1_ServiceReference

func Convert_v1beta2_ServiceReference_To_v1alpha1_ServiceReference(in *v1beta2.ServiceReference, out *ServiceReference, s conversion.Scope) error

Convert_v1beta2_ServiceReference_To_v1alpha1_ServiceReference is an autogenerated conversion function.

func RegisterConversions

func RegisterConversions(s *runtime.Scheme) error

RegisterConversions adds conversion functions to the given scheme. Public to allow building arbitrary schemes.

Types

type ClientConfig

type ClientConfig struct {
	// url gives the location of the Extension server, in standard URL form
	// (`scheme://host:port/path`).
	// Note: Exactly one of `url` or `service` must be specified.
	//
	// The scheme must be "https".
	//
	// The `host` should not refer to a service running in the cluster; use
	// the `service` field instead.
	//
	// A path is optional, and if present may be any string permissible in
	// a URL. If a path is set it will be used as prefix to the hook-specific path.
	//
	// Attempting to use a user or basic auth e.g. "user:password@" is not
	// allowed. Fragments ("#...") and query parameters ("?...") are not
	// allowed either.
	//
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=512
	URL *string `json:"url,omitempty"`

	// service is a reference to the Kubernetes service for the Extension server.
	// Note: Exactly one of `url` or `service` must be specified.
	//
	// If the Extension server is running within a cluster, then you should use `service`.
	//
	// +optional
	Service *ServiceReference `json:"service,omitempty"`

	// caBundle is a PEM encoded CA bundle which will be used to validate the Extension server's server certificate.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=51200
	CABundle []byte `json:"caBundle,omitempty"`
}

ClientConfig contains the information to make a client connection with an Extension server.

func (*ClientConfig) DeepCopy

func (in *ClientConfig) DeepCopy() *ClientConfig

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

func (*ClientConfig) DeepCopyInto

func (in *ClientConfig) DeepCopyInto(out *ClientConfig)

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

type ExtensionConfig

type ExtensionConfig struct {
	metav1.TypeMeta `json:",inline"`
	// metadata is the standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec is the desired state of the ExtensionConfig.
	// +optional
	Spec ExtensionConfigSpec `json:"spec,omitempty"`

	// status is the current state of the ExtensionConfig
	// +optional
	Status ExtensionConfigStatus `json:"status,omitempty"`
}

ExtensionConfig is the Schema for the ExtensionConfig API.

func (*ExtensionConfig) ConvertFrom

func (dst *ExtensionConfig) ConvertFrom(srcRaw conversion.Hub) error

func (*ExtensionConfig) ConvertTo

func (src *ExtensionConfig) ConvertTo(dstRaw conversion.Hub) error

func (*ExtensionConfig) DeepCopy

func (in *ExtensionConfig) DeepCopy() *ExtensionConfig

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

func (*ExtensionConfig) DeepCopyInto

func (in *ExtensionConfig) DeepCopyInto(out *ExtensionConfig)

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

func (*ExtensionConfig) DeepCopyObject

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

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

func (*ExtensionConfig) GetConditions

func (e *ExtensionConfig) GetConditions() clusterv1beta1.Conditions

GetConditions returns the set of conditions for this object.

func (*ExtensionConfig) GetV1Beta2Conditions

func (e *ExtensionConfig) GetV1Beta2Conditions() []metav1.Condition

GetV1Beta2Conditions returns the set of conditions for this object.

func (*ExtensionConfig) SetConditions

func (e *ExtensionConfig) SetConditions(conditions clusterv1beta1.Conditions)

SetConditions sets the conditions on this object.

func (*ExtensionConfig) SetV1Beta2Conditions

func (e *ExtensionConfig) SetV1Beta2Conditions(conditions []metav1.Condition)

SetV1Beta2Conditions sets conditions for an API object.

type ExtensionConfigList

type ExtensionConfigList struct {
	metav1.TypeMeta `json:",inline"`
	// metadata is the standard list's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#lists-and-simple-kinds
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// items is the list of ExtensionConfigs.
	Items []ExtensionConfig `json:"items"`
}

ExtensionConfigList contains a list of ExtensionConfig.

func (*ExtensionConfigList) DeepCopy

func (in *ExtensionConfigList) DeepCopy() *ExtensionConfigList

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

func (*ExtensionConfigList) DeepCopyInto

func (in *ExtensionConfigList) DeepCopyInto(out *ExtensionConfigList)

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

func (*ExtensionConfigList) DeepCopyObject

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

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

type ExtensionConfigSpec

type ExtensionConfigSpec struct {
	// clientConfig defines how to communicate with the Extension server.
	// +required
	ClientConfig ClientConfig `json:"clientConfig"`

	// namespaceSelector decides whether to call the hook for an object based
	// on whether the namespace for that object matches the selector.
	// Defaults to the empty LabelSelector, which matches all objects.
	// +optional
	NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`

	// settings defines key value pairs to be passed to all calls
	// to all supported RuntimeExtensions.
	// Note: Settings can be overridden on the ClusterClass.
	// +optional
	Settings map[string]string `json:"settings,omitempty"`
}

ExtensionConfigSpec defines the desired state of ExtensionConfig.

func (*ExtensionConfigSpec) DeepCopy

func (in *ExtensionConfigSpec) DeepCopy() *ExtensionConfigSpec

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

func (*ExtensionConfigSpec) DeepCopyInto

func (in *ExtensionConfigSpec) DeepCopyInto(out *ExtensionConfigSpec)

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

type ExtensionConfigStatus

type ExtensionConfigStatus struct {
	// handlers defines the current ExtensionHandlers supported by an Extension.
	// +optional
	// +listType=map
	// +listMapKey=name
	// +kubebuilder:validation:MaxItems=512
	Handlers []ExtensionHandler `json:"handlers,omitempty"`

	// conditions define the current service state of the ExtensionConfig.
	// +optional
	Conditions clusterv1beta1.Conditions `json:"conditions,omitempty"`

	// v1beta2 groups all the fields that will be added or modified in ExtensionConfig's status with the V1Beta2 version.
	// +optional
	V1Beta2 *ExtensionConfigV1Beta2Status `json:"v1beta2,omitempty"`
}

ExtensionConfigStatus defines the observed state of ExtensionConfig.

func (*ExtensionConfigStatus) DeepCopy

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

func (*ExtensionConfigStatus) DeepCopyInto

func (in *ExtensionConfigStatus) DeepCopyInto(out *ExtensionConfigStatus)

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

type ExtensionConfigV1Beta2Status

type ExtensionConfigV1Beta2Status struct {
	// conditions represents the observations of a ExtensionConfig's current state.
	// Known condition types are Discovered, Paused.
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=32
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ExtensionConfigV1Beta2Status groups all the fields that will be added or modified in ExtensionConfig with the V1Beta2 version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.

func (*ExtensionConfigV1Beta2Status) DeepCopy

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

func (*ExtensionConfigV1Beta2Status) DeepCopyInto

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

type ExtensionHandler

type ExtensionHandler struct {
	// name is the unique name of the ExtensionHandler.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=512
	Name string `json:"name"`

	// requestHook defines the versioned runtime hook which this ExtensionHandler serves.
	// +required
	RequestHook GroupVersionHook `json:"requestHook"`

	// timeoutSeconds defines the timeout duration for client calls to the ExtensionHandler.
	// Defaults to 10 is not set.
	// +optional
	TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`

	// failurePolicy defines how failures in calls to the ExtensionHandler should be handled by a client.
	// Defaults to Fail if not set.
	// +optional
	// +kubebuilder:validation:Enum=Ignore;Fail
	FailurePolicy *FailurePolicy `json:"failurePolicy,omitempty"`
}

ExtensionHandler specifies the details of a handler for a particular runtime hook registered by an Extension server.

func (*ExtensionHandler) DeepCopy

func (in *ExtensionHandler) DeepCopy() *ExtensionHandler

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

func (*ExtensionHandler) DeepCopyInto

func (in *ExtensionHandler) DeepCopyInto(out *ExtensionHandler)

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

type FailurePolicy

type FailurePolicy string

FailurePolicy specifies how unrecognized errors when calling the ExtensionHandler are handled. FailurePolicy helps with extensions not working consistently, e.g. due to an intermittent network issue. The following type of errors are never ignored by FailurePolicy Ignore: - Misconfigurations (e.g. incompatible types) - Extension explicitly returns a Status Failure.

const (
	// FailurePolicyIgnore means that an error when calling the extension is ignored.
	FailurePolicyIgnore FailurePolicy = "Ignore"

	// FailurePolicyFail means that an error when calling the extension is propagated as an error.
	FailurePolicyFail FailurePolicy = "Fail"
)

type GroupVersionHook

type GroupVersionHook struct {
	// apiVersion is the group and version of the Hook.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=512
	APIVersion string `json:"apiVersion"`

	// hook is the name of the hook.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=256
	Hook string `json:"hook"`
}

GroupVersionHook defines the runtime hook when the ExtensionHandler is called.

func (*GroupVersionHook) DeepCopy

func (in *GroupVersionHook) DeepCopy() *GroupVersionHook

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

func (*GroupVersionHook) DeepCopyInto

func (in *GroupVersionHook) DeepCopyInto(out *GroupVersionHook)

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

type ServiceReference

type ServiceReference struct {
	// namespace is the namespace of the service.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Namespace string `json:"namespace"`

	// name is the name of the service.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// path is an optional URL path and if present may be any string permissible in
	// a URL. If a path is set it will be used as prefix to the hook-specific path.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=512
	Path *string `json:"path,omitempty"`

	// port is the port on the service that's hosting the Extension server.
	// Defaults to 443.
	// Port should be a valid port number (1-65535, inclusive).
	// +optional
	Port *int32 `json:"port,omitempty"`
}

ServiceReference holds a reference to a Kubernetes Service of an Extension server.

func (*ServiceReference) DeepCopy

func (in *ServiceReference) DeepCopy() *ServiceReference

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

func (*ServiceReference) DeepCopyInto

func (in *ServiceReference) DeepCopyInto(out *ServiceReference)

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