v1beta1

package
v1.0.0-beta.11 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2022 License: Apache-2.0 Imports: 24 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 (
	// LoadBalancerAttached reports on whether the load balancer is attached.
	LoadBalancerAttached clusterv1.ConditionType = "LoadBalancerAttached"
	// LoadBalancerUnreachableReason is used when load balancer is unreachable.
	LoadBalancerUnreachableReason = "LoadBalancerUnreachable"
)
View Source
const (
	// LoadBalancerAttachedToNetworkCondition reports on whether the load balancer is attached to a network.
	LoadBalancerAttachedToNetworkCondition clusterv1.ConditionType = "LoadBalancerAttachedToNetwork"
	// LoadBalancerAttachFailedReason is used when load balancer could not be attached to network.
	LoadBalancerAttachFailedReason = "LoadBalancerAttachFailed"
	// LoadBalancerNoNetworkFoundReason is used when no network could be found.
	LoadBalancerNoNetworkFoundReason = "LoadBalancerNoNetworkFound"
)
View Source
const (
	// InstanceReadyCondition reports on current status of the instance. Ready indicates the instance is in a Running state.
	InstanceReadyCondition clusterv1.ConditionType = "InstanceReady"
	// InstanceTerminatedReason instance is in a terminated state.
	InstanceTerminatedReason = "InstanceTerminated"
	// InstanceHasNonExistingPlacementGroupReason instance has a placement group name that does not exist.
	InstanceHasNonExistingPlacementGroupReason = "InstanceHasNonExistingPlacementGroup"
	// ServerOffReason instance is off.
	ServerOffReason = "ServerOff"
	// InstanceAsControlPlaneUnreachableReason control plane is (not yet) reachable.
	InstanceAsControlPlaneUnreachableReason = "InstanceAsControlPlaneUnreachable"
)
View Source
const (
	// InstanceBootstrapReadyCondition reports on current status of the instance. BootstrapReady indicates the bootstrap is ready.
	InstanceBootstrapReadyCondition clusterv1.ConditionType = "InstanceBootstrapReady"
	// InstanceBootstrapNotReadyReason bootstrap not ready yet.
	InstanceBootstrapNotReadyReason = "InstanceBootstrapNotReady"
)
View Source
const (
	// NetworkAttached reports on whether there is a network attached to the cluster.
	NetworkAttached clusterv1.ConditionType = "NetworkAttached"
	// NetworkDisabledReason indicates that network is disabled.
	NetworkDisabledReason = "NetworkDisabled"
	// NetworkUnreachableReason indicates that network is unreachable.
	NetworkUnreachableReason = "NetworkUnreachable"
)
View Source
const (
	// PlacementGroupsSynced reports on whether the placement groups are successfully synced.
	PlacementGroupsSynced clusterv1.ConditionType = "PlacementGroupsSynced"
	// PlacementGroupsUnreachableReason indicates that network is disabled.
	PlacementGroupsUnreachableReason = "PlacementGroupsUnreachable"
)
View Source
const (
	// HetznerClusterReady reports on whether the Hetzner cluster is in ready state.
	HetznerClusterReady clusterv1.ConditionType = "HetznerClusterReady"
	// HetznerSecretUnreachableReason indicates that Hetzner secret is unreachable.
	HetznerSecretUnreachableReason = "HetznerSecretUnreachable" // #nosec
	// HCloudCredentialsInvalidReason indicates that credentials for HCloud are invalid.
	HCloudCredentialsInvalidReason = "HCloudCredentialsInvalid" // #nosec
)
View Source
const (
	// RateLimitExceeded reports whether the rate limit has been reached.
	RateLimitExceeded clusterv1.ConditionType = "RateLimitExceeded"
	// RateLimitNotReachedReason indicates that the rate limit is not reached yet.
	RateLimitNotReachedReason = "RateLimitNotReached"
)
View Source
const (
	// HetznerBareMetalHostReady reports on whether the Hetzner cluster is in ready state.
	HetznerBareMetalHostReady clusterv1.ConditionType = "HetznerBareMetalHostReady"
	// RobotCredentialsInvalidReason indicates that credentials for Robot are invalid.
	RobotCredentialsInvalidReason = "RobotCredentialsInvalid" // #nosec
)
View Source
const (
	// BareMetalHostFinalizer is the name of the finalizer added to
	// hosts to block delete operations until the physical host can be
	// deprovisioned.
	BareMetalHostFinalizer string = "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"
)
View Source
const (
	// ErrorMessageMissingRootDeviceHints specifies the error message when no root device hints are specified.
	ErrorMessageMissingRootDeviceHints string = "no root device hints specified"
	// ErrorMessageMissingHetznerSecret specifies the error message when no Hetzner secret was found.
	ErrorMessageMissingHetznerSecret string = "could not find HetznerSecret"
	// ErrorMessageMissingRescueSSHSecret specifies the error message when no RescueSSH secret was found.
	ErrorMessageMissingRescueSSHSecret string = "could not find RescueSSHSecret"
	// ErrorMessageMissingOSSSHSecret specifies the error message when no OSSSH secret was found.
	ErrorMessageMissingOSSSHSecret string = "could not find OSSSHSecret"
	// ErrorMessageMissingOrInvalidSecretData specifies the error message when no data in secret is missing or invalid.
	ErrorMessageMissingOrInvalidSecretData string = "invalid or not specified information in secret"
)
View Source
const (
	// BareMetalMachineFinalizer allows Reconcilehetznerbaremetalmachine to clean up resources associated with hetznerbaremetalmachine before
	// removing it from the apiserver.
	BareMetalMachineFinalizer = "hetznerbaremetalmachine.infrastructure.cluster.x-k8s.io"

	// BareMetalHostNamePrefix is a prefix for all hostNames of bare metal servers.
	BareMetalHostNamePrefix = "bm-"
)
View Source
const (
	// RemediationFinalizer allows HetznerBareMetalRemediationReconciler to clean up resources associated with HetznerBareMetalRemediation before
	// removing it from the apiserver.
	RemediationFinalizer = "hetznerbaremetalremediation.infrastructure.cluster.x-k8s.io"

	// RebootAnnotation indicates that a bare metal host object should be rebooted.
	RebootAnnotation = "reboot.hetznerbaremetalhost.infrastructure.cluster.x-k8s.io"

	// RebootRemediationStrategy sets RemediationType to Reboot.
	RebootRemediationStrategy RemediationType = "Reboot"
)
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 loadbalancer.
	LoadBalancerAlgorithmTypeRoundRobin = LoadBalancerAlgorithmType("round_robin")

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

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

	// LoadBalancerTargetTypeIP default for Loadbalancer.
	LoadBalancerTargetTypeIP = LoadBalancerTargetType("ip")
)
View Source
const (
	// AssociateBMHCondition reports on whether the Hetzner cluster is in ready state.
	AssociateBMHCondition clusterv1.ConditionType = "AssociateBMHCondition"
)
View Source
const (
	// ClusterFinalizer allows ReconcileHetznerCluster to clean up HCloud
	// resources associated with HetznerCluster before removing it from the
	// apiserver.
	ClusterFinalizer = "hetznercluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// MachineFinalizer allows ReconcileHCloudMachine to clean up HCloud
	// resources associated with HCloudMachine before removing it from the
	// apiserver.
	MachineFinalizer = "hcloudmachine.infrastructure.cluster.x-k8s.io"
)

Variables

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

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

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

Functions

func ClusterHetznerCloudProviderTagKey

func ClusterHetznerCloudProviderTagKey(name string) string

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

func ClusterTagKey

func ClusterTagKey(name string) string

ClusterTagKey generates the key for resources associated with a cluster.

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.

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 which 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 name and fingerprint of the in 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 encoutered 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 defines 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.

type ErrorType

type ErrorType string

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

const (
	// ErrorTypeSSHRebootTooSlow is an error condition that the ssh reboot is too slow.
	ErrorTypeSSHRebootTooSlow ErrorType = "ssh reboot too slow"
	// ErrorTypeSoftwareRebootTooSlow is an error condition that the software reboot is too slow.
	ErrorTypeSoftwareRebootTooSlow ErrorType = "software reboot too slow"
	// ErrorTypeHardwareRebootTooSlow is an error condition that the hardware reboot is too slow.
	ErrorTypeHardwareRebootTooSlow ErrorType = "hardware reboot too slow"

	// ErrorTypeSSHRebootNotStarted is an error condition indicating that the ssh reboot did not start.
	ErrorTypeSSHRebootNotStarted ErrorType = "ssh reboot not started"
	// ErrorTypeSoftwareRebootNotStarted is an error condition indicating that the software reboot did not start.
	ErrorTypeSoftwareRebootNotStarted ErrorType = "software reboot not started"
	// ErrorTypeHardwareRebootNotStarted is an error condition indicating that the hardware reboot did not start.
	ErrorTypeHardwareRebootNotStarted ErrorType = "hardware reboot not started"

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

	// ErrorTypeHardwareRebootFailed is an error condition indicating that the hardware reboot failed.
	ErrorTypeHardwareRebootFailed ErrorType = "hardware reboot failed"

	// RegistrationError is an error condition occurring when the
	// controller is unable to retrieve information of 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"
)

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.

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() error

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

func (*HCloudMachine) ValidateDelete

func (r *HCloudMachine) ValidateDelete() error

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

func (*HCloudMachine) ValidateUpdate

func (r *HCloudMachine) ValidateUpdate(old runtime.Object) 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.
	// +kubebuilder:validation:Enum=cpx11;cx21;cpx21;cx31;cpx31;cx41;cpx41;cx51;cpx51;ccx11;ccx12;ccx21;ccx22;ccx31;ccx32;ccx41;ccx42;ccx51;ccx52;ccx62;
	Type HCloudMachineType `json:"type"`

	// ImageName is the reference to the Machine Image from which to create the machine instance.
	// +kubebuilder:validation:MinLength=1
	ImageName string `json:"imageName"`

	// define Machine specific SSH keys, overrides cluster wide SSH keys
	// +optional
	SSHKeys []SSHKey `json:"sshKeys,omitempty"`

	// +optional
	PlacementGroupName *string `json:"placementGroupName,omitempty"`

	// PublicNetwork specifies information for public networks
	// +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 contains the server's associated addresses.
	Addresses []corev1.NodeAddress `json:"addresses,omitempty"`

	// Region contains the name of the HCloud location the server is running.
	Region Region `json:"region,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 *errors.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 defines 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"`
}

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) 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. A Subnet is required.
	// +kubebuilder:default="10.0.0.0/16"
	// +optional
	CIDRBlock string `json:"cidrBlock,omitempty"`

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

	// NetworkZone specifies the HCloud network zone of the private network.
	// +kubebuilder:validation:Enum=eu-central;us-east
	// +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     int    `json:"id,omitempty"`
	Server []int  `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 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) 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 server.

func (*HetznerBareMetalHost) HasPowerReboot

func (host *HetznerBareMetalHost) HasPowerReboot() bool

HasPowerReboot returns a boolean indicating whether power reboot exists for server.

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

func (host *HetznerBareMetalHost) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager initializes webhook manager for HetznerBareMetalHost.

func (*HetznerBareMetalHost) UpdateOSSSHStatus

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

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

func (*HetznerBareMetalHost) UpdateRescueSSHStatus

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

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

func (*HetznerBareMetalHost) ValidateCreate

func (host *HetznerBareMetalHost) ValidateCreate() error

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

func (*HetznerBareMetalHost) ValidateDelete

func (host *HetznerBareMetalHost) ValidateDelete() error

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

func (*HetznerBareMetalHost) ValidateUpdate

func (host *HetznerBareMetalHost) ValidateUpdate(old runtime.Object) error

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

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.
	ServerID int `json:"serverID"`

	// Provide 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 can be used to store information about something
	// that is using a 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
	// +optional
	Description string `json:"description,omitempty"`

	// Status contains all status information. 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 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.

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 (r *HetznerBareMetalMachine) Default()

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

func (*HetznerBareMetalMachine) GetConditions

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

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

func (*HetznerBareMetalMachine) SetConditions

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

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

func (*HetznerBareMetalMachine) SetFailure

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

SetFailure sets a failure reason and message.

func (*HetznerBareMetalMachine) SetupWebhookWithManager

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

SetupWebhookWithManager initializes webhook manager for HetznerBareMetalMachine.

func (*HetznerBareMetalMachine) ValidateCreate

func (r *HetznerBareMetalMachine) ValidateCreate() error

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

func (*HetznerBareMetalMachine) ValidateDelete

func (r *HetznerBareMetalMachine) ValidateDelete() error

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

func (*HetznerBareMetalMachine) ValidateUpdate

func (r *HetznerBareMetalMachine) ValidateUpdate(old runtime.Object) 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 in ProviderID format
	// (hcloud://<server-id>)
	// +optional
	ProviderID *string `json:"providerID,omitempty"`

	// InstallImage is the configuration which 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 []corev1.NodeAddress `json:"addresses,omitempty"`

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

	// Conditions defines 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=hbmt;hbmmtemplate;hetznerbaremetalmachinetemplates;hetznerbaremetalmachinetemplate +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() error

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

func (*HetznerBareMetalRemediation) ValidateDelete

func (r *HetznerBareMetalRemediation) ValidateDelete() error

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

func (*HetznerBareMetalRemediation) ValidateUpdate

func (r *HetznerBareMetalRemediation) ValidateUpdate(old runtime.Object) error

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 remediation strategy.
	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

func (r *HetznerBareMetalRemediationTemplate) ValidateCreate() error

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

func (*HetznerBareMetalRemediationTemplate) ValidateDelete

func (r *HetznerBareMetalRemediationTemplate) ValidateDelete() error

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) 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() error

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

func (*HetznerCluster) ValidateDelete

func (r *HetznerCluster) ValidateDelete() error

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

func (*HetznerCluster) ValidateUpdate

func (r *HetznerCluster) ValidateUpdate(old runtime.Object) 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 {
	// HCloudNetworkSpec defines the 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"`

	// ControlPlaneLoadBalancer is optional configuration for customizing control plane behavior. Naming convention is from upstream cluster-api project.
	ControlPlaneLoadBalancer LoadBalancerSpec `json:"controlPlaneLoadBalancer,omitempty"`

	// +optional
	HCloudPlacementGroup []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
	HCloudPlacementGroup []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() error

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

func (*HetznerClusterTemplate) ValidateDelete

func (r *HetznerClusterTemplate) ValidateDelete() error

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

func (*HetznerClusterTemplate) ValidateUpdate

func (r *HetznerClusterTemplate) ValidateUpdate(oldRaw runtime.Object) 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 {
	// +optional
	HCloud               []SSHKey     `json:"hcloud,omitempty"`
	RobotRescueSecretRef SSHSecretRef `json:"robotRescueSecretRef,omitempty"`
}

HetznerSSHKeys defines the global SSHKeys HetznerCluster.

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 {
	// +optional
	HCloudToken string `json:"hcloudToken"`
	// +optional
	HetznerRobotUser string `json:"hetznerRobotUser"`
	// +optional
	HetznerRobotPassword string `json:"hetznerRobotPassword"`
}

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 string              `json:"name"`
	Key  HetznerSecretKeyRef `json:"key"`
}

HetznerSecretRef defines all the name 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 {
	// Key/value pairs of labels that must exist on a chosen BareMetalHost
	// +optional
	MatchLabels map[string]string `json:"matchLabels,omitempty"`

	// 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      string             `json:"key"`
	Operator selection.Operator `json:"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.

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.
	Image Image `json:"image"`

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

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

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

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

	// Swraid defines the SWRAID in InstallImage.
	// +optional
	// +kubebuilder:default=0
	// +kubebuilder:validation:Enum=0;1;
	Swraid int `json:"swraid"`

	// SwraidLevel defines the SWRAIDLEVEL in InstallImage. 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 Loadbalancer Protocol.
	// +kubebuilder:validation:Enum=http;https;tcp
	Protocol string `json:"protocol,omitempty"`

	// ListenPort, i.e. source port, defines the incoming port open on the loadbalancer.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	ListenPort int `json:"listenPort,omitempty"`

	// DestinationPort defines the port on the server.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	DestinationPort int `json:"destinationPort,omitempty"`
}

LoadBalancerServiceSpec defines a Loadbalancer 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 {
	// +optional
	// +kubebuilder:default=true
	Enabled bool `json:"enabled"`

	// +optional
	Name *string `json:"name,omitempty"`

	// 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"`

	// Loadbalancer type
	// +optional
	// +kubebuilder:validation:Enum=lb11;lb21;lb31
	// +kubebuilder:default=lb11
	Type string `json:"type,omitempty"`

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

	// 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 the load balancer is running.
	Region Region `json:"region,omitempty"`
}

LoadBalancerSpec defines the desired state of the Control Plane Loadbalancer.

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         int                  `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 obeserved state of the control plane loadbalancer.

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 int                    `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              int               `json:"id,omitempty"`
	Labels          map[string]string `json:"-"`
	AttachedServers []int             `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.
	// or 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 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.
	// 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 the provisioner will report the host has having.

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

	// StatePreparing means we are checking if server exists and prepare 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"

	// StateProvisioning means we are sending userData to the host and boot the machine.
	StateProvisioning ProvisioningState = "provisioning"

	// StateEnsureProvisioned means we are ensuring the reboot worked and cloud init is installed.
	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 host.
	StateDeprovisioning ProvisioningState = "deprovisioning"

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

type PublicNetworkSpec

type PublicNetworkSpec struct {
	// +optional
	// +kubebuilder:default=true
	EnableIPv4 bool `json:"enableIPv4"`
	// +optional
	// +kubebuilder:default=true
	EnableIPv6 bool `json:"enableIPv6"`
}

PublicNetworkSpec contains specs about 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 []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 (
	// RebootTypeHardware defines the hardware reboot.
	RebootTypeHardware RebootType = "hw"
	// RebootTypePower defines the power reboot.
	RebootTypePower RebootType = "power"
	// RebootTypeSoftware defines the software reboot.
	RebootTypeSoftware RebootType = "sw"
	// RebootTypeManual defines the manual reboot.
	RebootTypeManual RebootType = "man"
)

type Region

type Region string

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

type RemediationStrategy

type RemediationStrategy struct {
	// Type of remediation.
	// +kubebuilder:default=Reboot
	// +optional
	Type RemediationType `json:"type,omitempty"`

	// Sets maximum number of remediation retries.
	// +optional
	RetryLimit int `json:"retryLimit,omitempty"`

	// Sets the timeout between remediation retries.
	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.

type ResourceLifecycle

type ResourceLifecycle string

ResourceLifecycle configures the lifecycle of a resource.

type RootDeviceHints

type RootDeviceHints struct {
	// Unique storage identifier. The hint must match the actual value
	// exactly.
	// +optional
	WWN string `json:"wwn,omitempty"`
	// To specify multiple storage devices.
	// +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 host machine successfully.

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) 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 of SSH key
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// Fingerprint of SSH key - added by 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       string `json:"name"`
	PublicKey  string `json:"publicKey"`
	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 string          `json:"name"`
	Key  SSHSecretKeyRef `json:"key"`
}

SSHSecretRef defines the secret containing all information of the SSH key used for 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.
	SecretRef SSHSecretRef `json:"secretRef"`

	// PortAfterInstallImage specifies the port that has to be used to connect to the machine after install image.
	// +kubebuilder:default=22
	// +optional
	PortAfterInstallImage int `json:"portAfterInstallImage"`

	// PortAfterCloudInit specifies the port that has to be used to connect to the machine after 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"`

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

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

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

	// Hardware model
	Model string `json:"model,omitempty"`

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

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

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

	// Rota defines if its a 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