Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the controlplane v1alpha1 API group +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "controlplane.cluster.x-k8s.io", Version: "v1alpha1"} // 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 ¶
This section is empty.
Types ¶
type ControlPlaneComponent ¶
type ControlPlaneComponent struct { ExtraVolumeMounts []corev1.VolumeMount `json:"extraVolumeMounts,omitempty"` ExtraArgs []string `json:"extraArgs,omitempty"` Resources corev1.ResourceRequirements `json:"resources,omitempty"` // In combination with the container registry, it can override the component container image. // With no value, the default images will be used. // +kubebuilder:validation:MinLength=1 ContainerImageName string `json:"containerImageName,omitempty"` }
ControlPlaneComponent allows the customization for the given component of the control plane.
func (*ControlPlaneComponent) DeepCopy ¶
func (in *ControlPlaneComponent) DeepCopy() *ControlPlaneComponent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneComponent.
func (*ControlPlaneComponent) DeepCopyInto ¶
func (in *ControlPlaneComponent) DeepCopyInto(out *ControlPlaneComponent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeploymentComponent ¶
type DeploymentComponent struct { NodeSelector map[string]string `json:"nodeSelector,omitempty"` RuntimeClassName string `json:"runtimeClassName,omitempty"` Strategy appsv1.DeploymentStrategy `json:"strategy,omitempty"` Affinity *corev1.Affinity `json:"affinity,omitempty"` Tolerations []corev1.Toleration `json:"tolerations,omitempty"` TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` ExtraInitContainers []corev1.Container `json:"extraInitContainers,omitempty"` ExtraContainers []corev1.Container `json:"extraContainers,omitempty"` ExtraVolumes []corev1.Volume `json:"extraVolumes,omitempty"` }
func (*DeploymentComponent) DeepCopy ¶
func (in *DeploymentComponent) DeepCopy() *DeploymentComponent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentComponent.
func (*DeploymentComponent) DeepCopyInto ¶
func (in *DeploymentComponent) DeepCopyInto(out *DeploymentComponent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngressComponent ¶ added in v0.3.0
type IngressComponent struct { // Defines the Ingress Class for the Ingress object. ClassName string `json:"className,omitempty"` // Defines the hostname for the Ingress object. // When using an Ingress object the FQDN is automatically added to the Certificate SANs. // +kubebuilder:required // +kubebuilder:validation:MinLength=1 Hostname string `json:"hostname"` // Defines the extra labels for the Ingress object. ExtraLabels map[string]string `json:"extraLabels,omitempty"` // Defines the extra annotations for the Ingress object. // Useful if you need to define TLS/SSL passthrough, or other Ingress Controller-specific options. ExtraAnnotations map[string]string `json:"extraAnnotations,omitempty"` }
func (*IngressComponent) DeepCopy ¶ added in v0.3.0
func (in *IngressComponent) DeepCopy() *IngressComponent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressComponent.
func (*IngressComponent) DeepCopyInto ¶ added in v0.3.0
func (in *IngressComponent) DeepCopyInto(out *IngressComponent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KamajiControlPlane ¶
type KamajiControlPlane struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec KamajiControlPlaneSpec `json:"spec,omitempty"` Status KamajiControlPlaneStatus `json:"status,omitempty"` }
KamajiControlPlane is the Schema for the kamajicontrolplanes API.
func (*KamajiControlPlane) DeepCopy ¶
func (in *KamajiControlPlane) DeepCopy() *KamajiControlPlane
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KamajiControlPlane.
func (*KamajiControlPlane) DeepCopyInto ¶
func (in *KamajiControlPlane) DeepCopyInto(out *KamajiControlPlane)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KamajiControlPlane) DeepCopyObject ¶
func (in *KamajiControlPlane) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KamajiControlPlaneList ¶
type KamajiControlPlaneList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []KamajiControlPlane `json:"items"` }
KamajiControlPlaneList contains a list of KamajiControlPlane.
func (*KamajiControlPlaneList) DeepCopy ¶
func (in *KamajiControlPlaneList) DeepCopy() *KamajiControlPlaneList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KamajiControlPlaneList.
func (*KamajiControlPlaneList) DeepCopyInto ¶
func (in *KamajiControlPlaneList) DeepCopyInto(out *KamajiControlPlaneList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KamajiControlPlaneList) DeepCopyObject ¶
func (in *KamajiControlPlaneList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KamajiControlPlaneSpec ¶
type KamajiControlPlaneSpec struct { // The Kamaji DataStore to use for the given TenantControlPlane. // Retrieve the list of the allowed ones by issuing "kubectl get datastores.kamaji.clastix.io". DataStoreName string `json:"dataStoreName"` // The addons that must be managed by Kamaji, such as CoreDNS, kube-proxy, and konnectivity. Addons kamajiv1alpha1.AddonsSpec `json:"addons,omitempty"` // List of the admission controllers to configure for the TenantControlPlane kube-apiserver. // By default, no admission controllers are enabled, refer to the desired Kubernetes version. // // More info: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ AdmissionControllers kamajiv1alpha1.AdmissionControllers `json:"admissionControllers,omitempty"` // Override the container registry used to pull the components image. // Helpful if running in an air-gapped environment. // +kubebuilder:default="registry.k8s.io" ContainerRegistry string `json:"registry,omitempty"` ControllerManager ControlPlaneComponent `json:"controllerManager,omitempty"` ApiServer ControlPlaneComponent `json:"apiServer,omitempty"` //nolint:revive,stylecheck Scheduler ControlPlaneComponent `json:"scheduler,omitempty"` // Configure the Kubelet options, such as the preferred address types, or the expected cgroupfs. // +kubebuilder:default={preferredAddressTypes:{"Hostname","InternalIP","ExternalIP"},cgroupfs:"systemd"} Kubelet kamajiv1alpha1.KubeletSpec `json:"kubelet,omitempty"` // Configure how the TenantControlPlane should be exposed. // +kubebuilder:default={serviceType:"LoadBalancer"} Network NetworkComponent `json:"network,omitempty"` // Configure how the TenantControlPlane Deployment object should be configured. Deployment DeploymentComponent `json:"deployment,omitempty"` // Number of desired replicas for the given TenantControlPlane. // Defaults to 2. // +kubebuilder:default=2 Replicas *int32 `json:"replicas,omitempty"` // Version defines the desired Kubernetes version. // Use the full semantic version with the `v` prefix, such as v1.27.0 Version string `json:"version"` }
KamajiControlPlaneSpec defines the desired state of KamajiControlPlane.
func (*KamajiControlPlaneSpec) DeepCopy ¶
func (in *KamajiControlPlaneSpec) DeepCopy() *KamajiControlPlaneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KamajiControlPlaneSpec.
func (*KamajiControlPlaneSpec) DeepCopyInto ¶
func (in *KamajiControlPlaneSpec) DeepCopyInto(out *KamajiControlPlaneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KamajiControlPlaneStatus ¶
type KamajiControlPlaneStatus struct { // the TenantControlPlane has completed initialization. Initialized bool `json:"initialized"` // The TenantControlPlane API Server is ready to receive requests. Ready bool `json:"ready"` // Total number of fully running and ready control plane instances. ReadyReplicas int32 `json:"readyReplicas"` // Total number of non-terminated control plane instances. Replicas int32 `json:"replicas"` Selector string `json:"selector"` // equal to the desired number of control plane instances - ready instances. UnavailableReplicas int32 `json:"unavailableReplicas"` // Total number of non-terminated Pods targeted by this control plane that have the desired template spec. UpdatedReplicas int32 `json:"updatedReplicas"` // ExternalManagedControlPlane indicates to Cluster API that the Control Plane // is externally managed by Kamaji. // +kubebuilder:default=true ExternalManagedControlPlane *bool `json:"externalManagedControlPlane"` // Share the failed process of the KamajiControlPlane provider which wasn't able to complete the reconciliation for the given resource. FailureReason string `json:"failureReason,omitempty"` // The error message, if available, for the failing reconciliation. FailureMessage string `json:"failureMessage,omitempty"` // String representing the minimum Kubernetes version for the control plane machines in the cluster. Version string `json:"version"` }
KamajiControlPlaneStatus defines the observed state of KamajiControlPlane.
func (*KamajiControlPlaneStatus) DeepCopy ¶
func (in *KamajiControlPlaneStatus) DeepCopy() *KamajiControlPlaneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KamajiControlPlaneStatus.
func (*KamajiControlPlaneStatus) DeepCopyInto ¶
func (in *KamajiControlPlaneStatus) DeepCopyInto(out *KamajiControlPlaneStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkComponent ¶
type NetworkComponent struct { // When specified, the KamajiControlPlane will be reachable using an Ingress object // deployed in the management cluster. Ingress *IngressComponent `json:"ingress,omitempty"` // +kubebuilder:default="LoadBalancer" ServiceType kamajiv1alpha1.ServiceType `json:"serviceType,omitempty"` // This field can be used in case of pre-assigned address, such as a VIP, // helping when serviceType is NodePort. ServiceAddress string `json:"serviceAddress,omitempty"` ServiceLabels map[string]string `json:"serviceLabels,omitempty"` ServiceAnnotations map[string]string `json:"serviceAnnotations,omitempty"` // Configure additional Subject Address Names for the kube-apiserver certificate, // useful if the TenantControlPlane is going to be exposed behind a FQDN with NAT. CertSANs []string `json:"certSANs,omitempty"` //nolint:tagliatelle }
func (*NetworkComponent) DeepCopy ¶
func (in *NetworkComponent) DeepCopy() *NetworkComponent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkComponent.
func (*NetworkComponent) DeepCopyInto ¶
func (in *NetworkComponent) DeepCopyInto(out *NetworkComponent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.