# Functions
ClusterHetznerCloudProviderTagKey generates the key for resources associated a cluster's HCloud cloud provider.
GetImageSuffix tests whether the suffix is known and outputs it if yes.
HashOfSecretData returns the sha256 of secret data.
VerboseRebootType returns the verbose namem of a reboot Type.
# Constants
AllowEmptyControlPlaneAddressAnnotation allows HetznerCluster Webhook to skip some validation steps for externally managed control planes.
BareMetalHostNamePrefix is a prefix for all hostNames of bare metal servers.
BootstrapNotReadyReason bootstrap not ready yet.
BootstrapReadyCondition indicates that bootstrap is ready.
CheckDiskFailedReason indicates that checking the health of the disk was not successful.
CloudInitNotInstalledReason indicates that cloud init is not installed.
ConstantBareMetalHostnameAnnotation makes hostnames of bare metal servers constant.
ControlPlaneEndpointNotSetReason indicates that the control plane endpoint is not set.
ControlPlaneEndpointSetCondition indicates that the control plane is set.
CredentialsAvailableCondition reports on whether the Hetzner cluster is in ready state.
DeletionInProgressReason indicates that a host is being deleted.
DeprecatedAssociateBMHCondition reports on whether the Hetzner cluster is in ready state.
DeprecatedBareMetalHostFinalizer contains the old string.
DeprecatedBareMetalMachineFinalizer contains the old string.
DeprecatedHCloudMachineFinalizer contains the old string.
DeprecatedHetznerBareMetalHostReadyCondition reports on whether the Hetzner cluster is in ready state.
DeprecatedHetznerClusterFinalizer contains the old string.
DeprecatedHetznerClusterTargetClusterReadyCondition reports on whether the kubeconfig in the target cluster is ready.
DeprecatedHostProvisionSucceededCondition indicates that a host has been provisioned.
DeprecatedInstanceBootstrapReadyCondition reports on current status of the instance.
DeprecatedInstanceReadyCondition reports on current status of the instance.
DeprecatedLoadBalancerAttachedToNetworkCondition reports on whether the load balancer is attached to a network.
DeprecatedNetworkAttachedCondition reports on whether there is a network attached to the cluster.
DeprecatedRateLimitExceededCondition reports whether the rate limit has been reached.
ErrorMessageInvalidRootDeviceHints specifies the error message when invalid root device hints are specified.
ErrorMessageMissingHetznerSecret specifies the error message when no Hetzner secret is found.
ErrorMessageMissingOrInvalidSecretData specifies the error message when no data in secret is missing or invalid.
ErrorMessageMissingOSSSHSecret specifies the error message when no OSSSH secret is found.
ErrorMessageMissingRescueSSHSecret specifies the error message when no RescueSSH secret is found.
ErrorMessageMissingRootDeviceHints specifies the error message when no root device hints are specified.
ErrorTypeConnectionError ErrorType is an error condition indicating that the SSH command returned a connection refused error.
ErrorTypeHardwareRebootTriggered is an error condition that triggers the hardware reboot.
ErrorTypeSoftwareRebootTriggered is an error condition that triggers the software reboot.
ErrorTypeSSHRebootTriggered is an error condition that triggers the SSH reboot.
FatalError is a fatal error that triggers a failureMessage in the bm machine.
#nosec.
HCloudMachineFinalizer allows ReconcileHCloudMachine to clean up HCloud resources associated with HCloudMachine before removing it from the apiserver.
HCloudTokenAvailableCondition reports on whether the HCloud Token is available.
HetznerAPIReachableCondition reports whether the Hetzner APIs are reachable.
HetznerBareMetalHostFinalizer is the name of the finalizer added to hosts to block delete operations until the physical host can be deprovisioned.
HetznerBareMetalMachineFinalizer allows Reconcilehetznerbaremetalmachine to clean up resources associated with hetznerbaremetalmachine before removing it from the apiserver.
HetznerClusterFinalizer allows ReconcileHetznerCluster to clean up HCloud resources associated with HetznerCluster before removing it from the apiserver.
#nosec.
HostAnnotation is the key for an annotation that should go on a HetznerBareMetalMachine to reference what HetznerBareMetalHost it corresponds to.
HostAssociateFailedReason indicates that asssociating a host failed.
HostAssociateSucceededCondition indicates that a host has been associated.
HostReadyCondition reports on whether the HetznerBareMetalHost is ready or not.
IgnoreCheckDiskAnnotation indicates that the machine should get provisioned, even if CheckDisk fails.
ImageAmbiguousReason indicates that there are multiple images with the required properties.
ImageDownloadFailedReason indicates that downloading the machine image (http or OCI) failed.
ImageNotFoundReason indicates that the image could not be found.
ImageSpecInvalidReason indicates that the information specified about the image of the host are invalid.
ImageTypeTar defines the image type for tar files.
ImageTypeTarBz defines the image type for tar.bz files.
ImageTypeTarBz2 defines the image type for tar.bz2 files.
ImageTypeTarGz defines the image type for tar.gz files.
ImageTypeTarXz defines the image type for tar.xz files.
ImageTypeTbz defines the image type for tbz files.
ImageTypeTgz defines the image type for tgz files.
ImageTypeTxz defines the image type for txz files.
InstanceHasNonExistingPlacementGroupReason instance has a placement group name that does not exist.
KubeAPIServerNotRespondingReason indicates that the api server cannot be reached.
KubeConfigNotFoundReason indicates that the Kubeconfig could not be found.
LinuxOnOtherDiskFoundReason indicates that the server can't be provisioned on the given WWN, since the reboot would fail.
LoadBalancerAlgorithmTypeLeastConnections default for load balancer.
LoadBalancerAlgorithmTypeRoundRobin default for the Kubernetes Api Server load balancer.
LoadBalancerAttachFailedReason is used when server could not be attached to network.
LoadBalancerCreateFailedReason used when an error occurs during load balancer create.
LoadBalancerDeleteFailedReason used when an error occurs during load balancer delete.
LoadBalancerFailedToOwnReason used when no owned label could be set on a load balancer.
LoadBalancerReadyCondition reports on whether a control plane load balancer was successfully reconciled.
LoadBalancerServiceSyncFailedReason used when an error occurs while syncing services of load balancer.
LoadBalancerTargetTypeIP default for load balancer.
LoadBalancerTargetTypeServer default for the Kubernetes Api Server load balancer.
LoadBalancerUpdateFailedReason used when an error occurs during load balancer update.
MachineNameTagKey tags related MachineNameTag.
NameHetznerProviderOwned is the tag name we use to differentiate cluster-api-provider-hetzner owned components from other tooling that uses NameKubernetesClusterPrefix.
NameHetznerProviderPrefix is the tag prefix we use to differentiate cluster-api-provider-hetzner owned components from other tooling that uses NameKubernetesClusterPrefix NameHetznerProviderPrefix = "sigs.k8s.io/cluster-api-provider-hetzner/".
NameKubernetesHetznerCloudProviderPrefix is the tag name used by the cloud provider to logically separate independent cluster resources.
NetworkAttachFailedReason is used when server could not be attached to network.
NetworkReadyCondition reports on whether the network is ready.
NetworkReconcileFailedReason indicates that reconciling the network failed.
NoAvailableHostReason indicates that there is no available host.
NoStorageDeviceFoundReason indicates that no suitable storage device could be found.
OSSSHSecretMissingReason indicates that secret with the os ssh key is missing.
PermanentError is like a fatal error but stays on the host machine.
PermanentErrorAnnotation indicates that the bare metal host has an error which needs to be resolved manually.
PhaseDeleting represents the state where host remediation has failed and the controller is deleting the unhealthy Machine object from the cluster.
PhaseRunning represents the running state during remediation.
PhaseWaiting represents the state during remediation when the controller has done its job but still waiting for the result of the last remediation step.
PlacementGroupsSyncedCondition reports on whether the placement groups are successfully synced.
PlacementGroupsSyncFailedReason indicates that syncing the placement groups failed.
PreparationError is an error condition occurring when something fails while preparing host reconciliation.
ProvisioningError is an error condition occurring when the controller fails to provision or deprovision the Host.
ProvisionSucceededCondition indicates that a host has been provisioned.
RateLimitExceededReason indicates that a rate limit has been exceeded.
RebootAnnotation indicates that a bare metal host object should be rebooted.
RebootTimedOutReason indicates that the reboot timed out.
RebootTypeHardware defines the hardware reboot.
RebootTypeManual defines the manual reboot.
RebootTypePower defines the power reboot.
RebootTypeSoftware defines the software reboot.
RebootTypeSSH defines the ssh reboot.
RegistrationError is an error condition occurring when the controller is unable to retrieve information on a specific server via robot.
RemediationTypeReboot sets RemediationType to Reboot.
RescueSSHSecretMissingReason indicates that secret with the rescue ssh key is missing.
RescueSystemUnavailableReason indicates that the server has no rescue system.
ResourceLifecycleOwned is the value we use when tagging resources to indicate that the resource is considered owned and managed by the cluster, and in particular that the lifecycle is tied to the lifecycle of the cluster.
ResourceLifecycleShared is the value we use when tagging resources to indicate that the resource is shared between multiple clusters, and should not be destroyed if the cluster is destroyed.
#nosec.
RootDeviceHintsValidatedCondition reports on whether the root device hints could be validated.
ServerAvailableCondition indicates the instance is in a Running state.
ServerCreateFailedReason indicates that server could not get created.
ServerCreateSucceededCondition reports on current status of the instance.
ServerNotFoundReason indicates that a bare metal server could not be found.
ServerOffReason instance is off.
ServerStartingReason instance is in a terminated state.
ServerTerminatingReason instance is in a terminated state.
ServerTypeNotFoundReason indicates that server type could not be found.
SSHAfterInstallImageFailedReason indicates that the host was not reachable via ssh.
SSHAfterInstallImageSucceededCondition indicates that the host is reachable via ssh after installImage.
SSHConnectionRefusedReason indicates that the server cannot be reached via SSH.
#nosec.
SSHKeyAlreadyExistsReason indicates that the ssh key which is specified in the host spec exists already under a different name in Hetzner robot.
SSHKeyNotFoundReason indicates that ssh key could not be found.
SSHToRescueSystemFailedReason indicates that the rescue system can't be reached via ssh.
StateDeleting means we are deleting the host.
StateDeprovisioning means we are removing all machine-specific information from the host.
StateEnsureProvisioned means we are ensuring the reboot worked and cloud-init was executed successfully.
StateImageInstalling means we install a new image.
StateNone means the state is unknown.
StatePreparing means we are checking if the server exists and preparing it.
StateProvisioned means we have sent userData to the host and booted the machine.
StateRegistering means we are getting hardware details.
StillProvisioningReason indicates that the server is still provisioning.
StorageDeviceNotFoundReason indicates that the storage device specified in the root device hints could not be found.
TargetClusterControlPlaneNotReadyReason indicates that the target cluster's control plane is not ready yet.
TargetClusterCreateFailedReason indicates that the target cluster could not be created.
TargetClusterReadyCondition reports on whether the kubeconfig in the target cluster is ready.
TargetClusterSecretReadyCondition reports on whether the hetzner secret in the target cluster is ready.
TargetSecretSyncFailedReason indicates that the target secret could not be synced.
ValidationFailedReason indicates that the specified root device hints could not be successfully validated.
WipeDiskAnnotation indicates which Disks (WWNs) to erase before provisioning The value is a list of WWNS or "all".
WipeDiskFailedReason indicates that erasing the disks before provisioning failed.
# Variables
AddToScheme adds the types in this group-version to the given scheme.
GroupVersion is group version used to register these objects.
# Structs
BTRFSDefinition defines the btrfs subvolume definitions to be created.
ControllerGeneratedStatus contains all status information which is important to persist.
CPU describes one processor on the host.
HardwareDetails collects all of the information about hardware discovered on the host.
HCloudMachine is the Schema for the hcloudmachines API.
HCloudMachineList contains a list of HCloudMachine.
HCloudMachineSpec defines the desired state of HCloudMachine.
HCloudMachineStatus defines the observed state of HCloudMachine.
HCloudMachineTemplate is the Schema for the hcloudmachinetemplates API.
HCloudMachineTemplateList contains a list of HCloudMachineTemplate.
HCloudMachineTemplateResource describes the data needed to create am HCloudMachine from a template.
HCloudMachineTemplateSpec defines the desired state of HCloudMachineTemplate.
HCloudMachineTemplateStatus defines the observed state of HCloudMachineTemplate.
HCloudMachineTemplateWebhook implements a custom validation webhook for HCloudMachineTemplate.
HCloudNetworkSpec defines the desired state of the HCloud Private Network.
HCloudPlacementGroupSpec defines a PlacementGroup.
HCloudPlacementGroupStatus returns the status of a Placementgroup.
HCloudRemediation is the Schema for the hcloudremediations API.
HCloudRemediationList contains a list of HCloudRemediation.
HCloudRemediationSpec defines the desired state of HCloudRemediation.
HCloudRemediationStatus defines the observed state of HCloudRemediation.
HCloudRemediationTemplate is the Schema for the hcloudremediationtemplates API.
HCloudRemediationTemplateList contains a list of HCloudRemediationTemplate.
HCloudRemediationTemplateResource describes the data needed to create a HCloudRemediation from a template.
HCloudRemediationTemplateSpec defines the desired state of HCloudRemediationTemplate.
HCloudRemediationTemplateStatus defines the observed state of HCloudRemediationTemplate.
HetznerBareMetalHost is the Schema for the hetznerbaremetalhosts API.
HetznerBareMetalHostList contains a list of HetznerBareMetalHost.
HetznerBareMetalHostSpec defines the desired state of HetznerBareMetalHost.
HetznerBareMetalHostStatus defines the observed state of HetznerBareMetalHost.
HetznerBareMetalHostWebhook implements validating and defaulting webhook for HetznerBareMetalHost.
HetznerBareMetalMachine is the Schema for the hetznerbaremetalmachines API.
HetznerBareMetalMachineList contains a list of HetznerBareMetalMachine.
HetznerBareMetalMachineSpec defines the desired state of HetznerBareMetalMachine.
HetznerBareMetalMachineStatus defines the observed state of HetznerBareMetalMachine.
HetznerBareMetalMachineTemplate is the Schema for the hetznerbaremetalmachinetemplates API.
HetznerBareMetalMachineTemplateList contains a list of HetznerBareMetalMachineTemplate.
HetznerBareMetalMachineTemplateResource describes the data needed to create a HetznerBareMetalMachine from a template.
HetznerBareMetalMachineTemplateSpec defines the desired state of HetznerBareMetalMachineTemplate.
HetznerBareMetalMachineTemplateWebhook implements a custom validation webhook for HetznerBareMetalMachineTemplate.
HetznerBareMetalRemediation is the Schema for the hetznerbaremetalremediations API.
HetznerBareMetalRemediationList contains a list of HetznerBareMetalRemediation.
HetznerBareMetalRemediationSpec defines the desired state of HetznerBareMetalRemediation.
HetznerBareMetalRemediationStatus defines the observed state of HetznerBareMetalRemediation.
HetznerBareMetalRemediationTemplate is the Schema for the hetznerbaremetalremediationtemplates API.
HetznerBareMetalRemediationTemplateList contains a list of HetznerBareMetalRemediationTemplate.
HetznerBareMetalRemediationTemplateResource describes the data needed to create a HetznerBareMetalRemediation from a template.
HetznerBareMetalRemediationTemplateSpec defines the desired state of HetznerBareMetalRemediationTemplate.
HetznerBareMetalRemediationTemplateStatus defines the observed state of HetznerBareMetalRemediationTemplate.
HetznerCluster is the Schema for the hetznercluster API.
HetznerClusterList contains a list of HetznerCluster +kubebuilder:object:root=true +k8s:defaulter-gen=true.
HetznerClusterSpec defines the desired state of HetznerCluster.
HetznerClusterStatus defines the observed state of HetznerCluster.
HetznerClusterTemplate is the Schema for the hetznerclustertemplates API.
HetznerClusterTemplateList contains a list of HetznerClusterTemplate.
HetznerClusterTemplateResource contains spec for HetznerClusterSpec.
HetznerClusterTemplateSpec defines the desired state of HetznerClusterTemplate.
HetznerSecretKeyRef defines the key name of the HetznerSecret.
HetznerSecretRef defines all the names of the secret and the relevant keys needed to access Hetzner API.
HetznerSSHKeys defines the global cluster-wide SSHKeys for HetznerCluster.
HostSelector specifies matching criteria for labels on BareMetalHosts.
HostSelectorRequirement defines a requirement used for MatchExpressions to select host machines.
Image defines the properties for the autosetup config.
InstallImage defines the configuration for InstallImage.
LoadBalancerServiceSpec defines a load balancer Target.
LoadBalancerSpec defines the desired state of the Control Plane load balancer.
LoadBalancerStatus defines the observed state of the control plane load balancer.
LoadBalancerTarget defines the target of a load balancer.
LVMDefinition defines the logical volume definitions to be created.
NetworkStatus defines the observed state of the HCloud Private Network.
NIC describes one network interface on the host.
Partition defines the additional Partitions to be created.
PublicNetworkSpec contains specs about the public network spec of an HCloud server.
Raid can be used instead of WWN to point to multiple storage devices.
RebootAnnotationArguments defines the arguments of the RebootAnnotation type.
RemediationStrategy describes how to remediate machines.
RootDeviceHints holds the hints for specifying the storage location for the root filesystem for the image.
SecretStatus contains the reference and version of the last secret that was used.
SSHKey defines the SSHKey for HCloud.
SSHSecretKeyRef defines the key name of the SSHSecret.
SSHSecretRef defines the secret containing all information of the SSH key used for the Hetzner robot.
SSHSpec defines specs for SSH.
SSHStatus contains all status information about SSHStatus.
Storage describes one storage device (disk, SSD, etc.) on the host.
# Type aliases
Capacity is a disk size in Bytes.
ClockSpeed is a clock speed in MHz +kubebuilder:validation:Format=double.
ErrorType indicates the class of problem that has caused the Host resource to enter an error state.
HCloudMachineType defines the HCloud Machine type.
HCloudNetworkZone describes the Network zone.
ImageType defines the accepted image types.
LoadBalancerAlgorithmType defines the Algorithm type.
LoadBalancerTargetType defines the target type.
ProvisioningState defines the states of provisioning of the host.
RebootType defines the reboot type of servers via Hetzner robot API.
Region is a Hetzner Location.
RemediationType defines the type of remediation.
ResourceLifecycle configures the lifecycle of a resource.