# Functions

IsMachineFailedOrTerminating returns true if machine is Failed or already being Terminated.

# Constants

ConflictRetry tells the controller to retry quickly - 200 milliseconds.
DelVolumesAttachments specifies next step as deleting volume attachments.
GetVMStatus sets machine status to terminating and specifies next step as getting VMs.
InitiateDrain specifies next step as initiate node drain.
InitiateFinalizerRemoval specifies next step as machine finalizer removal.
InitiateNodeDeletion specifies next step as node object deletion.
InitiateVMDeletion specifies next step as initiate VM deletion.
InstanceInitialization is a step that represents initialization of a VM instance (post-creation).
LabelKeyMachineSetScaleUpDisabled is the label key that indicates scaling up of the machine set is disabled.
LastAppliedALTAnnotation contains the last configuration of annotations, labels & taints applied on the node object.
LongRetry tells the controller to retry after a long duration - 10 minutes.
MachineClassKind is used to identify the machineClassKind for generic machineClasses.
MachineLabelKey defines the labels which contains the name of the machine of a node.
MachinePriority is the annotation used to specify priority associated with a machine while deleting it.
MediumRetry tells the controller to retry after a medium duration - 2 minutes.
NodeScaledDown is a node termination reason for healthy deleted machines.
NodeTerminationCondition describes nodes that are terminating.
NodeUnhealthy is a node termination reason for failed machines.
NotManagedByMCM annotation helps in identifying the nodes which are not handled by MCM.
ShortRetry tells the controller to retry after a short duration - 15 seconds.
TaintNodeCriticalComponentsNotReady is the name of a gardener taint indicating that a node is not yet ready to have user workload scheduled.
TriggerDeletionByMCM annotation on the node would trigger the deletion of the corresponding machine object in the control cluster This annotation can also be set on the MachineDeployment and contains the machine names for which deletion should be triggered.

# Variables

EssentialTaints are taints on node object which if added/removed, require an immediate reconcile by machine controller TODO: update this when taints for ALT updation and PostCreate operations is introduced.

# Type aliases

RetryPeriod is an alias for specifying the retry period.