v1beta1

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 15, 2024 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	// LoadBalancerReadyCondition reports on whether a control plane load balancer was successfully reconciled.
	LoadBalancerReadyCondition clusterv1.ConditionType = "LoadBalancerReady"
	// LoadBalancerCreateFailedReason used when an error occurs during load balancer create.
	LoadBalancerCreateFailedReason = "LoadBalancerCreateFailed"
	// LoadBalancerUpdateFailedReason used when an error occurs during load balancer update.
	LoadBalancerUpdateFailedReason = "LoadBalancerUpdateFailed"
	// LoadBalancerDeleteFailedReason used when an error occurs during load balancer delete.
	LoadBalancerDeleteFailedReason = "LoadBalancerDeleteFailed"
	// LoadBalancerServiceSyncFailedReason used when an error occurs while syncing services of load balancer.
	LoadBalancerServiceSyncFailedReason = "LoadBalancerServiceSyncFailed"
	// LoadBalancerFailedToOwnReason used when no owned label could be set on a load balancer.
	LoadBalancerFailedToOwnReason = "LoadBalancerFailedToOwn"
)
View Source
const (
	// ServerCreateSucceededCondition reports on current status of the instance. Ready indicates the instance is in a Running state.
	ServerCreateSucceededCondition clusterv1.ConditionType = "ServerCreateSucceeded"
	// InstanceHasNonExistingPlacementGroupReason instance has a placement group name that does not exist.
	InstanceHasNonExistingPlacementGroupReason = "InstanceHasNonExistingPlacementGroup"
	// SSHKeyNotFoundReason indicates that ssh key could not be found.
	SSHKeyNotFoundReason = "SSHKeyNotFound"
	// ImageNotFoundReason indicates that the image could not be found.
	ImageNotFoundReason = "ImageNotFound"
	// ImageAmbiguousReason indicates that there are multiple images with the required properties.
	ImageAmbiguousReason = "ImageAmbiguous"
	// ServerTypeNotFoundReason indicates that server type could not be found.
	ServerTypeNotFoundReason = "ServerTypeNotFound"
	// ServerCreateFailedReason indicates that server could not get created.
	ServerCreateFailedReason = "ServerCreateFailedReason"
)
View Source
const (
	// ServerAvailableCondition indicates the instance is in a Running state.
	ServerAvailableCondition clusterv1.ConditionType = "ServerAvailable"
	// ServerTerminatingReason instance is in a terminated state.
	ServerTerminatingReason = "InstanceTerminated"
	// ServerStartingReason instance is in a terminated state.
	ServerStartingReason = "ServerStarting"
	// ServerOffReason instance is off.
	ServerOffReason = "ServerOff"
)
View Source
const (
	// NetworkAttachFailedReason is used when server could not be attached to network.
	NetworkAttachFailedReason = "NetworkAttachFailed"
	// LoadBalancerAttachFailedReason is used when server could not be attached to network.
	LoadBalancerAttachFailedReason = "LoadBalancerAttachFailed"
)
View Source
const (
	// BootstrapReadyCondition  indicates that bootstrap is ready.
	BootstrapReadyCondition clusterv1.ConditionType = "BootstrapReady"
	// BootstrapNotReadyReason bootstrap not ready yet.
	BootstrapNotReadyReason = "BootstrapNotReady"
)
View Source
const (
	// NetworkReadyCondition reports on whether the network is ready.
	NetworkReadyCondition clusterv1.ConditionType = "NetworkReady"
	// NetworkReconcileFailedReason indicates that reconciling the network failed.
	NetworkReconcileFailedReason = "NetworkReconcileFailed"
)
View Source
const (
	// PlacementGroupsSyncedCondition reports on whether the placement groups are successfully synced.
	PlacementGroupsSyncedCondition clusterv1.ConditionType = "PlacementGroupsSynced"
	// PlacementGroupsSyncFailedReason indicates that syncing the placement groups failed.
	PlacementGroupsSyncFailedReason = "PlacementGroupsSyncFailed"
)
View Source
const (
	// HCloudTokenAvailableCondition reports on whether the HCloud Token is available.
	HCloudTokenAvailableCondition clusterv1.ConditionType = "HCloudTokenAvailable"
	// HetznerSecretUnreachableReason indicates that Hetzner secret is unreachable.
	HetznerSecretUnreachableReason = "HetznerSecretUnreachable" // #nosec
	// HCloudCredentialsInvalidReason indicates that credentials for HCloud are invalid.
	HCloudCredentialsInvalidReason = "HCloudCredentialsInvalid" // #nosec
)
View Source
const (
	// RootDeviceHintsValidatedCondition reports on whether the root device hints could be validated.
	RootDeviceHintsValidatedCondition clusterv1.ConditionType = "RootDeviceHintsValidated"
	// ValidationFailedReason indicates that the specified root device hints could not be successfully validated.
	ValidationFailedReason = "ValidationFailed"
	// StorageDeviceNotFoundReason indicates that the storage device specified in the root device hints could not be found.
	StorageDeviceNotFoundReason = "StorageDeviceNotFound"
)
View Source
const (
	// TargetClusterReadyCondition reports on whether the kubeconfig in the target cluster is ready.
	TargetClusterReadyCondition clusterv1.ConditionType = "TargetClusterReady"
	// KubeConfigNotFoundReason indicates that the Kubeconfig could not be found.
	KubeConfigNotFoundReason = "KubeConfigNotFound"
	// KubeAPIServerNotRespondingReason indicates that the api server cannot be reached.
	KubeAPIServerNotRespondingReason = "KubeAPIServerNotResponding"
	// TargetClusterCreateFailedReason indicates that the target cluster could not be created.
	TargetClusterCreateFailedReason = "TargetClusterCreateFailed"
	// TargetClusterControlPlaneNotReadyReason indicates that the target cluster's control plane is not ready yet.
	TargetClusterControlPlaneNotReadyReason = "TargetClusterControlPlaneNotReady"
	// ControlPlaneEndpointSetCondition indicates that the control plane is set.
	ControlPlaneEndpointSetCondition = "ControlPlaneEndpointSet"
)
View Source
const (
	// TargetClusterSecretReadyCondition reports on whether the hetzner secret in the target cluster is ready.
	TargetClusterSecretReadyCondition clusterv1.ConditionType = "TargetClusterSecretReady"
	// TargetSecretSyncFailedReason indicates that the target secret could not be synced.
	TargetSecretSyncFailedReason = "TargetSecretSyncFailed"
	// ControlPlaneEndpointNotSetReason indicates that the control plane endpoint is not set.
	ControlPlaneEndpointNotSetReason = "ControlPlaneEndpointNotSet"
)
View Source
const (
	// HetznerAPIReachableCondition reports whether the Hetzner APIs are reachable.
	HetznerAPIReachableCondition clusterv1.ConditionType = "HetznerAPIReachable"
	// RateLimitExceededReason indicates that a rate limit has been exceeded.
	RateLimitExceededReason = "RateLimitExceeded"
)
View Source
const (
	// CredentialsAvailableCondition reports on whether the Hetzner cluster is in ready state.
	CredentialsAvailableCondition clusterv1.ConditionType = "CredentialsAvailable"
	// RobotCredentialsInvalidReason indicates that credentials for Robot are invalid.
	RobotCredentialsInvalidReason = "RobotCredentialsInvalid" // #nosec
	// SSHCredentialsInSecretInvalidReason indicates that ssh credentials are invalid.
	SSHCredentialsInSecretInvalidReason = "SSHCredentialsInSecretInvalid" // #nosec
	// SSHKeyAlreadyExistsReason indicates that the ssh key which is specified in the host spec exists already under a different name in Hetzner robot.
	SSHKeyAlreadyExistsReason = "SSHKeyAlreadyExists"
	// OSSSHSecretMissingReason indicates that secret with the os ssh key is missing.
	OSSSHSecretMissingReason = "OSSSHSecretMissing"
	// RescueSSHSecretMissingReason indicates that secret with the rescue ssh key is missing.
	RescueSSHSecretMissingReason = "RescueSSHSecretMissing"
)
View Source
const (
	// ProvisionSucceededCondition indicates that a host has been provisioned.
	ProvisionSucceededCondition clusterv1.ConditionType = "ProvisionSucceeded"
	// StillProvisioningReason indicates that the server is still provisioning.
	StillProvisioningReason = "StillProvisioning"
	// SSHConnectionRefusedReason indicates that the server cannot be reached via SSH.
	SSHConnectionRefusedReason = "SSHConnectionRefused"
	// RescueSystemUnavailableReason indicates that the server has no rescue system.
	RescueSystemUnavailableReason = "RescueSystemUnavailable"
	// ImageSpecInvalidReason indicates that the information specified about the image of the host are invalid.
	ImageSpecInvalidReason = "ImageSpecInvalid"
	// ImageDownloadFailedReason indicates that downloading the machine image (http or OCI) failed.
	ImageDownloadFailedReason = "ImageDownloadFailed"
	// NoStorageDeviceFoundReason indicates that no suitable storage device could be found.
	NoStorageDeviceFoundReason = "NoStorageDeviceFound"
	// CloudInitNotInstalledReason indicates that cloud init is not installed.
	CloudInitNotInstalledReason = "CloudInitNotInstalled"
	// ServerNotFoundReason indicates that a bare metal server could not be found.
	ServerNotFoundReason = "ServerNotFound"
	// LinuxOnOtherDiskFoundReason indicates that the server can't be provisioned on the given WWN, since the reboot would fail.
	LinuxOnOtherDiskFoundReason = "LinuxOnOtherDiskFound"
	// WipeDiskFailedReason indicates that erasing the disks before provisioning failed.
	WipeDiskFailedReason = "WipeDiskFailed"
	// SSHToRescueSystemFailedReason indicates that the rescue system can't be reached via ssh.
	SSHToRescueSystemFailedReason = "SSHToRescueSystemFailed"
	// RebootTimedOutReason indicates that the reboot timed out.
	RebootTimedOutReason = "RebootTimedOut"
	// CheckDiskFailedReason indicates that checking the health of the disk was not successful.
	CheckDiskFailedReason = "CheckDiskFailed"
)
View Source
const (
	// SSHAfterInstallImageSucceededCondition indicates that the host is reachable via ssh after installImage.
	SSHAfterInstallImageSucceededCondition clusterv1.ConditionType = "SSHAfterInstallImageSucceeded"

	// SSHAfterInstallImageFailedReason indicates that the host was not reachable via ssh.
	SSHAfterInstallImageFailedReason = "SSHAfterInstallImageFailed"
)
View Source
const (
	// HostAssociateSucceededCondition indicates that a host has been associated.
	HostAssociateSucceededCondition clusterv1.ConditionType = "HostAssociateSucceeded"
	// NoAvailableHostReason indicates that there is no available host.
	NoAvailableHostReason = "NoAvailableHost"
	// HostAssociateFailedReason indicates that asssociating a host failed.
	HostAssociateFailedReason = "HostAssociateFailed"
)
View Source
const (
	// DeprecatedHostProvisionSucceededCondition indicates that a host has been provisioned.
	DeprecatedHostProvisionSucceededCondition clusterv1.ConditionType = "HostProvisionSucceeded"

	// DeprecatedInstanceReadyCondition reports on current status of the instance. Ready indicates the instance is in a Running state.
	DeprecatedInstanceReadyCondition clusterv1.ConditionType = "InstanceReady"

	// DeprecatedInstanceBootstrapReadyCondition reports on current status of the instance. BootstrapReady indicates the bootstrap is ready.
	DeprecatedInstanceBootstrapReadyCondition clusterv1.ConditionType = "InstanceBootstrapReady"

	// DeprecatedHetznerClusterTargetClusterReadyCondition reports on whether the kubeconfig in the target cluster is ready.
	DeprecatedHetznerClusterTargetClusterReadyCondition clusterv1.ConditionType = "HetznerClusterTargetClusterReady"

	// DeprecatedNetworkAttachedCondition reports on whether there is a network attached to the cluster.
	DeprecatedNetworkAttachedCondition clusterv1.ConditionType = "NetworkAttached"

	// DeprecatedLoadBalancerAttachedToNetworkCondition reports on whether the load balancer is attached to a network.
	DeprecatedLoadBalancerAttachedToNetworkCondition clusterv1.ConditionType = "LoadBalancerAttachedToNetwork"

	// DeprecatedHetznerBareMetalHostReadyCondition reports on whether the Hetzner cluster is in ready state.
	DeprecatedHetznerBareMetalHostReadyCondition clusterv1.ConditionType = "HetznerBareMetalHostReady"

	// DeprecatedAssociateBMHCondition reports on whether the Hetzner cluster is in ready state.
	DeprecatedAssociateBMHCondition clusterv1.ConditionType = "AssociateBMHCondition"

	// DeprecatedRateLimitExceededCondition reports whether the rate limit has been reached.
	DeprecatedRateLimitExceededCondition clusterv1.ConditionType = "RateLimitExceeded"
)
View Source
const (
	// HCloudMachineFinalizer allows ReconcileHCloudMachine to clean up HCloud
	// resources associated with HCloudMachine before removing it from the
	// apiserver.
	HCloudMachineFinalizer = "infrastructure.cluster.x-k8s.io/hcloudmachine"
	// DeprecatedHCloudMachineFinalizer contains the old string.
	// The controller will automatically update to the new string.
	DeprecatedHCloudMachineFinalizer = "hcloudmachine.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// HetznerBareMetalHostFinalizer is the name of the finalizer added to
	// hosts to block delete operations until the physical host can be
	// deprovisioned.
	HetznerBareMetalHostFinalizer = "infrastructure.cluster.x-k8s.io/hetznerbaremetalhost"

	// DeprecatedBareMetalHostFinalizer contains the old string.
	// The controller will automatically update to the new string.
	DeprecatedBareMetalHostFinalizer = "hetznerbaremetalhost.infrastructure.cluster.x-k8s.io"

	// HostAnnotation is the key for an annotation that should go on a HetznerBareMetalMachine to
	// reference what HetznerBareMetalHost it corresponds to.
	HostAnnotation = "infrastructure.cluster.x-k8s.io/HetznerBareMetalHost"

	// WipeDiskAnnotation indicates which Disks (WWNs) to erase before provisioning
	// The value is a list of WWNS or "all".
	WipeDiskAnnotation = "capi.syself.com/wipe-disk"

	// IgnoreCheckDiskAnnotation indicates that the machine should get provisioned, even if CheckDisk fails.
	IgnoreCheckDiskAnnotation = "capi.syself.com/ignore-check-disk"
)
View Source
const (
	// ErrorMessageMissingRootDeviceHints specifies the error message when no root device hints are specified.
	ErrorMessageMissingRootDeviceHints = "no root device hints specified"
	// ErrorMessageInvalidRootDeviceHints specifies the error message when invalid root device hints are specified.
	ErrorMessageInvalidRootDeviceHints = "invalid root device hints specified"
	// ErrorMessageMissingHetznerSecret specifies the error message when no Hetzner secret is found.
	ErrorMessageMissingHetznerSecret = "could not find HetznerSecret"
	// ErrorMessageMissingRescueSSHSecret specifies the error message when no RescueSSH secret is found.
	ErrorMessageMissingRescueSSHSecret = "could not find RescueSSHSecret"
	// ErrorMessageMissingOSSSHSecret specifies the error message when no OSSSH secret is found.
	ErrorMessageMissingOSSSHSecret = "could not find OSSSHSecret"
	// ErrorMessageMissingOrInvalidSecretData specifies the error message when no data in secret is missing or invalid.
	ErrorMessageMissingOrInvalidSecretData = "invalid or not specified information in secret"
)
View Source
const (
	// HetznerBareMetalMachineFinalizer allows Reconcilehetznerbaremetalmachine to clean up resources associated with hetznerbaremetalmachine before
	// removing it from the apiserver.
	HetznerBareMetalMachineFinalizer = "infrastructure.cluster.x-k8s.io/hetznerbaremetalmachine"

	// DeprecatedBareMetalMachineFinalizer contains the old string.
	// The controller will automatically update to the new string.
	DeprecatedBareMetalMachineFinalizer = "hetznerbaremetalmachine.infrastructure.cluster.x-k8s.io"

	// BareMetalHostNamePrefix is a prefix for all hostNames of bare metal servers.
	BareMetalHostNamePrefix = "bm-"
)
View Source
const (
	// RebootAnnotation indicates that a bare metal host object should be rebooted.
	RebootAnnotation = "capi.syself.com/reboot"

	// PermanentErrorAnnotation indicates that the bare metal host has an error which needs to be resolved manually.
	// After the permanent error the annotation got removed (usually by a human), the controller removes
	// ErrorType, ErrorCount and ErrorMessages, so that the hbmh will be usable again.
	PermanentErrorAnnotation = "capi.syself.com/permanent-error"
)
View Source
const (
	// HetznerClusterFinalizer allows ReconcileHetznerCluster to clean up HCloud
	// resources associated with HetznerCluster before removing it from the
	// apiserver.
	HetznerClusterFinalizer = "infrastructure.cluster.x-k8s.io/hetznercluster"

	// DeprecatedHetznerClusterFinalizer contains the old string.
	// The controller will automatically update to the new string.
	DeprecatedHetznerClusterFinalizer = "hetznercluster.infrastructure.cluster.x-k8s.io"

	// AllowEmptyControlPlaneAddressAnnotation allows HetznerCluster Webhook
	// to skip some validation steps for externally managed control planes.
	AllowEmptyControlPlaneAddressAnnotation = "capi.syself.com/allow-empty-control-plane-address"
	// ConstantBareMetalHostnameAnnotation makes hostnames of bare metal servers constant.
	ConstantBareMetalHostnameAnnotation = "capi.syself.com/constant-bare-metal-hostname"
)
View Source
const (
	// PhaseRunning represents the running state during remediation.
	PhaseRunning = "Running"

	// PhaseWaiting represents the state during remediation when the controller has done its job but still waiting for the result of the last remediation step.
	PhaseWaiting = "Waiting"

	// PhaseDeleting represents the state where host remediation has failed and the controller is deleting the unhealthy Machine object from the cluster.
	PhaseDeleting = "Deleting machine"
)
View Source
const (
	// 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.
	ResourceLifecycleOwned = ResourceLifecycle("owned")

	// 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.
	ResourceLifecycleShared = ResourceLifecycle("shared")

	// NameKubernetesHetznerCloudProviderPrefix is the tag name used by the cloud provider to logically
	// separate independent cluster resources. We use it to identify which resources we expect
	// to be permissive about state changes.
	// logically independent clusters running in the same AZ.
	// The tag key = NameKubernetesHetznerCloudProviderPrefix + clusterID
	// The tag value is an ownership value.
	NameKubernetesHetznerCloudProviderPrefix = "caph"

	// 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/".
	NameHetznerProviderPrefix = "caph-"
	// NameHetznerProviderOwned is the tag name we use to differentiate
	// cluster-api-provider-hetzner owned components from other tooling that
	// uses NameKubernetesClusterPrefix.
	NameHetznerProviderOwned = NameHetznerProviderPrefix + "cluster-"

	// MachineNameTagKey tags related MachineNameTag.
	MachineNameTagKey = "machine." + NameHetznerProviderPrefix + "name"
)
View Source
const (

	// LoadBalancerAlgorithmTypeRoundRobin default for the Kubernetes Api Server load balancer.
	LoadBalancerAlgorithmTypeRoundRobin = LoadBalancerAlgorithmType("round_robin")

	// LoadBalancerAlgorithmTypeLeastConnections default for load balancer.
	LoadBalancerAlgorithmTypeLeastConnections = LoadBalancerAlgorithmType("least_connections")
)
View Source
const (

	// LoadBalancerTargetTypeServer default for the Kubernetes Api Server load balancer.
	LoadBalancerTargetTypeServer = LoadBalancerTargetType("server")

	// LoadBalancerTargetTypeIP default for load balancer.
	LoadBalancerTargetTypeIP = LoadBalancerTargetType("ip")
)
View Source
const (
	// DeletionInProgressReason indicates that a host is being deleted.
	DeletionInProgressReason = "DeletionInProgress"
)
View Source
const (
	// HostReadyCondition reports on whether the HetznerBareMetalHost is ready or not.
	HostReadyCondition clusterv1.ConditionType = "HostReady"
)

Variables

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = schemeBuilder.AddToScheme
)

Functions

func ClusterHetznerCloudProviderTagKey

func ClusterHetznerCloudProviderTagKey(name string) string

ClusterHetznerCloudProviderTagKey generates the key for resources associated a cluster's HCloud cloud provider.

func GetImageSuffix

func GetImageSuffix(url string) (string, error)

GetImageSuffix tests whether the suffix is known and outputs it if yes. Otherwise it returns an error.

func HashOfSecretData

func HashOfSecretData(data map[string][]byte) ([]byte, error)

HashOfSecretData returns the sha256 of secret data.

func VerboseRebootType

func VerboseRebootType(rebootType RebootType) string

VerboseRebootType returns the verbose namem of a reboot Type. The string is CamelCase.

Types

type BTRFSDefinition

type BTRFSDefinition struct {
	// Volume defines the btrfs volume name.
	Volume string `json:"volume"`

	// SubVolume defines the subvolume name.
	SubVolume string `json:"subvolume"`

	// Mount defines the mountpath.
	Mount string `json:"mount"`
}

BTRFSDefinition defines the btrfs subvolume definitions to be created.

func (*BTRFSDefinition) DeepCopy

func (in *BTRFSDefinition) DeepCopy() *BTRFSDefinition

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

func (*BTRFSDefinition) DeepCopyInto

func (in *BTRFSDefinition) DeepCopyInto(out *BTRFSDefinition)

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

type CPU

type CPU struct {
	Arch           string     `json:"arch,omitempty"`
	Model          string     `json:"model,omitempty"`
	ClockGigahertz ClockSpeed `json:"clockGigahertz,omitempty"`
	Flags          []string   `json:"flags,omitempty"`
	Threads        int        `json:"threads,omitempty"`
	Cores          int        `json:"cores,omitempty"`
}

CPU describes one processor on the host.

func (*CPU) DeepCopy

func (in *CPU) DeepCopy() *CPU

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

func (*CPU) DeepCopyInto

func (in *CPU) DeepCopyInto(out *CPU)

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

type Capacity

type Capacity int64

Capacity is a disk size in Bytes.

type ClockSpeed

type ClockSpeed string

ClockSpeed is a clock speed in MHz +kubebuilder:validation:Format=double

type ControllerGeneratedStatus

type ControllerGeneratedStatus struct {
	// HetznerClusterRef is the name of the HetznerCluster object which is
	// needed as some necessary information is stored there, e.g. the hrobot password.
	HetznerClusterRef string `json:"hetznerClusterRef"`

	// UserData holds the reference to the Secret containing the user
	// data to be passed to the host before it boots.
	// +optional
	UserData *corev1.SecretReference `json:"userData,omitempty"`

	// InstallImage is the configuration that is used for the autosetup configuration for installing an OS via InstallImage.
	// +optional
	InstallImage *InstallImage `json:"installImage,omitempty"`

	// StatusHardwareDetails are automatically gathered and should not be modified by the user.
	// +optional
	HardwareDetails *HardwareDetails `json:"hardwareDetails,omitempty"`

	// IPv4 address of server.
	// +optional
	IPv4 string `json:"ipv4"`

	// IPv6 address of server.
	// +optional
	IPv6 string `json:"ipv6"`

	// RebootTypes is a list of all available reboot types for API reboots.
	// +optional
	RebootTypes []RebootType `json:"rebootTypes,omitempty"`

	// SSHSpec defines specs for SSH.
	SSHSpec *SSHSpec `json:"sshSpec,omitempty"`

	// HetznerRobotSSHKey contains the name and fingerprint of the HetznerCluster spec specified SSH key.
	// +optional
	SSHStatus SSHStatus `json:"sshStatus,omitempty"`

	// ErrorType indicates the type of failure encountered when the
	// OperationalStatus is OperationalStatusError.
	// +optional
	ErrorType ErrorType `json:"errorType,omitempty"`

	// ErrorCount records how many times the host has encountered an error since the last successful operation.
	// +kubebuilder:default:=0
	ErrorCount int `json:"errorCount"`

	// Information tracked by the provisioner.
	// +optional
	ProvisioningState ProvisioningState `json:"provisioningState,omitempty"`

	// the last error message reported by the provisioning subsystem.
	// +optional
	ErrorMessage string `json:"errorMessage"`

	// the last error message reported by the provisioning subsystem.
	// +optional
	LastUpdated *metav1.Time `json:"lastUpdated,omitempty"`

	// Rebooted shows whether the server is currently being rebooted.
	Rebooted bool `json:"rebooted,omitempty"`

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

ControllerGeneratedStatus contains all status information which is important to persist.

func (*ControllerGeneratedStatus) DeepCopy

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

func (*ControllerGeneratedStatus) DeepCopyInto

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

func (ControllerGeneratedStatus) GetIPAddress

func (sts ControllerGeneratedStatus) GetIPAddress() string

GetIPAddress returns the IPv6 if set, otherwise the IPv4.

type ErrorType

type ErrorType string

ErrorType indicates the class of problem that has caused the Host resource to enter an error state.

const (
	// ErrorTypeSSHRebootTriggered is an error condition that triggers the SSH reboot.
	ErrorTypeSSHRebootTriggered ErrorType = "ssh reboot triggered"
	// ErrorTypeSoftwareRebootTriggered is an error condition that triggers the software reboot.
	ErrorTypeSoftwareRebootTriggered ErrorType = "software reboot triggered"
	// ErrorTypeHardwareRebootTriggered is an error condition that triggers the hardware reboot.
	ErrorTypeHardwareRebootTriggered ErrorType = "hardware reboot triggered"

	// ErrorTypeConnectionError ErrorType is an error condition indicating that the SSH command returned a connection refused error.
	ErrorTypeConnectionError ErrorType = "connection refused error of SSH command"

	// RegistrationError is an error condition occurring when the
	// controller is unable to retrieve information on a specific server via robot.
	RegistrationError ErrorType = "registration error"
	// PreparationError is an error condition occurring when something fails while preparing host reconciliation.
	PreparationError ErrorType = "preparation error"
	// ProvisioningError is an error condition occurring when the controller
	// fails to provision or deprovision the Host.
	ProvisioningError ErrorType = "provisioning error"

	// FatalError is a fatal error that triggers a failureMessage in the bm machine.
	FatalError ErrorType = "fatal error"

	// PermanentError is like a fatal error but stays on the host machine.
	PermanentError ErrorType = "permanent error"
)

type HCloudMachine

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

	Spec   HCloudMachineSpec   `json:"spec,omitempty"`
	Status HCloudMachineStatus `json:"status,omitempty"`
}

HCloudMachine is the Schema for the hcloudmachines API. +kubebuilder:object:root=true +kubebuilder:resource:path=hcloudmachines,scope=Namespaced,categories=cluster-api,shortName=hcma +kubebuilder:storageversion +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels.cluster\\.x-k8s\\.io/cluster-name",description="Cluster to which this HCloudMachine belongs" +kubebuilder:printcolumn:name="Machine",type="string",JSONPath=".metadata.ownerReferences[?(@.kind==\"Machine\")].name",description="Machine object which owns with this HCloudMachine" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.instanceState",description="Phase of HCloudMachine" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of hcloudmachine" +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +k8s:defaulter-gen=true

func (*HCloudMachine) DeepCopy

func (in *HCloudMachine) DeepCopy() *HCloudMachine

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

func (*HCloudMachine) DeepCopyInto

func (in *HCloudMachine) DeepCopyInto(out *HCloudMachine)

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

func (*HCloudMachine) DeepCopyObject

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

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

func (*HCloudMachine) Default

func (r *HCloudMachine) Default()

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

func (*HCloudMachine) GetConditions

func (r *HCloudMachine) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the HCloudMachine resource.

func (*HCloudMachine) HCloudMachineSpec

func (r *HCloudMachine) HCloudMachineSpec() *HCloudMachineSpec

HCloudMachineSpec returns a DeepCopy.

func (*HCloudMachine) Hub

func (*HCloudMachine) Hub()

Hub marks HCloudMachine as a conversion hub.

func (*HCloudMachine) SetConditions

func (r *HCloudMachine) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the HCloudMachine to the predescribed clusterv1.Conditions.

func (*HCloudMachine) SetupWebhookWithManager

func (r *HCloudMachine) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HCloudMachine.

func (*HCloudMachine) ValidateCreate

func (r *HCloudMachine) ValidateCreate() (admission.Warnings, error)

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

func (*HCloudMachine) ValidateDelete

func (r *HCloudMachine) ValidateDelete() (admission.Warnings, error)

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

func (*HCloudMachine) ValidateUpdate

func (r *HCloudMachine) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type HCloudMachineList

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

HCloudMachineList contains a list of HCloudMachine.

func (*HCloudMachineList) DeepCopy

func (in *HCloudMachineList) DeepCopy() *HCloudMachineList

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

func (*HCloudMachineList) DeepCopyInto

func (in *HCloudMachineList) DeepCopyInto(out *HCloudMachineList)

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

func (*HCloudMachineList) DeepCopyObject

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

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

func (*HCloudMachineList) Hub

func (*HCloudMachineList) Hub()

Hub marks HCloudMachineList as a conversion hub.

func (*HCloudMachineList) SetupWebhookWithManager

func (r *HCloudMachineList) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HCloudMachineList.

type HCloudMachineSpec

type HCloudMachineSpec struct {
	// ProviderID is the unique identifier as specified by the cloud provider.
	// +optional
	ProviderID *string `json:"providerID,omitempty"`

	// Type is the HCloud Machine Type for this machine. It defines the desired server type of server in Hetzner's Cloud API. Example: cpx11.
	// +kubebuilder:validation:Enum=cpx11;cx21;cpx21;cx31;cpx31;cx41;cpx41;cx51;cpx51;ccx11;ccx12;ccx13;ccx21;ccx22;ccx23;ccx31;ccx32;ccx33;ccx41;ccx42;ccx43;ccx51;ccx52;ccx53;ccx62;ccx63;cax11;cax21;cax31;cax41;cx22;cx32;cx42;cx52
	Type HCloudMachineType `json:"type"`

	// ImageName is the reference to the Machine Image from which to create the machine instance.
	// It can reference an image uploaded to Hetzner API in two ways: either directly as the name of an image or as the label of an image.
	// +kubebuilder:validation:MinLength=1
	ImageName string `json:"imageName"`

	// SSHKeys define machine-specific SSH keys and override cluster-wide SSH keys.
	// +optional
	SSHKeys []SSHKey `json:"sshKeys,omitempty"`

	// PlacementGroupName defines the placement group of the machine in HCloud API that must reference an existing placement group.
	// +optional
	PlacementGroupName *string `json:"placementGroupName,omitempty"`

	// PublicNetwork specifies information for public networks. It defines the specs about
	// the primary IP address of the server. If both IPv4 and IPv6 are disabled, then the private network has to be enabled.
	// +optional
	PublicNetwork *PublicNetworkSpec `json:"publicNetwork,omitempty"`
}

HCloudMachineSpec defines the desired state of HCloudMachine.

func (*HCloudMachineSpec) DeepCopy

func (in *HCloudMachineSpec) DeepCopy() *HCloudMachineSpec

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

func (*HCloudMachineSpec) DeepCopyInto

func (in *HCloudMachineSpec) DeepCopyInto(out *HCloudMachineSpec)

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

type HCloudMachineStatus

type HCloudMachineStatus struct {
	// Ready is true when the provider resource is ready.
	// +optional
	Ready bool `json:"ready"`

	// Addresses contain the server's associated addresses.
	Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`

	// Region contains the name of the HCloud location the server is running.
	Region Region `json:"region,omitempty"`

	// SSHKeys specifies the ssh keys that were used for provisioning the server.
	SSHKeys []SSHKey `json:"sshKeys,omitempty"`

	// InstanceState is the state of the server for this machine.
	// +optional
	InstanceState *hcloud.ServerStatus `json:"instanceState,omitempty"`

	// FailureReason will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a succinct value suitable
	// for machine interpretation.
	// +optional
	FailureReason *capierrors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a more verbose string suitable
	// for logging and human consumption.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

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

HCloudMachineStatus defines the observed state of HCloudMachine.

func (*HCloudMachineStatus) DeepCopy

func (in *HCloudMachineStatus) DeepCopy() *HCloudMachineStatus

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

func (*HCloudMachineStatus) DeepCopyInto

func (in *HCloudMachineStatus) DeepCopyInto(out *HCloudMachineStatus)

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

type HCloudMachineTemplate

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

	Spec   HCloudMachineTemplateSpec   `json:"spec,omitempty"`
	Status HCloudMachineTemplateStatus `json:"status,omitempty"`
}

HCloudMachineTemplate is the Schema for the hcloudmachinetemplates API.

func (*HCloudMachineTemplate) DeepCopy

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

func (*HCloudMachineTemplate) DeepCopyInto

func (in *HCloudMachineTemplate) DeepCopyInto(out *HCloudMachineTemplate)

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

func (*HCloudMachineTemplate) DeepCopyObject

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

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

func (*HCloudMachineTemplate) GetConditions

func (r *HCloudMachineTemplate) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the HCloudMachine resource.

func (*HCloudMachineTemplate) Hub

func (*HCloudMachineTemplate) Hub()

Hub marks HCloudMachineTemplate as a conversion hub.

func (*HCloudMachineTemplate) SetConditions

func (r *HCloudMachineTemplate) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the HCloudMachine to the predescribed clusterv1.Conditions.

type HCloudMachineTemplateList

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

HCloudMachineTemplateList contains a list of HCloudMachineTemplate.

func (*HCloudMachineTemplateList) DeepCopy

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

func (*HCloudMachineTemplateList) DeepCopyInto

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

func (*HCloudMachineTemplateList) DeepCopyObject

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

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

func (*HCloudMachineTemplateList) Hub

Hub marks HCloudMachineTemplateList as a conversion hub.

type HCloudMachineTemplateResource

type HCloudMachineTemplateResource struct {
	// Standard object's metadata.
	// +optional
	ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"`

	// Spec is the specification of the desired behavior of the machine.
	Spec HCloudMachineSpec `json:"spec"`
}

HCloudMachineTemplateResource describes the data needed to create am HCloudMachine from a template.

func (*HCloudMachineTemplateResource) DeepCopy

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

func (*HCloudMachineTemplateResource) DeepCopyInto

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

type HCloudMachineTemplateSpec

type HCloudMachineTemplateSpec struct {
	Template HCloudMachineTemplateResource `json:"template"`
}

HCloudMachineTemplateSpec defines the desired state of HCloudMachineTemplate.

func (*HCloudMachineTemplateSpec) DeepCopy

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

func (*HCloudMachineTemplateSpec) DeepCopyInto

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

type HCloudMachineTemplateStatus

type HCloudMachineTemplateStatus struct {
	// Capacity defines the resource capacity for this machine.
	// This value is used for autoscaling from zero operations as defined in:
	// https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20210310-opt-in-autoscaling-from-zero.md
	// +optional
	Capacity corev1.ResourceList `json:"capacity,omitempty"`

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

	// OwnerType is the type of object that owns the HCloudMachineTemplate.
	// +optional
	OwnerType string `json:"ownerType,omitempty"`
}

HCloudMachineTemplateStatus defines the observed state of HCloudMachineTemplate.

func (*HCloudMachineTemplateStatus) DeepCopy

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

func (*HCloudMachineTemplateStatus) DeepCopyInto

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

type HCloudMachineTemplateWebhook

type HCloudMachineTemplateWebhook struct{}

HCloudMachineTemplateWebhook implements a custom validation webhook for HCloudMachineTemplate. +kubebuilder:object:generate=false

func (*HCloudMachineTemplateWebhook) SetupWebhookWithManager

func (r *HCloudMachineTemplateWebhook) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerMachineTemplate.

func (*HCloudMachineTemplateWebhook) ValidateCreate

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

func (*HCloudMachineTemplateWebhook) ValidateDelete

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

func (*HCloudMachineTemplateWebhook) ValidateUpdate

func (r *HCloudMachineTemplateWebhook) ValidateUpdate(ctx context.Context, oldRaw runtime.Object, newRaw runtime.Object) (admission.Warnings, error)

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

type HCloudMachineType

type HCloudMachineType string

HCloudMachineType defines the HCloud Machine type.

type HCloudNetworkSpec

type HCloudNetworkSpec struct {
	// Enabled defines whether the network should be enabled or not.
	Enabled bool `json:"enabled"`

	// CIDRBlock defines the cidrBlock of the HCloud Network. If omitted, default "10.0.0.0/16" will be used.
	// +kubebuilder:default="10.0.0.0/16"
	// +optional
	CIDRBlock string `json:"cidrBlock,omitempty"`

	// SubnetCIDRBlock defines the cidrBlock for the subnet of the HCloud Network.
	// Note: A subnet is required.
	// +kubebuilder:default="10.0.0.0/24"
	// +optional
	SubnetCIDRBlock string `json:"subnetCidrBlock,omitempty"`

	// NetworkZone specifies the HCloud network zone of the private network.
	// The zones must be one of eu-central, us-east, or us-west. The default is eu-central.
	// +kubebuilder:validation:Enum=eu-central;us-east;us-west;ap-southeast
	// +kubebuilder:default=eu-central
	// +optional
	NetworkZone HCloudNetworkZone `json:"networkZone,omitempty"`
}

HCloudNetworkSpec defines the desired state of the HCloud Private Network.

func (*HCloudNetworkSpec) DeepCopy

func (in *HCloudNetworkSpec) DeepCopy() *HCloudNetworkSpec

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

func (*HCloudNetworkSpec) DeepCopyInto

func (in *HCloudNetworkSpec) DeepCopyInto(out *HCloudNetworkSpec)

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

func (*HCloudNetworkSpec) IsZero

func (s *HCloudNetworkSpec) IsZero() bool

IsZero returns true if a private Network is set.

type HCloudNetworkZone

type HCloudNetworkZone string

HCloudNetworkZone describes the Network zone.

type HCloudPlacementGroupSpec

type HCloudPlacementGroupSpec struct {
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// +kubebuilder:validation:Enum=spread
	// +kubebuilder:default=spread
	Type string `json:"type,omitempty"`
}

HCloudPlacementGroupSpec defines a PlacementGroup.

func (*HCloudPlacementGroupSpec) DeepCopy

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

func (*HCloudPlacementGroupSpec) DeepCopyInto

func (in *HCloudPlacementGroupSpec) DeepCopyInto(out *HCloudPlacementGroupSpec)

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

type HCloudPlacementGroupStatus

type HCloudPlacementGroupStatus struct {
	ID     int64   `json:"id,omitempty"`
	Server []int64 `json:"servers,omitempty"`
	Name   string  `json:"name,omitempty"`
	Type   string  `json:"type,omitempty"`
}

HCloudPlacementGroupStatus returns the status of a Placementgroup.

func (*HCloudPlacementGroupStatus) DeepCopy

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

func (*HCloudPlacementGroupStatus) DeepCopyInto

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

type HCloudRemediation

type HCloudRemediation struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +optional
	Spec HCloudRemediationSpec `json:"spec,omitempty"`
	// +optional
	Status HCloudRemediationStatus `json:"status,omitempty"`
}

HCloudRemediation is the Schema for the hcloudremediations API.

func (*HCloudRemediation) DeepCopy

func (in *HCloudRemediation) DeepCopy() *HCloudRemediation

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

func (*HCloudRemediation) DeepCopyInto

func (in *HCloudRemediation) DeepCopyInto(out *HCloudRemediation)

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

func (*HCloudRemediation) DeepCopyObject

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

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

func (*HCloudRemediation) Default

func (r *HCloudRemediation) Default()

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

func (*HCloudRemediation) GetConditions

func (r *HCloudRemediation) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the HCloudRemediation resource.

func (*HCloudRemediation) SetConditions

func (r *HCloudRemediation) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the HCloudRemediation to the predescribed clusterv1.Conditions.

func (*HCloudRemediation) SetupWebhookWithManager

func (r *HCloudRemediation) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HCloudRemediation.

func (*HCloudRemediation) ValidateCreate

func (r *HCloudRemediation) ValidateCreate() (admission.Warnings, error)

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

func (*HCloudRemediation) ValidateDelete

func (r *HCloudRemediation) ValidateDelete() (admission.Warnings, error)

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

func (*HCloudRemediation) ValidateUpdate

func (r *HCloudRemediation) ValidateUpdate(runtime.Object) (admission.Warnings, error)

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

type HCloudRemediationList

type HCloudRemediationList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []HCloudRemediation `json:"items"`
}

HCloudRemediationList contains a list of HCloudRemediation.

func (*HCloudRemediationList) DeepCopy

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

func (*HCloudRemediationList) DeepCopyInto

func (in *HCloudRemediationList) DeepCopyInto(out *HCloudRemediationList)

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

func (*HCloudRemediationList) DeepCopyObject

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

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

type HCloudRemediationSpec

type HCloudRemediationSpec struct {
	// Strategy field defines remediation strategy.
	Strategy *RemediationStrategy `json:"strategy,omitempty"`
}

HCloudRemediationSpec defines the desired state of HCloudRemediation.

func (*HCloudRemediationSpec) DeepCopy

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

func (*HCloudRemediationSpec) DeepCopyInto

func (in *HCloudRemediationSpec) DeepCopyInto(out *HCloudRemediationSpec)

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

type HCloudRemediationStatus

type HCloudRemediationStatus struct {
	// Phase represents the current phase of machine remediation.
	// E.g. Pending, Running, Done etc.
	// +optional
	Phase string `json:"phase,omitempty"`

	// RetryCount can be used as a counter during the remediation.
	// Field can hold number of reboots etc.
	// +optional
	RetryCount int `json:"retryCount,omitempty"`

	// LastRemediated identifies when the host was last remediated
	// +optional
	LastRemediated *metav1.Time `json:"lastRemediated,omitempty"`

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

HCloudRemediationStatus defines the observed state of HCloudRemediation.

func (*HCloudRemediationStatus) DeepCopy

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

func (*HCloudRemediationStatus) DeepCopyInto

func (in *HCloudRemediationStatus) DeepCopyInto(out *HCloudRemediationStatus)

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

type HCloudRemediationTemplate

type HCloudRemediationTemplate struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +optional
	Spec HCloudRemediationTemplateSpec `json:"spec,omitempty"`
	// +optional
	Status HCloudRemediationTemplateStatus `json:"status,omitempty"`
}

HCloudRemediationTemplate is the Schema for the hcloudremediationtemplates API.

func (*HCloudRemediationTemplate) DeepCopy

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

func (*HCloudRemediationTemplate) DeepCopyInto

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

func (*HCloudRemediationTemplate) DeepCopyObject

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

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

func (*HCloudRemediationTemplate) Default

func (r *HCloudRemediationTemplate) Default()

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

func (*HCloudRemediationTemplate) SetupWebhookWithManager

func (r *HCloudRemediationTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HCloudRemediationTemplate.

func (*HCloudRemediationTemplate) ValidateCreate

func (r *HCloudRemediationTemplate) ValidateCreate() (admission.Warnings, error)

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

func (*HCloudRemediationTemplate) ValidateDelete

func (r *HCloudRemediationTemplate) ValidateDelete() (admission.Warnings, error)

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

func (*HCloudRemediationTemplate) ValidateUpdate

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

type HCloudRemediationTemplateList

type HCloudRemediationTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []HCloudRemediationTemplate `json:"items"`
}

HCloudRemediationTemplateList contains a list of HCloudRemediationTemplate.

func (*HCloudRemediationTemplateList) DeepCopy

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

func (*HCloudRemediationTemplateList) DeepCopyInto

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

func (*HCloudRemediationTemplateList) DeepCopyObject

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

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

type HCloudRemediationTemplateResource

type HCloudRemediationTemplateResource struct {
	// Spec is the specification of the desired behavior of the HCloudRemediation.
	Spec HCloudRemediationSpec `json:"spec"`
}

HCloudRemediationTemplateResource describes the data needed to create a HCloudRemediation from a template.

func (*HCloudRemediationTemplateResource) DeepCopy

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

func (*HCloudRemediationTemplateResource) DeepCopyInto

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

type HCloudRemediationTemplateSpec

type HCloudRemediationTemplateSpec struct {
	Template HCloudRemediationTemplateResource `json:"template"`
}

HCloudRemediationTemplateSpec defines the desired state of HCloudRemediationTemplate.

func (*HCloudRemediationTemplateSpec) DeepCopy

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

func (*HCloudRemediationTemplateSpec) DeepCopyInto

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

type HCloudRemediationTemplateStatus

type HCloudRemediationTemplateStatus struct {
	// HCloudRemediationStatus defines the observed state of HCloudRemediation
	Status HCloudRemediationStatus `json:"status"`
}

HCloudRemediationTemplateStatus defines the observed state of HCloudRemediationTemplate.

func (*HCloudRemediationTemplateStatus) DeepCopy

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

func (*HCloudRemediationTemplateStatus) DeepCopyInto

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

type HardwareDetails

type HardwareDetails struct {
	RAMGB   int       `json:"ramGB,omitempty"`
	NIC     []NIC     `json:"nics,omitempty"`
	Storage []Storage `json:"storage,omitempty"`
	CPU     CPU       `json:"cpu,omitempty"`
}

HardwareDetails collects all of the information about hardware discovered on the host.

func (*HardwareDetails) DeepCopy

func (in *HardwareDetails) DeepCopy() *HardwareDetails

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

func (*HardwareDetails) DeepCopyInto

func (in *HardwareDetails) DeepCopyInto(out *HardwareDetails)

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

type HetznerBareMetalHost

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

	Spec   HetznerBareMetalHostSpec   `json:"spec,omitempty"`
	Status HetznerBareMetalHostStatus `json:"status,omitempty"`
}

HetznerBareMetalHost is the Schema for the hetznerbaremetalhosts API.

func (*HetznerBareMetalHost) ClearError

func (host *HetznerBareMetalHost) ClearError()

ClearError removes the error on the host and resets the error count to 0.

func (*HetznerBareMetalHost) ClearRebootAnnotations

func (host *HetznerBareMetalHost) ClearRebootAnnotations()

ClearRebootAnnotations deletes all reboot annotations that exist on the host.

func (*HetznerBareMetalHost) DeepCopy

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

func (*HetznerBareMetalHost) DeepCopyInto

func (in *HetznerBareMetalHost) DeepCopyInto(out *HetznerBareMetalHost)

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

func (*HetznerBareMetalHost) DeepCopyObject

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

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

func (*HetznerBareMetalHost) Default

func (host *HetznerBareMetalHost) Default()

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

func (*HetznerBareMetalHost) GetConditions

func (host *HetznerBareMetalHost) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the HetznerBareMetalHost resource.

func (*HetznerBareMetalHost) HasHardwareReboot

func (host *HetznerBareMetalHost) HasHardwareReboot() bool

HasHardwareReboot returns a boolean indicating whether hardware reboot exists for the server.

func (*HetznerBareMetalHost) HasRebootAnnotation

func (host *HetznerBareMetalHost) HasRebootAnnotation() bool

HasRebootAnnotation checks for the existence of reboot annotations and returns true if at least one exists.

func (*HetznerBareMetalHost) HasSoftwareReboot

func (host *HetznerBareMetalHost) HasSoftwareReboot() bool

HasSoftwareReboot returns a boolean indicating whether software reboot exists for server.

func (*HetznerBareMetalHost) NeedsProvisioning

func (host *HetznerBareMetalHost) NeedsProvisioning() bool

NeedsProvisioning compares the settings with the provisioning status and returns true when more work is needed or false otherwise.

func (*HetznerBareMetalHost) SetConditions

func (host *HetznerBareMetalHost) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the HetznerBareMetalHost to the predescribed clusterv1.Conditions.

func (*HetznerBareMetalHost) SetError

func (host *HetznerBareMetalHost) SetError(errType ErrorType, errMessage string)

SetError updates the error type and message in the status struct and increases the ErrorCount.

func (*HetznerBareMetalHost) UpdateOSSSHStatus

func (host *HetznerBareMetalHost) UpdateOSSSHStatus(secret corev1.Secret) error

UpdateOSSSHStatus modifies the ssh status with the last chosen ssh secret.

func (*HetznerBareMetalHost) UpdateRescueSSHStatus

func (host *HetznerBareMetalHost) UpdateRescueSSHStatus(secret corev1.Secret) error

UpdateRescueSSHStatus modifies the ssh status with the last chosen ssh secret.

type HetznerBareMetalHostList

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

HetznerBareMetalHostList contains a list of HetznerBareMetalHost.

func (*HetznerBareMetalHostList) DeepCopy

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

func (*HetznerBareMetalHostList) DeepCopyInto

func (in *HetznerBareMetalHostList) DeepCopyInto(out *HetznerBareMetalHostList)

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

func (*HetznerBareMetalHostList) DeepCopyObject

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

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

type HetznerBareMetalHostSpec

type HetznerBareMetalHostSpec struct {
	// ServerID defines the ID of the server provided by Hetzner.
	// Find it on your Hetzner robot dashboard.
	ServerID int `json:"serverID"`

	// RootDeviceHints provides guidance about how to choose the device for the image
	// being provisioned. They need to be specified to provision the host.
	// +optional
	RootDeviceHints *RootDeviceHints `json:"rootDeviceHints,omitempty"`

	// ConsumerRef is a reference to the HetznerBareMetalMachine
	// that is using this host. When it is not empty, the host is considered "in use".
	// +optional
	ConsumerRef *corev1.ObjectReference `json:"consumerRef,omitempty"`

	// MaintenanceMode indicates that a machine is supposed to be deprovisioned
	// and won't be selected by any Hetzner bare metal machine.
	MaintenanceMode *bool `json:"maintenanceMode,omitempty"`

	// Description is a human-entered text used to help identify the host.
	// It can be used to store some valuable information about the host.
	// +optional
	Description string `json:"description,omitempty"`

	// Status contains all status information. The controller writes this status.
	// As some cannot be regenerated during any reconcilement, the status
	// is in the specs of the object - not the actual status. DO NOT EDIT!!!
	// +optional
	Status ControllerGeneratedStatus `json:"status,omitempty"`
}

HetznerBareMetalHostSpec defines the desired state of HetznerBareMetalHost.

func (*HetznerBareMetalHostSpec) DeepCopy

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

func (*HetznerBareMetalHostSpec) DeepCopyInto

func (in *HetznerBareMetalHostSpec) DeepCopyInto(out *HetznerBareMetalHostSpec)

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

type HetznerBareMetalHostStatus

type HetznerBareMetalHostStatus struct{}

HetznerBareMetalHostStatus defines the observed state of HetznerBareMetalHost.

func (*HetznerBareMetalHostStatus) DeepCopy

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

func (*HetznerBareMetalHostStatus) DeepCopyInto

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

type HetznerBareMetalHostWebhook

type HetznerBareMetalHostWebhook struct {
	// contains filtered or unexported fields
}

HetznerBareMetalHostWebhook implements validating and defaulting webhook for HetznerBareMetalHost. +k8s:deepcopy-gen=false

func (*HetznerBareMetalHostWebhook) SetupWebhookWithManager

func (hw *HetznerBareMetalHostWebhook) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerBareMetalHost.

func (*HetznerBareMetalHostWebhook) ValidateCreate

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

func (*HetznerBareMetalHostWebhook) ValidateDelete

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

func (*HetznerBareMetalHostWebhook) ValidateUpdate

func (hw *HetznerBareMetalHostWebhook) ValidateUpdate(_ context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)

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

type HetznerBareMetalMachine

type HetznerBareMetalMachine struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +optional
	Spec HetznerBareMetalMachineSpec `json:"spec,omitempty"`
	// +optional
	Status HetznerBareMetalMachineStatus `json:"status,omitempty"`
}

HetznerBareMetalMachine is the Schema for the hetznerbaremetalmachines API. +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:path=hetznerbaremetalmachines,scope=Namespaced,categories=cluster-api,shortName=hbmm +kubebuilder:storageversion +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels.cluster\\.x-k8s\\.io/cluster-name",description="Cluster to which this HetznerBareMetalMachine belongs" +kubebuilder:printcolumn:name="Host",type="string",JSONPath=".metadata.annotations.infrastructure\\.cluster\\.x-k8s\\.io/HetznerBareMetalHost",description="HetznerBareMetalHost" +kubebuilder:printcolumn:name="Machine",type="string",JSONPath=".metadata.ownerReferences[?(@.kind==\"Machine\")].name",description="Machine object which owns with this HetznerBareMetalMachine" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="HetznerBareMetalMachine status such as Pending/Provisioning/Running etc" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of HetznerBareMetalMachine" +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message"

func (*HetznerBareMetalMachine) DeepCopy

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

func (*HetznerBareMetalMachine) DeepCopyInto

func (in *HetznerBareMetalMachine) DeepCopyInto(out *HetznerBareMetalMachine)

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

func (*HetznerBareMetalMachine) DeepCopyObject

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

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

func (*HetznerBareMetalMachine) Default

func (bmMachine *HetznerBareMetalMachine) Default()

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

func (*HetznerBareMetalMachine) GetConditions

func (bmMachine *HetznerBareMetalMachine) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the HetznerBareMetalMachine resource.

func (*HetznerBareMetalMachine) HasHostAnnotation

func (bmMachine *HetznerBareMetalMachine) HasHostAnnotation() bool

HasHostAnnotation checks whether the annotation that references a host exists.

func (*HetznerBareMetalMachine) SetConditions

func (bmMachine *HetznerBareMetalMachine) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the HetznerBareMetalMachine to the predescribed clusterv1.Conditions.

func (*HetznerBareMetalMachine) SetFailure

func (bmMachine *HetznerBareMetalMachine) SetFailure(reason capierrors.MachineStatusError, message string)

SetFailure sets a failure reason and message.

func (*HetznerBareMetalMachine) SetupWebhookWithManager

func (bmMachine *HetznerBareMetalMachine) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerBareMetalMachine.

func (*HetznerBareMetalMachine) ValidateCreate

func (bmMachine *HetznerBareMetalMachine) ValidateCreate() (admission.Warnings, error)

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

func (*HetznerBareMetalMachine) ValidateDelete

func (bmMachine *HetznerBareMetalMachine) ValidateDelete() (admission.Warnings, error)

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

func (*HetznerBareMetalMachine) ValidateUpdate

func (bmMachine *HetznerBareMetalMachine) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type HetznerBareMetalMachineList

type HetznerBareMetalMachineList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []HetznerBareMetalMachine `json:"items"`
}

HetznerBareMetalMachineList contains a list of HetznerBareMetalMachine.

func (*HetznerBareMetalMachineList) DeepCopy

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

func (*HetznerBareMetalMachineList) DeepCopyInto

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

func (*HetznerBareMetalMachineList) DeepCopyObject

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

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

type HetznerBareMetalMachineSpec

type HetznerBareMetalMachineSpec struct {
	// ProviderID will be the hetznerbaremetalmachine which is set by the controller
	// in the `hcloud://bm-<server-id>` format.
	// +optional
	ProviderID *string `json:"providerID,omitempty"`

	// InstallImage is the configuration that is used for the autosetup configuration for installing an OS via InstallImage.
	InstallImage InstallImage `json:"installImage"`

	// HostSelector specifies matching criteria for labels on HetznerBareMetalHosts.
	// This is used to limit the set of HetznerBareMetalHost objects considered for
	// claiming for a HetznerBareMetalMachine.
	// +optional
	HostSelector HostSelector `json:"hostSelector,omitempty"`

	// SSHSpec gives a reference on the secret where SSH details are specified as well as ports for SSH.
	SSHSpec SSHSpec `json:"sshSpec,omitempty"`
}

HetznerBareMetalMachineSpec defines the desired state of HetznerBareMetalMachine.

func (*HetznerBareMetalMachineSpec) DeepCopy

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

func (*HetznerBareMetalMachineSpec) DeepCopyInto

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

type HetznerBareMetalMachineStatus

type HetznerBareMetalMachineStatus struct {
	// LastUpdated identifies when this status was last observed.
	// +optional
	LastUpdated *metav1.Time `json:"lastUpdated,omitempty"`

	// FailureReason will be set in the event that there is a terminal problem.
	// +optional
	FailureReason *capierrors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// Addresses is a list of addresses assigned to the machine.
	// This field is copied from the infrastructure provider reference.
	// +optional
	Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`

	// Ready is the state of the hetznerbaremetalmachine.
	// +optional
	Ready bool `json:"ready"`

	// Phase represents the current phase of HetznerBareMetalMachineStatus actuation.
	// E.g. Pending, Running, Terminating, Failed, etc.
	// +optional
	Phase clusterv1.MachinePhase `json:"phase,omitempty"`

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

HetznerBareMetalMachineStatus defines the observed state of HetznerBareMetalMachine.

func (*HetznerBareMetalMachineStatus) DeepCopy

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

func (*HetznerBareMetalMachineStatus) DeepCopyInto

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

type HetznerBareMetalMachineTemplate

type HetznerBareMetalMachineTemplate struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec HetznerBareMetalMachineTemplateSpec `json:"spec,omitempty"`
}

HetznerBareMetalMachineTemplate is the Schema for the hetznerbaremetalmachinetemplates API. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of HetznerBareMetalMachineTemplate" +kubebuilder:resource:path=hetznerbaremetalmachinetemplates,scope=Namespaced,categories=cluster-api,shortName=hbmmt +kubebuilder:storageversion

func (*HetznerBareMetalMachineTemplate) DeepCopy

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

func (*HetznerBareMetalMachineTemplate) DeepCopyInto

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

func (*HetznerBareMetalMachineTemplate) DeepCopyObject

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

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

type HetznerBareMetalMachineTemplateList

type HetznerBareMetalMachineTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []HetznerBareMetalMachineTemplate `json:"items"`
}

HetznerBareMetalMachineTemplateList contains a list of HetznerBareMetalMachineTemplate.

func (*HetznerBareMetalMachineTemplateList) DeepCopy

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

func (*HetznerBareMetalMachineTemplateList) DeepCopyInto

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

func (*HetznerBareMetalMachineTemplateList) DeepCopyObject

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

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

type HetznerBareMetalMachineTemplateResource

type HetznerBareMetalMachineTemplateResource struct {
	// Spec is the specification of the desired behavior of the machine.
	Spec HetznerBareMetalMachineSpec `json:"spec"`
}

HetznerBareMetalMachineTemplateResource describes the data needed to create a HetznerBareMetalMachine from a template.

func (*HetznerBareMetalMachineTemplateResource) DeepCopy

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

func (*HetznerBareMetalMachineTemplateResource) DeepCopyInto

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

type HetznerBareMetalMachineTemplateSpec

type HetznerBareMetalMachineTemplateSpec struct {
	Template HetznerBareMetalMachineTemplateResource `json:"template"`
}

HetznerBareMetalMachineTemplateSpec defines the desired state of HetznerBareMetalMachineTemplate.

func (*HetznerBareMetalMachineTemplateSpec) DeepCopy

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

func (*HetznerBareMetalMachineTemplateSpec) DeepCopyInto

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

type HetznerBareMetalMachineTemplateWebhook

type HetznerBareMetalMachineTemplateWebhook struct{}

HetznerBareMetalMachineTemplateWebhook implements a custom validation webhook for HetznerBareMetalMachineTemplate. +kubebuilder:object:generate=false

func (*HetznerBareMetalMachineTemplateWebhook) SetupWebhookWithManager

func (r *HetznerBareMetalMachineTemplateWebhook) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerBareMetalMachineTemplate.

func (*HetznerBareMetalMachineTemplateWebhook) ValidateCreate

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

func (*HetznerBareMetalMachineTemplateWebhook) ValidateDelete

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

func (*HetznerBareMetalMachineTemplateWebhook) ValidateUpdate

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

type HetznerBareMetalRemediation

type HetznerBareMetalRemediation struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +optional
	Spec HetznerBareMetalRemediationSpec `json:"spec,omitempty"`
	// +optional
	Status HetznerBareMetalRemediationStatus `json:"status,omitempty"`
}

HetznerBareMetalRemediation is the Schema for the hetznerbaremetalremediations API.

func (*HetznerBareMetalRemediation) DeepCopy

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

func (*HetznerBareMetalRemediation) DeepCopyInto

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

func (*HetznerBareMetalRemediation) DeepCopyObject

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

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

func (*HetznerBareMetalRemediation) Default

func (r *HetznerBareMetalRemediation) Default()

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

func (*HetznerBareMetalRemediation) SetupWebhookWithManager

func (r *HetznerBareMetalRemediation) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerBareMetalRemediation.

func (*HetznerBareMetalRemediation) ValidateCreate

func (r *HetznerBareMetalRemediation) ValidateCreate() (admission.Warnings, error)

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

func (*HetznerBareMetalRemediation) ValidateDelete

func (r *HetznerBareMetalRemediation) ValidateDelete() (admission.Warnings, error)

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

func (*HetznerBareMetalRemediation) ValidateUpdate

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

type HetznerBareMetalRemediationList

type HetznerBareMetalRemediationList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []HetznerBareMetalRemediation `json:"items"`
}

HetznerBareMetalRemediationList contains a list of HetznerBareMetalRemediation.

func (*HetznerBareMetalRemediationList) DeepCopy

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

func (*HetznerBareMetalRemediationList) DeepCopyInto

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

func (*HetznerBareMetalRemediationList) DeepCopyObject

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

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

type HetznerBareMetalRemediationSpec

type HetznerBareMetalRemediationSpec struct {
	// Strategy field defines the remediation strategy to be applied.
	Strategy *RemediationStrategy `json:"strategy,omitempty"`
}

HetznerBareMetalRemediationSpec defines the desired state of HetznerBareMetalRemediation.

func (*HetznerBareMetalRemediationSpec) DeepCopy

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

func (*HetznerBareMetalRemediationSpec) DeepCopyInto

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

type HetznerBareMetalRemediationStatus

type HetznerBareMetalRemediationStatus struct {
	// Phase represents the current phase of machine remediation.
	// E.g. Pending, Running, Done etc.
	// +optional
	Phase string `json:"phase,omitempty"`

	// RetryCount can be used as a counter during the remediation.
	// Field can hold number of reboots etc.
	// +optional
	RetryCount int `json:"retryCount,omitempty"`

	// LastRemediated identifies when the host was last remediated
	// +optional
	LastRemediated *metav1.Time `json:"lastRemediated,omitempty"`
}

HetznerBareMetalRemediationStatus defines the observed state of HetznerBareMetalRemediation.

func (*HetznerBareMetalRemediationStatus) DeepCopy

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

func (*HetznerBareMetalRemediationStatus) DeepCopyInto

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

type HetznerBareMetalRemediationTemplate

type HetznerBareMetalRemediationTemplate struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +optional
	Spec HetznerBareMetalRemediationTemplateSpec `json:"spec,omitempty"`
	// +optional
	Status HetznerBareMetalRemediationTemplateStatus `json:"status,omitempty"`
}

HetznerBareMetalRemediationTemplate is the Schema for the hetznerbaremetalremediationtemplates API.

func (*HetznerBareMetalRemediationTemplate) DeepCopy

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

func (*HetznerBareMetalRemediationTemplate) DeepCopyInto

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

func (*HetznerBareMetalRemediationTemplate) DeepCopyObject

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

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

func (*HetznerBareMetalRemediationTemplate) Default

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

func (*HetznerBareMetalRemediationTemplate) SetupWebhookWithManager

func (r *HetznerBareMetalRemediationTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerBareMetalRemediationTemplate.

func (*HetznerBareMetalRemediationTemplate) ValidateCreate

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

func (*HetznerBareMetalRemediationTemplate) ValidateDelete

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

func (*HetznerBareMetalRemediationTemplate) ValidateUpdate

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

type HetznerBareMetalRemediationTemplateList

type HetznerBareMetalRemediationTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []HetznerBareMetalRemediationTemplate `json:"items"`
}

HetznerBareMetalRemediationTemplateList contains a list of HetznerBareMetalRemediationTemplate.

func (*HetznerBareMetalRemediationTemplateList) DeepCopy

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

func (*HetznerBareMetalRemediationTemplateList) DeepCopyInto

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

func (*HetznerBareMetalRemediationTemplateList) DeepCopyObject

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

type HetznerBareMetalRemediationTemplateResource

type HetznerBareMetalRemediationTemplateResource struct {
	// Spec is the specification of the desired behavior of the HetznerBareMetalRemediation.
	Spec HetznerBareMetalRemediationSpec `json:"spec"`
}

HetznerBareMetalRemediationTemplateResource describes the data needed to create a HetznerBareMetalRemediation from a template.

func (*HetznerBareMetalRemediationTemplateResource) DeepCopy

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

func (*HetznerBareMetalRemediationTemplateResource) DeepCopyInto

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

type HetznerBareMetalRemediationTemplateSpec

type HetznerBareMetalRemediationTemplateSpec struct {
	Template HetznerBareMetalRemediationTemplateResource `json:"template"`
}

HetznerBareMetalRemediationTemplateSpec defines the desired state of HetznerBareMetalRemediationTemplate.

func (*HetznerBareMetalRemediationTemplateSpec) DeepCopy

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

func (*HetznerBareMetalRemediationTemplateSpec) DeepCopyInto

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

type HetznerBareMetalRemediationTemplateStatus

type HetznerBareMetalRemediationTemplateStatus struct {
	// HetznerBareMetalRemediationStatus defines the observed state of HetznerBareMetalRemediation
	Status HetznerBareMetalRemediationStatus `json:"status"`
}

HetznerBareMetalRemediationTemplateStatus defines the observed state of HetznerBareMetalRemediationTemplate.

func (*HetznerBareMetalRemediationTemplateStatus) DeepCopy

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

func (*HetznerBareMetalRemediationTemplateStatus) DeepCopyInto

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

type HetznerCluster

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

	Spec   HetznerClusterSpec   `json:"spec,omitempty"`
	Status HetznerClusterStatus `json:"status,omitempty"`
}

HetznerCluster is the Schema for the hetznercluster API.

func (*HetznerCluster) ClusterTagKey

func (r *HetznerCluster) ClusterTagKey() string

ClusterTagKey generates the key for resources associated with a cluster.

func (*HetznerCluster) DeepCopy

func (in *HetznerCluster) DeepCopy() *HetznerCluster

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

func (*HetznerCluster) DeepCopyInto

func (in *HetznerCluster) DeepCopyInto(out *HetznerCluster)

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

func (*HetznerCluster) DeepCopyObject

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

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

func (*HetznerCluster) Default

func (r *HetznerCluster) Default()

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

func (*HetznerCluster) GetConditions

func (r *HetznerCluster) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the HetznerCluster resource.

func (*HetznerCluster) Hub

func (*HetznerCluster) Hub()

Hub marks HetznerCluster as a conversion hub.

func (*HetznerCluster) SetConditions

func (r *HetznerCluster) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the HetznerCluster to the predescribed clusterv1.Conditions.

func (*HetznerCluster) SetupWebhookWithManager

func (r *HetznerCluster) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerCluster.

func (*HetznerCluster) ValidateCreate

func (r *HetznerCluster) ValidateCreate() (admission.Warnings, error)

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

func (*HetznerCluster) ValidateDelete

func (r *HetznerCluster) ValidateDelete() (admission.Warnings, error)

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

func (*HetznerCluster) ValidateUpdate

func (r *HetznerCluster) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type HetznerClusterList

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

HetznerClusterList contains a list of HetznerCluster +kubebuilder:object:root=true +k8s:defaulter-gen=true

func (*HetznerClusterList) DeepCopy

func (in *HetznerClusterList) DeepCopy() *HetznerClusterList

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

func (*HetznerClusterList) DeepCopyInto

func (in *HetznerClusterList) DeepCopyInto(out *HetznerClusterList)

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

func (*HetznerClusterList) DeepCopyObject

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

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

func (*HetznerClusterList) Hub

func (*HetznerClusterList) Hub()

Hub marks HetznerClusterList as a conversion hub.

func (*HetznerClusterList) SetupWebhookWithManager

func (r *HetznerClusterList) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerClusterList.

type HetznerClusterSpec

type HetznerClusterSpec struct {
	// HCloudNetwork defines details about the private Network for Hetzner Cloud. If left empty, no private Network is configured.
	// +optional
	HCloudNetwork HCloudNetworkSpec `json:"hcloudNetwork"`

	// ControlPlaneRegion consists of a list of HCloud Regions (fsn, nbg, hel). Because HCloud Networks
	// have a very low latency we could assume in some use cases that a region is behaving like a zone.
	// https://kubernetes.io/docs/reference/labels-annotations-taints/#topologykubernetesiozone
	ControlPlaneRegions []Region `json:"controlPlaneRegions"`

	// SSHKeys are cluster wide. Valid values are a valid SSH key name.
	SSHKeys HetznerSSHKeys `json:"sshKeys"`
	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +optional
	ControlPlaneEndpoint *clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty"`

	// ControlPlaneLoadBalancer is an optional configuration for customizing control plane behavior.
	ControlPlaneLoadBalancer LoadBalancerSpec `json:"controlPlaneLoadBalancer,omitempty"`

	// +optional
	HCloudPlacementGroups []HCloudPlacementGroupSpec `json:"hcloudPlacementGroups,omitempty"`

	// HetznerSecretRef is a reference to a token to be used when reconciling this cluster.
	// This is generated in the security section under API TOKENS. Read & write is necessary.
	HetznerSecret HetznerSecretRef `json:"hetznerSecretRef"`
}

HetznerClusterSpec defines the desired state of HetznerCluster.

func (*HetznerClusterSpec) DeepCopy

func (in *HetznerClusterSpec) DeepCopy() *HetznerClusterSpec

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

func (*HetznerClusterSpec) DeepCopyInto

func (in *HetznerClusterSpec) DeepCopyInto(out *HetznerClusterSpec)

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

type HetznerClusterStatus

type HetznerClusterStatus struct {
	// +kubebuilder:default=false
	Ready bool `json:"ready"`

	// +optional
	Network *NetworkStatus `json:"networkStatus,omitempty"`

	ControlPlaneLoadBalancer *LoadBalancerStatus `json:"controlPlaneLoadBalancer,omitempty"`
	// +optional
	HCloudPlacementGroups []HCloudPlacementGroupStatus `json:"hcloudPlacementGroups,omitempty"`
	FailureDomains        clusterv1.FailureDomains     `json:"failureDomains,omitempty"`
	Conditions            clusterv1.Conditions         `json:"conditions,omitempty"`
}

HetznerClusterStatus defines the observed state of HetznerCluster.

func (*HetznerClusterStatus) DeepCopy

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

func (*HetznerClusterStatus) DeepCopyInto

func (in *HetznerClusterStatus) DeepCopyInto(out *HetznerClusterStatus)

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

type HetznerClusterTemplate

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

	Spec HetznerClusterTemplateSpec `json:"spec,omitempty"`
}

HetznerClusterTemplate is the Schema for the hetznerclustertemplates API.

func (*HetznerClusterTemplate) DeepCopy

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

func (*HetznerClusterTemplate) DeepCopyInto

func (in *HetznerClusterTemplate) DeepCopyInto(out *HetznerClusterTemplate)

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

func (*HetznerClusterTemplate) DeepCopyObject

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

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

func (*HetznerClusterTemplate) Default

func (r *HetznerClusterTemplate) Default()

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

func (*HetznerClusterTemplate) SetupWebhookWithManager

func (r *HetznerClusterTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerClusterTemplate.

func (*HetznerClusterTemplate) ValidateCreate

func (r *HetznerClusterTemplate) ValidateCreate() (admission.Warnings, error)

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

func (*HetznerClusterTemplate) ValidateDelete

func (r *HetznerClusterTemplate) ValidateDelete() (admission.Warnings, error)

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

func (*HetznerClusterTemplate) ValidateUpdate

func (r *HetznerClusterTemplate) ValidateUpdate(oldRaw runtime.Object) (admission.Warnings, error)

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

type HetznerClusterTemplateList

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

HetznerClusterTemplateList contains a list of HetznerClusterTemplate.

func (*HetznerClusterTemplateList) DeepCopy

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

func (*HetznerClusterTemplateList) DeepCopyInto

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

func (*HetznerClusterTemplateList) DeepCopyObject

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

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

type HetznerClusterTemplateResource

type HetznerClusterTemplateResource struct {
	// +optional
	ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"`
	Spec       HetznerClusterSpec   `json:"spec"`
}

HetznerClusterTemplateResource contains spec for HetznerClusterSpec.

func (*HetznerClusterTemplateResource) DeepCopy

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

func (*HetznerClusterTemplateResource) DeepCopyInto

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

type HetznerClusterTemplateSpec

type HetznerClusterTemplateSpec struct {
	Template HetznerClusterTemplateResource `json:"template"`
}

HetznerClusterTemplateSpec defines the desired state of HetznerClusterTemplate.

func (*HetznerClusterTemplateSpec) DeepCopy

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

func (*HetznerClusterTemplateSpec) DeepCopyInto

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

type HetznerSSHKeys

type HetznerSSHKeys struct {
	// Hcloud defines the SSH keys used for hcloud.
	// +optional
	HCloud []SSHKey `json:"hcloud,omitempty"`
	// RobotRescueSecretRef defines the reference to the secret where the SSH key for the rescue system is stored.
	RobotRescueSecretRef SSHSecretRef `json:"robotRescueSecretRef,omitempty"`
}

HetznerSSHKeys defines the global cluster-wide SSHKeys for HetznerCluster. It serves as the default for machines as well.

func (*HetznerSSHKeys) DeepCopy

func (in *HetznerSSHKeys) DeepCopy() *HetznerSSHKeys

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

func (*HetznerSSHKeys) DeepCopyInto

func (in *HetznerSSHKeys) DeepCopyInto(out *HetznerSSHKeys)

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

type HetznerSecretKeyRef

type HetznerSecretKeyRef struct {
	// HCloudToken defines the name of the key where the token for the Hetzner Cloud API is stored.
	// +optional
	// +kubebuilder:default=hcloud-token
	HCloudToken string `json:"hcloudToken"`
	// HetznerRobotUser defines the name of the key where the username for the Hetzner Robot API is stored.
	// +optional
	// +kubebuilder:default=hetzner-robot-user
	HetznerRobotUser string `json:"hetznerRobotUser"`
	// HetznerRobotPassword defines the name of the key where the password for the Hetzner Robot API is stored.
	// +optional
	// +kubebuilder:default=hetzner-robot-password
	HetznerRobotPassword string `json:"hetznerRobotPassword"`
	// SSHKey defines the name of the ssh key.
	// +optional
	// +kubebuilder:default=hcloud-ssh-key-name
	SSHKey string `json:"sshKey"`
}

HetznerSecretKeyRef defines the key name of the HetznerSecret. Need to specify either HCloudToken or both HetznerRobotUser and HetznerRobotPassword.

func (*HetznerSecretKeyRef) DeepCopy

func (in *HetznerSecretKeyRef) DeepCopy() *HetznerSecretKeyRef

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

func (*HetznerSecretKeyRef) DeepCopyInto

func (in *HetznerSecretKeyRef) DeepCopyInto(out *HetznerSecretKeyRef)

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

type HetznerSecretRef

type HetznerSecretRef struct {
	// Name defines the name of the secret.
	// +kubebuilder:default=hetzner
	Name string `json:"name"`
	// Key defines the keys that are used in the secret.
	// Need to specify either HCloudToken or both HetznerRobotUser and HetznerRobotPassword.
	Key HetznerSecretKeyRef `json:"key"`
}

HetznerSecretRef defines all the names of the secret and the relevant keys needed to access Hetzner API.

func (*HetznerSecretRef) DeepCopy

func (in *HetznerSecretRef) DeepCopy() *HetznerSecretRef

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

func (*HetznerSecretRef) DeepCopyInto

func (in *HetznerSecretRef) DeepCopyInto(out *HetznerSecretRef)

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

type HostSelector

type HostSelector struct {
	// MatchLabels defines the key/value pairs of labels that must exist on a chosen BareMetalHost.
	// +optional
	MatchLabels map[string]string `json:"matchLabels,omitempty"`

	// MatchExpressions defines the label match expressions that must be true on a chosen BareMetalHost.
	// +optional
	MatchExpressions []HostSelectorRequirement `json:"matchExpressions,omitempty"`
}

HostSelector specifies matching criteria for labels on BareMetalHosts. This is used to limit the set of BareMetalHost objects considered for claiming for a Machine.

func (*HostSelector) DeepCopy

func (in *HostSelector) DeepCopy() *HostSelector

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

func (*HostSelector) DeepCopyInto

func (in *HostSelector) DeepCopyInto(out *HostSelector)

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

type HostSelectorRequirement

type HostSelectorRequirement struct {
	// Key defines the key of the label that should be matched in the host object.
	Key string `json:"key"`

	// Operator defines the selection operator.
	Operator selection.Operator `json:"operator"`

	// Values define the values whose relation to the label value in the host machine is defined by the selection operator.
	Values []string `json:"values"`
}

HostSelectorRequirement defines a requirement used for MatchExpressions to select host machines.

func (*HostSelectorRequirement) DeepCopy

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

func (*HostSelectorRequirement) DeepCopyInto

func (in *HostSelectorRequirement) DeepCopyInto(out *HostSelectorRequirement)

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

type Image

type Image struct {
	// URL defines the remote URL for downloading a tar, tar.gz, tar.bz, tar.bz2, tar.xz, tgz, tbz, txz image.
	URL string `json:"url,omitempty"`

	// Name defines the archive name after download. This has to be a valid name for Installimage.
	Name string `json:"name,omitempty"`

	// Path is the local path for a preinstalled image from upstream.
	Path string `json:"path,omitempty"`
}

Image defines the properties for the autosetup config.

func (*Image) DeepCopy

func (in *Image) DeepCopy() *Image

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

func (*Image) DeepCopyInto

func (in *Image) DeepCopyInto(out *Image)

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

func (Image) GetDetails

func (image Image) GetDetails() (imagePath string, needsDownload bool, errorMessage string)

GetDetails returns the path of the image and whether the image has to be downloaded.

func (Image) String

func (image Image) String() string

String returns a string representation. The password gets redacted from the URL.

type ImageType

type ImageType string

ImageType defines the accepted image types.

const (
	// ImageTypeTar defines the image type for tar files.
	ImageTypeTar ImageType = "tar"
	// ImageTypeTarGz defines the image type for tar.gz files.
	ImageTypeTarGz ImageType = "tar.gz"
	// ImageTypeTarBz defines the image type for tar.bz files.
	ImageTypeTarBz ImageType = "tar.bz"
	// ImageTypeTarBz2 defines the image type for tar.bz2 files.
	ImageTypeTarBz2 ImageType = "tar.bz2"
	// ImageTypeTarXz defines the image type for tar.xz files.
	ImageTypeTarXz ImageType = "tar.xz"
	// ImageTypeTgz defines the image type for tgz files.
	ImageTypeTgz ImageType = "tgz"
	// ImageTypeTbz defines the image type for tbz files.
	ImageTypeTbz ImageType = "tbz"
	// ImageTypeTxz defines the image type for txz files.
	ImageTypeTxz ImageType = "txz"
)

type InstallImage

type InstallImage struct {
	// Image is the image to be provisioned. It defines the image for baremetal machine.
	Image Image `json:"image"`

	// PostInstallScript (Bash) is used for configuring commands that should be executed after installimage.
	// It is passed along with the installimage command.
	PostInstallScript string `json:"postInstallScript,omitempty"`

	// Partitions define the additional Partitions to be created in installimage.
	Partitions []Partition `json:"partitions"`

	// LVMDefinitions defines the logical volume definitions to be created.
	// +optional
	LVMDefinitions []LVMDefinition `json:"logicalVolumeDefinitions,omitempty"`

	// BTRFSDefinitions define the btrfs subvolume definitions to be created.
	// +optional
	BTRFSDefinitions []BTRFSDefinition `json:"btrfsDefinitions,omitempty"`

	// Swraid defines the SWRAID in InstallImage. It enables or disables raids. Set 1 to enable.
	// +optional
	// +kubebuilder:default=0
	// +kubebuilder:validation:Enum=0;1;
	Swraid int `json:"swraid"`

	// SwraidLevel defines the SWRAIDLEVEL in InstallImage. Only relevant if the raid is enabled.
	// Pick one of 0,1,5,6,10. Ignored if Swraid=0.
	// +optional
	// +kubebuilder:default=1
	// +kubebuilder:validation:Enum=0;1;5;6;10;
	SwraidLevel int `json:"swraidLevel,omitempty"`
}

InstallImage defines the configuration for InstallImage.

func (*InstallImage) DeepCopy

func (in *InstallImage) DeepCopy() *InstallImage

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

func (*InstallImage) DeepCopyInto

func (in *InstallImage) DeepCopyInto(out *InstallImage)

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

type LVMDefinition

type LVMDefinition struct {
	// VG defines the vg name.
	VG string `json:"vg"`

	// Name defines the volume name.
	Name string `json:"name"`

	// Mount defines the mountpath.
	Mount string `json:"mount"`

	// FileSystem defines the filesystem for this logical volume.
	FileSystem string `json:"filesystem"`

	// Size defines the size in M/G/T or MiB/GiB/TiB.
	Size string `json:"size"`
}

LVMDefinition defines the logical volume definitions to be created.

func (*LVMDefinition) DeepCopy

func (in *LVMDefinition) DeepCopy() *LVMDefinition

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

func (*LVMDefinition) DeepCopyInto

func (in *LVMDefinition) DeepCopyInto(out *LVMDefinition)

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

type LoadBalancerAlgorithmType

type LoadBalancerAlgorithmType string

LoadBalancerAlgorithmType defines the Algorithm type. +kubebuilder:validation:Enum=round_robin;least_connections

func (*LoadBalancerAlgorithmType) HCloudAlgorithmType

func (algorithmType *LoadBalancerAlgorithmType) HCloudAlgorithmType() hcloud.LoadBalancerAlgorithmType

HCloudAlgorithmType converts LoadBalancerAlgorithmType to hcloud type.

type LoadBalancerServiceSpec

type LoadBalancerServiceSpec struct {
	// Protocol specifies the supported load balancer Protocol. It could be one of the https, http, or tcp.
	// +kubebuilder:validation:Enum=http;https;tcp
	Protocol string `json:"protocol,omitempty"`

	// ListenPort, i.e. source port, defines the incoming port open on the load balancer. It must be a valid port range (1-65535).
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	ListenPort int `json:"listenPort,omitempty"`

	// DestinationPort defines the port on the server. It must be a valid port range (1-65535).
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	DestinationPort int `json:"destinationPort,omitempty"`
}

LoadBalancerServiceSpec defines a load balancer Target.

func (*LoadBalancerServiceSpec) DeepCopy

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

func (*LoadBalancerServiceSpec) DeepCopyInto

func (in *LoadBalancerServiceSpec) DeepCopyInto(out *LoadBalancerServiceSpec)

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

type LoadBalancerSpec

type LoadBalancerSpec struct {
	// Enabled specifies if a load balancer should be created.
	// +optional
	// +kubebuilder:default=true
	Enabled bool `json:"enabled"`

	// Name defines the name of the load balancer. It can be specified in order to use an existing load balancer.
	// +optional
	Name *string `json:"name,omitempty"`

	// Algorithm defines the type of load balancer algorithm. It could be round_robin or least_connection. The default value is "round_robin".
	// +optional
	// +kubebuilder:validation:Enum=round_robin;least_connections
	// +kubebuilder:default=round_robin
	Algorithm LoadBalancerAlgorithmType `json:"algorithm,omitempty"`

	// Type defines the type of load balancer. It could be one of lb11, lb21, or lb31.
	// +optional
	// +kubebuilder:validation:Enum=lb11;lb21;lb31
	// +kubebuilder:default=lb11
	Type string `json:"type,omitempty"`

	// Port defines the API Server port. It must be a valid port range (1-65535). If omitted, the default value is 6443.
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=6443
	Port int `json:"port,omitempty"`

	// ExtraServices defines how traffic will be routed from the load balancer to your target server.
	// +optional
	ExtraServices []LoadBalancerServiceSpec `json:"extraServices,omitempty"`

	// Region contains the name of the HCloud location where the load balancer is running.
	Region Region `json:"region,omitempty"`
}

LoadBalancerSpec defines the desired state of the Control Plane load balancer.

func (*LoadBalancerSpec) DeepCopy

func (in *LoadBalancerSpec) DeepCopy() *LoadBalancerSpec

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

func (*LoadBalancerSpec) DeepCopyInto

func (in *LoadBalancerSpec) DeepCopyInto(out *LoadBalancerSpec)

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

type LoadBalancerStatus

type LoadBalancerStatus struct {
	ID         int64                `json:"id,omitempty"`
	IPv4       string               `json:"ipv4,omitempty"`
	IPv6       string               `json:"ipv6,omitempty"`
	InternalIP string               `json:"internalIP,omitempty"`
	Target     []LoadBalancerTarget `json:"targets,omitempty"`
	Protected  bool                 `json:"protected,omitempty"`
}

LoadBalancerStatus defines the observed state of the control plane load balancer.

func (*LoadBalancerStatus) DeepCopy

func (in *LoadBalancerStatus) DeepCopy() *LoadBalancerStatus

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

func (*LoadBalancerStatus) DeepCopyInto

func (in *LoadBalancerStatus) DeepCopyInto(out *LoadBalancerStatus)

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

type LoadBalancerTarget

type LoadBalancerTarget struct {
	Type     LoadBalancerTargetType `json:"type"`
	ServerID int64                  `json:"serverID,omitempty"`
	IP       string                 `json:"ip,omitempty"`
}

LoadBalancerTarget defines the target of a load balancer.

func (*LoadBalancerTarget) DeepCopy

func (in *LoadBalancerTarget) DeepCopy() *LoadBalancerTarget

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

func (*LoadBalancerTarget) DeepCopyInto

func (in *LoadBalancerTarget) DeepCopyInto(out *LoadBalancerTarget)

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

type LoadBalancerTargetType

type LoadBalancerTargetType string

LoadBalancerTargetType defines the target type. +kubebuilder:validation:Enum=server;ip

type NIC

type NIC struct {
	// The name of the network interface, e.g. "en0"
	Name string `json:"name,omitempty"`

	// The vendor and product IDs of the NIC, e.g. "0x8086 0x1572"
	Model string `json:"model,omitempty"`

	// The device MAC address
	// +kubebuilder:validation:Pattern=`[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}`
	MAC string `json:"mac,omitempty"`

	// The IP address of the interface. This will be an IPv4 or IPv6 address
	// if one is present.  If both IPv4 and IPv6 addresses are present in a
	// dual-stack environment, two nics will be output, one with each IP.
	IP string `json:"ip,omitempty"`

	// The speed of the device in Gigabits per second
	SpeedMbps int `json:"speedMbps,omitempty"`
}

NIC describes one network interface on the host.

func (*NIC) DeepCopy

func (in *NIC) DeepCopy() *NIC

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

func (*NIC) DeepCopyInto

func (in *NIC) DeepCopyInto(out *NIC)

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

type NetworkStatus

type NetworkStatus struct {
	ID              int64             `json:"id,omitempty"`
	Labels          map[string]string `json:"-"`
	AttachedServers []int64           `json:"attachedServers,omitempty"`
}

NetworkStatus defines the observed state of the HCloud Private Network.

func (*NetworkStatus) DeepCopy

func (in *NetworkStatus) DeepCopy() *NetworkStatus

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

func (*NetworkStatus) DeepCopyInto

func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)

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

type Partition

type Partition struct {
	// Mount defines the mount path for this filesystem.
	// Keyword 'lvm' to use this PART as volume group (VG) for LVM.
	// Identifier 'btrfs.X' to use this PART as volume for
	// btrfs subvolumes. X can be replaced with a unique
	// alphanumeric keyword. NOTE: no support for btrfs multi-device volumes.
	Mount string `json:"mount"`

	// FileSystem can be ext2, ext3, ext4, btrfs, reiserfs, xfs, swap
	// or name of the LVM volume group (VG), if this PART is a VG.
	FileSystem string `json:"fileSystem"`

	// Size can use the keyword 'all' to assign all the remaining space of the drive to the last partition.
	// You can use M/G/T for unit specification in MiB/GiB/TiB.
	Size string `json:"size"`
}

Partition defines the additional Partitions to be created.

func (*Partition) DeepCopy

func (in *Partition) DeepCopy() *Partition

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

func (*Partition) DeepCopyInto

func (in *Partition) DeepCopyInto(out *Partition)

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

type ProvisioningState

type ProvisioningState string

ProvisioningState defines the states of provisioning of the host.

const (
	// StateNone means the state is unknown.
	StateNone ProvisioningState = ""

	// StatePreparing means we are checking if the server exists and preparing it.
	StatePreparing ProvisioningState = "preparing"

	// StateRegistering means we are getting hardware details.
	StateRegistering ProvisioningState = "registering"

	// StateImageInstalling means we install a new image.
	StateImageInstalling ProvisioningState = "image-installing"

	// StateEnsureProvisioned means we are ensuring the reboot worked and cloud-init was executed successfully.
	StateEnsureProvisioned ProvisioningState = "ensure-provisioned"

	// StateProvisioned means we have sent userData to the host and booted the machine.
	StateProvisioned ProvisioningState = "provisioned"

	// StateDeprovisioning means we are removing all machine-specific information from the host.
	StateDeprovisioning ProvisioningState = "deprovisioning"

	// StateDeleting means we are deleting the host.
	StateDeleting ProvisioningState = "deleting"
)

type PublicNetworkSpec

type PublicNetworkSpec struct {
	// EnableIPv4 defines whether server has IPv4 address enabled.
	// As Hetzner load balancers require an IPv4 address, this setting will be ignored and set to true if there is no private net.
	// +optional
	// +kubebuilder:default=true
	EnableIPv4 bool `json:"enableIPv4"`
	// EnableIPv6 defines whether server has IPv6 addresses enabled.
	// +optional
	// +kubebuilder:default=true
	EnableIPv6 bool `json:"enableIPv6"`
}

PublicNetworkSpec contains specs about the public network spec of an HCloud server.

func (*PublicNetworkSpec) DeepCopy

func (in *PublicNetworkSpec) DeepCopy() *PublicNetworkSpec

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

func (*PublicNetworkSpec) DeepCopyInto

func (in *PublicNetworkSpec) DeepCopyInto(out *PublicNetworkSpec)

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

type Raid

type Raid struct {
	// WWN defines a list of unique storage identifiers used for raid setups.
	WWN []string `json:"wwn,omitempty"`
}

Raid can be used instead of WWN to point to multiple storage devices.

func (*Raid) DeepCopy

func (in *Raid) DeepCopy() *Raid

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

func (*Raid) DeepCopyInto

func (in *Raid) DeepCopyInto(out *Raid)

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

type RebootAnnotationArguments

type RebootAnnotationArguments struct {
	Type RebootType `json:"type"`
}

RebootAnnotationArguments defines the arguments of the RebootAnnotation type.

func (*RebootAnnotationArguments) DeepCopy

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

func (*RebootAnnotationArguments) DeepCopyInto

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

type RebootType

type RebootType string

RebootType defines the reboot type of servers via Hetzner robot API.

const (
	// RebootTypePower defines the power reboot. "Press power button of server".
	RebootTypePower RebootType = "power"
	// RebootTypeSoftware defines the software reboot. "Send CTRL+ALT+DEL to the server".
	RebootTypeSoftware RebootType = "sw"
	// RebootTypeHardware defines the hardware reboot. "Execute an automatic hardware reset".
	RebootTypeHardware RebootType = "hw"
	// RebootTypeManual defines the manual reboot. "Order a manual power cycle".
	RebootTypeManual RebootType = "man"
	// RebootTypeSSH defines the ssh reboot. This is done via caph, not via the robot-API.
	RebootTypeSSH RebootType = "ssh"
)

type Region

type Region string

Region is a Hetzner Location. +kubebuilder:validation:Enum=fsn1;hel1;nbg1;ash;hil;sin

type RemediationStrategy

type RemediationStrategy struct {
	// Type represents the type of the remediation strategy. At the moment, only "Reboot" is supported.
	// +kubebuilder:default=Reboot
	// +optional
	Type RemediationType `json:"type,omitempty"`

	// RetryLimit sets the maximum number of remediation retries. Zero retries if not set.
	// +optional
	RetryLimit int `json:"retryLimit,omitempty"`

	// Timeout sets the timeout between remediation retries. It should be of the form "10m", or "40s".
	Timeout *metav1.Duration `json:"timeout"`
}

RemediationStrategy describes how to remediate machines.

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.

type RemediationType

type RemediationType string

RemediationType defines the type of remediation.

const (
	// RemediationTypeReboot sets RemediationType to Reboot.
	RemediationTypeReboot RemediationType = "Reboot"
)

type ResourceLifecycle

type ResourceLifecycle string

ResourceLifecycle configures the lifecycle of a resource.

type RootDeviceHints

type RootDeviceHints struct {
	// WWN is a unique storage identifier used for non-raid setups. The hint
	// must match the actual value exactly.
	// +optional
	WWN string `json:"wwn,omitempty"`
	// Raid is used to specify multiple storage devices. It provides the controller with information
	// on which disks a raid can be established.
	// +optional
	Raid Raid `json:"raid,omitempty"`
}

RootDeviceHints holds the hints for specifying the storage location for the root filesystem for the image. Need to specify either WWN or raid to provision the host machine successfully. It is important to find the correct root device. If none are specified, the host will stop provisioning in between to wait for the details to be specified. HardwareDetails in the host's status can be used to find the correct device. Currently, you can specify one disk or a raid setup.

func (*RootDeviceHints) DeepCopy

func (in *RootDeviceHints) DeepCopy() *RootDeviceHints

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

func (*RootDeviceHints) DeepCopyInto

func (in *RootDeviceHints) DeepCopyInto(out *RootDeviceHints)

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

func (*RootDeviceHints) IsValid

func (rdh *RootDeviceHints) IsValid() bool

IsValid checks whether rootDeviceHint is valid.

func (*RootDeviceHints) IsValidWithMessage

func (rdh *RootDeviceHints) IsValidWithMessage() string

IsValidWithMessage checks whether rootDeviceHint is valid. If valid, an empty string gets returned.

func (*RootDeviceHints) ListOfWWN

func (rdh *RootDeviceHints) ListOfWWN() []string

ListOfWWN gives the list of WWNs - no matter if it's in WWN or Raid.

type SSHKey

type SSHKey struct {
	// Name defines the name of the SSH key.
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// Fingerprint defines the fingerprint of the SSH key - added by the controller.
	// +optional
	Fingerprint string `json:"fingerprint,omitempty"`
}

SSHKey defines the SSHKey for HCloud.

func (*SSHKey) DeepCopy

func (in *SSHKey) DeepCopy() *SSHKey

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

func (*SSHKey) DeepCopyInto

func (in *SSHKey) DeepCopyInto(out *SSHKey)

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

type SSHSecretKeyRef

type SSHSecretKeyRef struct {
	// Name is the key in the secret's data where the SSH key's name is stored.
	Name string `json:"name"`

	// PublicKey is the key in the secret's data where the SSH key's public key is stored.
	PublicKey string `json:"publicKey"`

	// PrivateKey is the key in the secret's data where the SSH key's private key is stored.
	PrivateKey string `json:"privateKey"`
}

SSHSecretKeyRef defines the key name of the SSHSecret.

func (*SSHSecretKeyRef) DeepCopy

func (in *SSHSecretKeyRef) DeepCopy() *SSHSecretKeyRef

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

func (*SSHSecretKeyRef) DeepCopyInto

func (in *SSHSecretKeyRef) DeepCopyInto(out *SSHSecretKeyRef)

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

type SSHSecretRef

type SSHSecretRef struct {
	// Name is the name of the secret.
	Name string `json:"name"`

	// Key contains details about the keys used in the data of the secret.
	Key SSHSecretKeyRef `json:"key"`
}

SSHSecretRef defines the secret containing all information of the SSH key used for the Hetzner robot.

func (*SSHSecretRef) DeepCopy

func (in *SSHSecretRef) DeepCopy() *SSHSecretRef

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

func (*SSHSecretRef) DeepCopyInto

func (in *SSHSecretRef) DeepCopyInto(out *SSHSecretRef)

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

type SSHSpec

type SSHSpec struct {
	// SecretRef gives reference to the secret where the SSH key is stored.
	SecretRef SSHSecretRef `json:"secretRef"`

	// PortAfterInstallImage specifies the port that has to be used to connect to the machine
	// by reaching the server via SSH after installing the image successfully.
	// +kubebuilder:default=22
	// +optional
	PortAfterInstallImage int `json:"portAfterInstallImage"`

	// PortAfterCloudInit specifies the port that has to be used to connect to the machine
	// by reaching the server via SSH after the successful completion of cloud init.
	// +optional
	PortAfterCloudInit int `json:"portAfterCloudInit"`
}

SSHSpec defines specs for SSH.

func (*SSHSpec) DeepCopy

func (in *SSHSpec) DeepCopy() *SSHSpec

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

func (*SSHSpec) DeepCopyInto

func (in *SSHSpec) DeepCopyInto(out *SSHSpec)

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

type SSHStatus

type SSHStatus struct {
	// CurrentRescue gives information about the secret where the rescue ssh key is stored.
	CurrentRescue *SecretStatus `json:"currentRescue,omitempty"`
	// CurrentOS gives information about the secret where the os ssh key is stored.
	CurrentOS *SecretStatus `json:"currentOS,omitempty"`
	// OSKey contains name and fingerprint of the in HetznerBareMetalMachine spec specified SSH key.
	OSKey *SSHKey `json:"osKey,omitempty"`
	// RescueKey contains name and fingerprint of the in HetznerCluster spec specified SSH key.
	RescueKey *SSHKey `json:"rescueKey,omitempty"`
}

SSHStatus contains all status information about SSHStatus.

func (*SSHStatus) DeepCopy

func (in *SSHStatus) DeepCopy() *SSHStatus

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

func (*SSHStatus) DeepCopyInto

func (in *SSHStatus) DeepCopyInto(out *SSHStatus)

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

type SecretStatus

type SecretStatus struct {
	Reference *corev1.SecretReference `json:"credentials,omitempty"`
	Version   string                  `json:"credentialsVersion,omitempty"`
	DataHash  []byte                  `json:"credentialsDataHash,omitempty"`
}

SecretStatus contains the reference and version of the last secret that was used.

func (*SecretStatus) DeepCopy

func (in *SecretStatus) DeepCopy() *SecretStatus

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

func (*SecretStatus) DeepCopyInto

func (in *SecretStatus) DeepCopyInto(out *SecretStatus)

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

func (SecretStatus) Match

func (cs SecretStatus) Match(secret corev1.Secret) bool

Match compares the saved status information with the name and content of a secret object. Returns false if an error occurred.

type Storage

type Storage struct {
	// The Linux device name of the disk, e.g. "/dev/sda". Note that this
	// may not be stable across reboots.
	Name string `json:"name,omitempty"`

	// SizeBytes is the size of the disk in Bytes.
	SizeBytes Capacity `json:"sizeBytes,omitempty"`

	// SizeGB is the size of the disk in GB.
	SizeGB Capacity `json:"sizeGB,omitempty"`

	// Vendor is the name of the vendor of the device.
	Vendor string `json:"vendor,omitempty"`

	// Model represents the Hardware model.
	Model string `json:"model,omitempty"`

	// SerialNumber denotes the serial number of the device.
	SerialNumber string `json:"serialNumber,omitempty"`

	// WWN defines the WWN of the device.
	WWN string `json:"wwn,omitempty"`

	// HCTL defines the SCSI location of the device.
	HCTL string `json:"hctl,omitempty"`

	// Rota defines if it's an HDD device or not.
	Rota bool `json:"rota,omitempty"`
}

Storage describes one storage device (disk, SSD, etc.) on the host.

func (*Storage) DeepCopy

func (in *Storage) DeepCopy() *Storage

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

func (*Storage) DeepCopyInto

func (in *Storage) DeepCopyInto(out *Storage)

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL