Documentation
¶
Overview ¶
Package v1beta1 contains API Schema definitions for the controlplane v1beta1 API group +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io +k8s:defaulter-gen=TypeMeta
Index ¶
- Constants
- Variables
- type KThreesControlPlane
- func (in *KThreesControlPlane) DeepCopy() *KThreesControlPlane
- func (in *KThreesControlPlane) DeepCopyInto(out *KThreesControlPlane)
- func (in *KThreesControlPlane) DeepCopyObject() runtime.Object
- func (in *KThreesControlPlane) Default(_ context.Context, obj runtime.Object) error
- func (in *KThreesControlPlane) GetConditions() clusterv1.Conditions
- func (*KThreesControlPlane) Hub()
- func (in *KThreesControlPlane) SetConditions(conditions clusterv1.Conditions)
- func (in *KThreesControlPlane) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (in *KThreesControlPlane) ValidateCreate(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (in *KThreesControlPlane) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (in *KThreesControlPlane) ValidateUpdate(_ context.Context, _, _ runtime.Object) (admission.Warnings, error)
- type KThreesControlPlaneList
- type KThreesControlPlaneMachineTemplate
- type KThreesControlPlaneSpec
- type KThreesControlPlaneStatus
- type KThreesControlPlaneTemplate
- type KThreesControlPlaneTemplateList
- type KThreesControlPlaneTemplateResource
- type KThreesControlPlaneTemplateResourceSpec
- type KThreesControlPlaneTemplateSpec
- type LastRemediationStatus
- type RemediationStrategy
Constants ¶
const ( // CertificatesAvailableCondition documents that cluster certificates were generated as part of the // processing of a KThreesControlPlane object. CertificatesAvailableCondition clusterv1.ConditionType = "CertificatesAvailable" // CertificatesGenerationFailedReason (Severity=Warning) documents a KThreesControlPlane 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 server init operation // and so the control plane is available and an API server instance is ready for processing requests. AvailableCondition clusterv1.ConditionType = "Available" // WaitingForKthreesServerReason (Severity=Info) documents a KThreesControlPlane object waiting for the first // control plane instance to complete the k3s server operation. WaitingForKthreesServerReason = "WaitingForKthreesServer" )
const ( // MachinesSpecUpToDateCondition documents that the spec of the machines controlled by the KThreesControlPlane // is up to date. Whe this condition is false, the KThreesControlPlane is executing a rolling upgrade. MachinesSpecUpToDateCondition clusterv1.ConditionType = "MachinesSpecUpToDate" // RollingUpdateInProgressReason (Severity=Warning) documents a KThreesControlPlane object executing a // rolling upgrade for aligning the machines spec to the desired state. RollingUpdateInProgressReason = "RollingUpdateInProgress" )
const ( // ResizedCondition documents a KThreesControlPlane that is resizing the set of controlled machines. ResizedCondition clusterv1.ConditionType = "Resized" // ScalingUpReason (Severity=Info) documents a KThreesControlPlane that is increasing the number of replicas. ScalingUpReason = "ScalingUp" // ScalingDownReason (Severity=Info) documents a KThreesControlPlane that is decreasing the number of replicas. ScalingDownReason = "ScalingDown" )
const ( // ControlPlaneComponentsHealthyCondition reports the overall status of the k3s server. 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" // MachineAgentHealthyCondition reports a machine's k3s agent's operational status. MachineAgentHealthyCondition clusterv1.ConditionType = "AgentHealthy" // 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 ( // TokenAvailableCondition documents whether the token required for nodes to join the cluster is available. TokenAvailableCondition clusterv1.ConditionType = "TokenAvailable" // TokenGenerationFailedReason documents that the token required for nodes to join the cluster could not be generated. TokenGenerationFailedReason = "TokenGenerationFailed" )
const ( KThreesControlPlaneFinalizer = "kthrees.controlplane.cluster.x-k8s.io" // KThreesServerConfigurationAnnotation 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. KThreesServerConfigurationAnnotation = "controlplane.cluster.x-k8s.io/kthrees-server-configuration" // SkipCoreDNSAnnotation annotation explicitly skips reconciling CoreDNS if set. SkipCoreDNSAnnotation = "controlplane.cluster.x-k8s.io/skip-coredns" // RemediationInProgressAnnotation is used to keep track that a KCP remediation is in progress, and more // specifically it tracks that the system is in between having deleted an unhealthy machine and recreating its replacement. // NOTE: if something external to CAPI removes this annotation the system cannot detect the above situation; this can lead to // failures in updating remediation retry or remediation count (both counters restart from zero). RemediationInProgressAnnotation = "controlplane.cluster.x-k8s.io/remediation-in-progress" // RemediationForAnnotation is used to link a new machine to the unhealthy machine it is replacing; // please note that in case of retry, when also the remediating machine fails, the system keeps track of // the first machine of the sequence only. // NOTE: if something external to CAPI removes this annotation the system this can lead to // failures in updating remediation retry (the counter restarts from zero). RemediationForAnnotation = "controlplane.cluster.x-k8s.io/remediation-for" // DefaultMinHealthyPeriod defines the default minimum period before we consider a remediation on a // machine unrelated from the previous remediation. DefaultMinHealthyPeriod = 1 * time.Hour )
const ( // MachinesReady reports an aggregate of current status of the machines controlled by the KThreesControlPlane. 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: "v1beta2"} // 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 KThreesControlPlane ¶
type KThreesControlPlane struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec KThreesControlPlaneSpec `json:"spec,omitempty"`
Status KThreesControlPlaneStatus `json:"status,omitempty"`
}
KThreesControlPlane is the Schema for the kthreescontrolplanes API.
func (*KThreesControlPlane) DeepCopy ¶
func (in *KThreesControlPlane) DeepCopy() *KThreesControlPlane
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlane.
func (*KThreesControlPlane) DeepCopyInto ¶
func (in *KThreesControlPlane) DeepCopyInto(out *KThreesControlPlane)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KThreesControlPlane) DeepCopyObject ¶
func (in *KThreesControlPlane) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*KThreesControlPlane) GetConditions ¶
func (in *KThreesControlPlane) GetConditions() clusterv1.Conditions
func (*KThreesControlPlane) Hub ¶
func (*KThreesControlPlane) Hub()
Hub marks KThreesControlPlane as a conversion hub.
func (*KThreesControlPlane) SetConditions ¶
func (in *KThreesControlPlane) SetConditions(conditions clusterv1.Conditions)
func (*KThreesControlPlane) SetupWebhookWithManager ¶
func (in *KThreesControlPlane) SetupWebhookWithManager(mgr ctrl.Manager) error
SetupWebhookWithManager will setup the webhooks for the KThreesControlPlane.
func (*KThreesControlPlane) ValidateCreate ¶
func (in *KThreesControlPlane) ValidateCreate(_ context.Context, _ runtime.Object) (admission.Warnings, error)
ValidateCreate will do any extra validation when creating a KThreesControlPlane.
func (*KThreesControlPlane) ValidateDelete ¶
func (in *KThreesControlPlane) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
ValidateDelete allows you to add any extra validation when deleting.
func (*KThreesControlPlane) ValidateUpdate ¶
func (in *KThreesControlPlane) ValidateUpdate(_ context.Context, _, _ runtime.Object) (admission.Warnings, error)
ValidateUpdate will do any extra validation when updating a KThreesControlPlane.
type KThreesControlPlaneList ¶
type KThreesControlPlaneList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []KThreesControlPlane `json:"items"`
}
KThreesControlPlaneList contains a list of KThreesControlPlane.
func (*KThreesControlPlaneList) DeepCopy ¶
func (in *KThreesControlPlaneList) DeepCopy() *KThreesControlPlaneList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlaneList.
func (*KThreesControlPlaneList) DeepCopyInto ¶
func (in *KThreesControlPlaneList) DeepCopyInto(out *KThreesControlPlaneList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KThreesControlPlaneList) DeepCopyObject ¶
func (in *KThreesControlPlaneList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*KThreesControlPlaneList) Hub ¶
func (*KThreesControlPlaneList) Hub()
Hub marks KThreesControlPlaneList as a conversion hub.
type KThreesControlPlaneMachineTemplate ¶
type KThreesControlPlaneMachineTemplate struct {
// Standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +optional
ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"`
// InfrastructureRef is a required reference to a custom resource
// offered by an infrastructure provider.
InfrastructureRef corev1.ObjectReference `json:"infrastructureRef"`
// 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"`
// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes
// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations.
// +optional
NodeVolumeDetachTimeout *metav1.Duration `json:"nodeVolumeDetachTimeout,omitempty"`
// NodeDeletionTimeout defines how long the machine controller will attempt to delete the Node that the Machine
// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely.
// If no value is provided, the default value for this property of the Machine resource will be used.
// +optional
NodeDeletionTimeout *metav1.Duration `json:"nodeDeletionTimeout,omitempty"`
}
MachineTemplate contains information about how machines should be shaped when creating or updating a control plane.
func (*KThreesControlPlaneMachineTemplate) DeepCopy ¶
func (in *KThreesControlPlaneMachineTemplate) DeepCopy() *KThreesControlPlaneMachineTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlaneMachineTemplate.
func (*KThreesControlPlaneMachineTemplate) DeepCopyInto ¶
func (in *KThreesControlPlaneMachineTemplate) DeepCopyInto(out *KThreesControlPlaneMachineTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KThreesControlPlaneSpec ¶
type KThreesControlPlaneSpec 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"`
// KThreesConfigSpec is a KThreesConfigSpec
// to use for initializing and joining machines to the control plane.
// +optional
KThreesConfigSpec bootstrapv1beta2.KThreesConfigSpec `json:"kthreesConfigSpec,omitempty"`
// RolloutAfter is a field to indicate a rollout should be performed
// after the specified time even if no changes have been made to the
// KThreesControlPlane
// +optional
RolloutAfter *metav1.Time `json:"rolloutAfter,omitempty"`
// MachineTemplate contains information about how machines should be shaped
// when creating or updating a control plane.
MachineTemplate KThreesControlPlaneMachineTemplate `json:"machineTemplate,omitempty"`
// The RemediationStrategy that controls how control plane machine remediation happens.
// +optional
RemediationStrategy *RemediationStrategy `json:"remediationStrategy,omitempty"`
}
KThreesControlPlaneSpec defines the desired state of KThreesControlPlane.
func (*KThreesControlPlaneSpec) DeepCopy ¶
func (in *KThreesControlPlaneSpec) DeepCopy() *KThreesControlPlaneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlaneSpec.
func (*KThreesControlPlaneSpec) DeepCopyInto ¶
func (in *KThreesControlPlaneSpec) DeepCopyInto(out *KThreesControlPlaneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KThreesControlPlaneStatus ¶
type KThreesControlPlaneStatus 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"`
// Version represents the minimum Kubernetes version for the control plane machines
// in the cluster.
// +optional
Version *string `json:"version,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"`
// 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 k3s server is initialized.
// +optional
Initialized bool `json:"initialized"`
// Ready denotes that the KThreesControlPlane 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.KThreesControlPlaneStatusError `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 KThreesControlPlane.
// +optional
Conditions clusterv1.Conditions `json:"conditions,omitempty"`
// LastRemediation stores info about last remediation performed.
// +optional
LastRemediation *LastRemediationStatus `json:"lastRemediation,omitempty"`
}
KThreesControlPlaneStatus defines the observed state of KThreesControlPlane.
func (*KThreesControlPlaneStatus) DeepCopy ¶
func (in *KThreesControlPlaneStatus) DeepCopy() *KThreesControlPlaneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlaneStatus.
func (*KThreesControlPlaneStatus) DeepCopyInto ¶
func (in *KThreesControlPlaneStatus) DeepCopyInto(out *KThreesControlPlaneStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KThreesControlPlaneTemplate ¶
type KThreesControlPlaneTemplate struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec KThreesControlPlaneTemplateSpec `json:"spec,omitempty"`
}
KThreesControlPlaneTemplate is the Schema for the kthreescontrolplanetemplate API.
func (*KThreesControlPlaneTemplate) DeepCopy ¶
func (in *KThreesControlPlaneTemplate) DeepCopy() *KThreesControlPlaneTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlaneTemplate.
func (*KThreesControlPlaneTemplate) DeepCopyInto ¶
func (in *KThreesControlPlaneTemplate) DeepCopyInto(out *KThreesControlPlaneTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KThreesControlPlaneTemplate) DeepCopyObject ¶
func (in *KThreesControlPlaneTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KThreesControlPlaneTemplateList ¶
type KThreesControlPlaneTemplateList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []KThreesControlPlaneTemplate `json:"items"`
}
KThreesControlPlaneTemplateList contains a list of KThreesControlPlaneTemplate.
func (*KThreesControlPlaneTemplateList) DeepCopy ¶
func (in *KThreesControlPlaneTemplateList) DeepCopy() *KThreesControlPlaneTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlaneTemplateList.
func (*KThreesControlPlaneTemplateList) DeepCopyInto ¶
func (in *KThreesControlPlaneTemplateList) DeepCopyInto(out *KThreesControlPlaneTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KThreesControlPlaneTemplateList) DeepCopyObject ¶
func (in *KThreesControlPlaneTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KThreesControlPlaneTemplateResource ¶
type KThreesControlPlaneTemplateResource struct {
// Standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +optional
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
Spec KThreesControlPlaneTemplateResourceSpec `json:"spec"`
}
func (*KThreesControlPlaneTemplateResource) DeepCopy ¶
func (in *KThreesControlPlaneTemplateResource) DeepCopy() *KThreesControlPlaneTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlaneTemplateResource.
func (*KThreesControlPlaneTemplateResource) DeepCopyInto ¶
func (in *KThreesControlPlaneTemplateResource) DeepCopyInto(out *KThreesControlPlaneTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KThreesControlPlaneTemplateResourceSpec ¶
type KThreesControlPlaneTemplateResourceSpec struct {
// KThreesConfigSpec is a KThreesConfigSpec
// to use for initializing and joining machines to the control plane.
// +optional
KThreesConfigSpec bootstrapv1beta2.KThreesConfigSpec `json:"kthreesConfigSpec,omitempty"`
// RolloutAfter is a field to indicate an rollout should be performed
// after the specified time even if no changes have been made to the
// KThreesControlPlane
// +optional
RolloutAfter *metav1.Time `json:"rolloutAfter,omitempty"`
// MachineTemplate contains information about how machines should be shaped
// when creating or updating a control plane.
MachineTemplate KThreesControlPlaneMachineTemplate `json:"machineTemplate,omitempty"`
// The RemediationStrategy that controls how control plane machine remediation happens.
// +optional
RemediationStrategy *RemediationStrategy `json:"remediationStrategy,omitempty"`
}
func (*KThreesControlPlaneTemplateResourceSpec) DeepCopy ¶
func (in *KThreesControlPlaneTemplateResourceSpec) DeepCopy() *KThreesControlPlaneTemplateResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlaneTemplateResourceSpec.
func (*KThreesControlPlaneTemplateResourceSpec) DeepCopyInto ¶
func (in *KThreesControlPlaneTemplateResourceSpec) DeepCopyInto(out *KThreesControlPlaneTemplateResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KThreesControlPlaneTemplateSpec ¶
type KThreesControlPlaneTemplateSpec struct {
Template KThreesControlPlaneTemplateResource `json:"template"`
}
KThreesControlPlaneTemplateSpec defines the desired state of KThreesControlPlaneTemplateSpec.
func (*KThreesControlPlaneTemplateSpec) DeepCopy ¶
func (in *KThreesControlPlaneTemplateSpec) DeepCopy() *KThreesControlPlaneTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KThreesControlPlaneTemplateSpec.
func (*KThreesControlPlaneTemplateSpec) DeepCopyInto ¶
func (in *KThreesControlPlaneTemplateSpec) DeepCopyInto(out *KThreesControlPlaneTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LastRemediationStatus ¶
type LastRemediationStatus struct {
// Machine is the machine name of the latest machine being remediated.
Machine string `json:"machine"`
// Timestamp is when last remediation happened. It is represented in RFC3339 form and is in UTC.
Timestamp metav1.Time `json:"timestamp"`
// RetryCount used to keep track of remediation retry for the last remediated machine.
// A retry happens when a machine that was created as a replacement for an unhealthy machine also fails.
RetryCount int32 `json:"retryCount"`
}
LastRemediationStatus stores info about last remediation performed. NOTE: if for any reason information about last remediation are lost, RetryCount is going to restart from 0 and thus more remediations than expected might happen.
func (*LastRemediationStatus) DeepCopy ¶
func (in *LastRemediationStatus) DeepCopy() *LastRemediationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LastRemediationStatus.
func (*LastRemediationStatus) DeepCopyInto ¶
func (in *LastRemediationStatus) DeepCopyInto(out *LastRemediationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemediationStrategy ¶
type RemediationStrategy struct {
// MaxRetry is the Max number of retries while attempting to remediate an unhealthy machine.
// A retry happens when a machine that was created as a replacement for an unhealthy machine also fails.
// For example, given a control plane with three machines M1, M2, M3:
//
// M1 become unhealthy; remediation happens, and M1-1 is created as a replacement.
// If M1-1 (replacement of M1) has problems while bootstrapping it will become unhealthy, and then be
// remediated; such operation is considered a retry, remediation-retry #1.
// If M1-2 (replacement of M1-1) becomes unhealthy, remediation-retry #2 will happen, etc.
//
// A retry could happen only after RetryPeriod from the previous retry.
// If a machine is marked as unhealthy after MinHealthyPeriod from the previous remediation expired,
// this is not considered a retry anymore because the new issue is assumed unrelated from the previous one.
//
// If not set, the remedation will be retried infinitely.
// +optional
MaxRetry *int32 `json:"maxRetry,omitempty"`
// RetryPeriod is the duration that KCP should wait before remediating a machine being created as a replacement
// for an unhealthy machine (a retry).
//
// If not set, a retry will happen immediately.
// +optional
RetryPeriod metav1.Duration `json:"retryPeriod,omitempty"`
// MinHealthyPeriod defines the duration after which KCP will consider any failure to a machine unrelated
// from the previous one. In this case the remediation is not considered a retry anymore, and thus the retry
// counter restarts from 0. For example, assuming MinHealthyPeriod is set to 1h (default)
//
// M1 become unhealthy; remediation happens, and M1-1 is created as a replacement.
// If M1-1 (replacement of M1) has problems within the 1hr after the creation, also
// this machine will be remediated and this operation is considered a retry - a problem related
// to the original issue happened to M1 -.
//
// If instead the problem on M1-1 is happening after MinHealthyPeriod expired, e.g. four days after
// m1-1 has been created as a remediation of M1, the problem on M1-1 is considered unrelated to
// the original issue happened to M1.
//
// If not set, this value is defaulted to 1h.
// +optional
MinHealthyPeriod *metav1.Duration `json:"minHealthyPeriod,omitempty"`
}
RemediationStrategy allows to define how control plane machine remediation happens.
func (*RemediationStrategy) DeepCopy ¶
func (in *RemediationStrategy) DeepCopy() *RemediationStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemediationStrategy.
func (*RemediationStrategy) DeepCopyInto ¶
func (in *RemediationStrategy) DeepCopyInto(out *RemediationStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.