cluster-api: sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1alpha4 Index | Files

package v1alpha4

import "sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1alpha4"

Package v1alpha4 contains API Schema definitions for the kubeadm v1alpha4 API group +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io

Index

Package Files

condition_consts.go conversion.go doc.go groupversion_info.go kubeadm_control_plane_types.go kubeadm_control_plane_webhook.go zz_generated.deepcopy.go

Constants

const (
    // CertificatesAvailableCondition documents that cluster certificates were generated as part of the
    // processing of a a KubeadmControlPlane object.
    CertificatesAvailableCondition clusterv1.ConditionType = "CertificatesAvailable"

    // CertificatesGenerationFailedReason (Severity=Warning) documents a KubeadmControlPlane controller detecting
    // an error while generating certificates; those kind of errors are usually temporary and the controller
    // automatically recover from them.
    CertificatesGenerationFailedReason = "CertificatesGenerationFailed"
)
const (
    // AvailableCondition documents that the first control plane instance has completed the kubeadm init operation
    // and so the control plane is available and an API server instance is ready for processing requests.
    AvailableCondition clusterv1.ConditionType = "Available"

    // WaitingForKubeadmInitReason (Severity=Info) documents a KubeadmControlPlane object waiting for the first
    // control plane instance to complete the kubeadm init operation.
    WaitingForKubeadmInitReason = "WaitingForKubeadmInit"
)
const (
    // MachinesSpecUpToDateCondition documents that the spec of the machines controlled by the KubeadmControlPlane
    // is up to date. Whe this condition is false, the KubeadmControlPlane is executing a rolling upgrade.
    MachinesSpecUpToDateCondition clusterv1.ConditionType = "MachinesSpecUpToDate"

    // RollingUpdateInProgressReason (Severity=Warning) documents a KubeadmControlPlane object executing a
    // rolling upgrade for aligning the machines spec to the desired state.
    RollingUpdateInProgressReason = "RollingUpdateInProgress"
)
const (
    // ResizedCondition documents a KubeadmControlPlane that is resizing the set of controlled machines.
    ResizedCondition clusterv1.ConditionType = "Resized"

    // ScalingUpReason (Severity=Info) documents a KubeadmControlPlane that is increasing the number of replicas.
    ScalingUpReason = "ScalingUp"

    // ScalingDownReason (Severity=Info) documents a KubeadmControlPlane that is decreasing the number of replicas.
    ScalingDownReason = "ScalingDown"
)
const (
    // ControlPlaneComponentsHealthyCondition reports the overall status of control plane components
    // implemented as static pods generated by kubeadm including kube-api-server, kube-controller manager,
    // kube-scheduler and etcd if managed.
    ControlPlaneComponentsHealthyCondition clusterv1.ConditionType = "ControlPlaneComponentsHealthy"

    // ControlPlaneComponentsUnhealthyReason (Severity=Error) documents a control plane component not healthy.
    ControlPlaneComponentsUnhealthyReason = "ControlPlaneComponentsUnhealthy"

    // ControlPlaneComponentsUnknownReason reports a control plane component in unknown status.
    ControlPlaneComponentsUnknownReason = "ControlPlaneComponentsUnknown"

    // ControlPlaneComponentsInspectionFailedReason documents a failure in inspecting the control plane component status.
    ControlPlaneComponentsInspectionFailedReason = "ControlPlaneComponentsInspectionFailed"

    // MachineAPIServerPodHealthyCondition reports a machine's kube-apiserver's operational status.
    MachineAPIServerPodHealthyCondition clusterv1.ConditionType = "APIServerPodHealthy"

    // MachineControllerManagerPodHealthyCondition reports a machine's kube-controller-manager's health status.
    MachineControllerManagerPodHealthyCondition clusterv1.ConditionType = "ControllerManagerPodHealthy"

    // MachineSchedulerPodHealthyCondition reports a machine's kube-scheduler's operational status.
    MachineSchedulerPodHealthyCondition clusterv1.ConditionType = "SchedulerPodHealthy"

    // MachineEtcdPodHealthyCondition reports a machine's etcd pod's operational status.
    // NOTE: This conditions exists only if a stacked etcd cluster is used.
    MachineEtcdPodHealthyCondition clusterv1.ConditionType = "EtcdPodHealthy"

    // PodProvisioningReason (Severity=Info) documents a pod waiting to be provisioned i.e., Pod is in "Pending" phase.
    PodProvisioningReason = "PodProvisioning"

    // PodMissingReason (Severity=Error) documents a pod does not exist.
    PodMissingReason = "PodMissing"

    // PodFailedReason (Severity=Error) documents if a pod failed during provisioning i.e., e.g CrashLoopbackOff, ImagePullBackOff
    // or if all the containers in a pod have terminated.
    PodFailedReason = "PodFailed"

    // PodInspectionFailedReason documents a failure in inspecting the pod status.
    PodInspectionFailedReason = "PodInspectionFailed"
)
const (
    // EtcdClusterHealthyCondition documents the overall etcd cluster's health.
    EtcdClusterHealthyCondition clusterv1.ConditionType = "EtcdClusterHealthyCondition"

    // EtcdClusterInspectionFailedReason documents a failure in inspecting the etcd cluster status.
    EtcdClusterInspectionFailedReason = "EtcdClusterInspectionFailed"

    // EtcdClusterUnknownReason reports an etcd cluster in unknown status.
    EtcdClusterUnknownReason = "EtcdClusterUnknown"

    // EtcdClusterUnhealthyReason (Severity=Error) is set when the etcd cluster is unhealthy.
    EtcdClusterUnhealthyReason = "EtcdClusterUnhealthy"

    // MachineEtcdMemberHealthyCondition report the machine's etcd member's health status.
    // NOTE: This conditions exists only if a stacked etcd cluster is used.
    MachineEtcdMemberHealthyCondition clusterv1.ConditionType = "EtcdMemberHealthy"

    // EtcdMemberInspectionFailedReason documents a failure in inspecting the etcd member status.
    EtcdMemberInspectionFailedReason = "MemberInspectionFailed"

    // EtcdMemberUnhealthyReason (Severity=Error) documents a Machine's etcd member is unhealthy.
    EtcdMemberUnhealthyReason = "EtcdMemberUnhealthy"
)
const (
    KubeadmControlPlaneFinalizer = "kubeadm.controlplane.cluster.x-k8s.io"

    // SkipCoreDNSAnnotation annotation explicitly skips reconciling CoreDNS if set
    SkipCoreDNSAnnotation = "controlplane.cluster.x-k8s.io/skip-coredns"

    // SkipKubeProxyAnnotation annotation explicitly skips reconciling kube-proxy if set
    SkipKubeProxyAnnotation = "controlplane.cluster.x-k8s.io/skip-kube-proxy"

    // KubeadmClusterConfigurationAnnotation is a machine annotation that stores the json-marshalled string of KCP ClusterConfiguration.
    // This annotation is used to detect any changes in ClusterConfiguration and trigger machine rollout in KCP.
    KubeadmClusterConfigurationAnnotation = "controlplane.cluster.x-k8s.io/kubeadm-cluster-configuration"
)
const (
    // MachinesReady reports an aggregate of current status of the machines controlled by the KubeadmControlPlane.
    MachinesReadyCondition clusterv1.ConditionType = "MachinesReady"
)

Variables

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

    // 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
)

type KubeadmControlPlane Uses

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

    Spec   KubeadmControlPlaneSpec   `json:"spec,omitempty"`
    Status KubeadmControlPlaneStatus `json:"status,omitempty"`
}

KubeadmControlPlane is the Schema for the KubeadmControlPlane API.

func (*KubeadmControlPlane) DeepCopy Uses

func (in *KubeadmControlPlane) DeepCopy() *KubeadmControlPlane

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

func (*KubeadmControlPlane) DeepCopyInto Uses

func (in *KubeadmControlPlane) DeepCopyInto(out *KubeadmControlPlane)

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

func (*KubeadmControlPlane) DeepCopyObject Uses

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

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

func (*KubeadmControlPlane) Default Uses

func (in *KubeadmControlPlane) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*KubeadmControlPlane) GetConditions Uses

func (in *KubeadmControlPlane) GetConditions() clusterv1.Conditions

func (*KubeadmControlPlane) Hub Uses

func (*KubeadmControlPlane) Hub()

func (*KubeadmControlPlane) SetConditions Uses

func (in *KubeadmControlPlane) SetConditions(conditions clusterv1.Conditions)

func (*KubeadmControlPlane) SetupWebhookWithManager Uses

func (in *KubeadmControlPlane) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*KubeadmControlPlane) ValidateCreate Uses

func (in *KubeadmControlPlane) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*KubeadmControlPlane) ValidateDelete Uses

func (in *KubeadmControlPlane) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*KubeadmControlPlane) ValidateUpdate Uses

func (in *KubeadmControlPlane) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type KubeadmControlPlaneList Uses

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

KubeadmControlPlaneList contains a list of KubeadmControlPlane.

func (*KubeadmControlPlaneList) DeepCopy Uses

func (in *KubeadmControlPlaneList) DeepCopy() *KubeadmControlPlaneList

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

func (*KubeadmControlPlaneList) DeepCopyInto Uses

func (in *KubeadmControlPlaneList) DeepCopyInto(out *KubeadmControlPlaneList)

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

func (*KubeadmControlPlaneList) DeepCopyObject Uses

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

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

func (*KubeadmControlPlaneList) Hub Uses

func (*KubeadmControlPlaneList) Hub()

type KubeadmControlPlaneSpec Uses

type KubeadmControlPlaneSpec struct {
    // Number of desired machines. Defaults to 1. When stacked etcd is used only
    // odd numbers are permitted, as per [etcd best practice](https://etcd.io/docs/v3.3.12/faq/#why-an-odd-number-of-cluster-members).
    // This is a pointer to distinguish between explicit zero and not specified.
    // +optional
    Replicas *int32 `json:"replicas,omitempty"`

    // Version defines the desired Kubernetes version.
    Version string `json:"version"`

    // InfrastructureTemplate is a required reference to a custom resource
    // offered by an infrastructure provider.
    InfrastructureTemplate corev1.ObjectReference `json:"infrastructureTemplate"`

    // KubeadmConfigSpec is a KubeadmConfigSpec
    // to use for initializing and joining machines to the control plane.
    KubeadmConfigSpec cabpkv1.KubeadmConfigSpec `json:"kubeadmConfigSpec"`

    // UpgradeAfter is a field to indicate an upgrade should be performed
    // after the specified time even if no changes have been made to the
    // KubeadmControlPlane
    // +optional
    UpgradeAfter *metav1.Time `json:"upgradeAfter,omitempty"`

    // NodeDrainTimeout is the total amount of time that the controller will spend on draining a controlplane node
    // The default value is 0, meaning that the node can be drained without any time limitations.
    // NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
    // +optional
    NodeDrainTimeout *metav1.Duration `json:"nodeDrainTimeout,omitempty"`
}

KubeadmControlPlaneSpec defines the desired state of KubeadmControlPlane.

func (*KubeadmControlPlaneSpec) DeepCopy Uses

func (in *KubeadmControlPlaneSpec) DeepCopy() *KubeadmControlPlaneSpec

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

func (*KubeadmControlPlaneSpec) DeepCopyInto Uses

func (in *KubeadmControlPlaneSpec) DeepCopyInto(out *KubeadmControlPlaneSpec)

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

type KubeadmControlPlaneStatus Uses

type KubeadmControlPlaneStatus struct {
    // Selector is the label selector in string format to avoid introspection
    // by clients, and is used to provide the CRD-based integration for the
    // scale subresource and additional integrations for things like kubectl
    // describe.. The string will be in the same format as the query-param syntax.
    // More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors
    // +optional
    Selector string `json:"selector,omitempty"`

    // Total number of non-terminated machines targeted by this control plane
    // (their labels match the selector).
    // +optional
    Replicas int32 `json:"replicas,omitempty"`

    // Total number of non-terminated machines targeted by this control plane
    // that have the desired template spec.
    // +optional
    UpdatedReplicas int32 `json:"updatedReplicas,omitempty"`

    // Total number of fully running and ready control plane machines.
    // +optional
    ReadyReplicas int32 `json:"readyReplicas,omitempty"`

    // Total number of unavailable machines targeted by this control plane.
    // This is the total number of machines that are still required for
    // the deployment to have 100% available capacity. They may either
    // be machines that are running but not yet ready or machines
    // that still have not been created.
    // +optional
    UnavailableReplicas int32 `json:"unavailableReplicas,omitempty"`

    // Initialized denotes whether or not the control plane has the
    // uploaded kubeadm-config configmap.
    // +optional
    Initialized bool `json:"initialized"`

    // Ready denotes that the KubeadmControlPlane API Server is ready to
    // receive requests.
    // +optional
    Ready bool `json:"ready"`

    // FailureReason indicates that there is a terminal problem reconciling the
    // state, and will be set to a token value suitable for
    // programmatic interpretation.
    // +optional
    FailureReason errors.KubeadmControlPlaneStatusError `json:"failureReason,omitempty"`

    // ErrorMessage indicates that there is a terminal problem reconciling the
    // state, and will be set to a descriptive error message.
    // +optional
    FailureMessage *string `json:"failureMessage,omitempty"`

    // ObservedGeneration is the latest generation observed by the controller.
    // +optional
    ObservedGeneration int64 `json:"observedGeneration,omitempty"`

    // Conditions defines current service state of the KubeadmControlPlane.
    // +optional
    Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

KubeadmControlPlaneStatus defines the observed state of KubeadmControlPlane.

func (*KubeadmControlPlaneStatus) DeepCopy Uses

func (in *KubeadmControlPlaneStatus) DeepCopy() *KubeadmControlPlaneStatus

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

func (*KubeadmControlPlaneStatus) DeepCopyInto Uses

func (in *KubeadmControlPlaneStatus) DeepCopyInto(out *KubeadmControlPlaneStatus)

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

Package v1alpha4 imports 23 packages (graph) and is imported by 10 packages. Updated 2020-12-03. Refresh now. Tools for package owners.