Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the metal3 v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=metal3.io
Package v1alpha1 contains API Schema definitions for the metal3 v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=metal3.io
Index ¶
- Constants
- Variables
- func RegisterDefaults(scheme *runtime.Scheme) error
- type BIOS
- type BMCDetails
- type BareMetalHost
- func (host *BareMetalHost) Available() bool
- func (host *BareMetalHost) ClearError() (dirty bool)
- func (host *BareMetalHost) CredentialsKey() types.NamespacedName
- func (in *BareMetalHost) DeepCopy() *BareMetalHost
- func (in *BareMetalHost) DeepCopyInto(out *BareMetalHost)
- func (in *BareMetalHost) DeepCopyObject() runtime.Object
- func (host *BareMetalHost) HardwareProfile() string
- func (host *BareMetalHost) HasError() bool
- func (host *BareMetalHost) NeedsDeprovisioning() bool
- func (host *BareMetalHost) NeedsHardwareInspection() bool
- func (host *BareMetalHost) NeedsHardwareProfile() bool
- func (host *BareMetalHost) NeedsProvisioning() bool
- func (host *BareMetalHost) NewEvent(reason, message string) corev1.Event
- func (host *BareMetalHost) OperationalStatus() OperationalStatus
- func (host *BareMetalHost) SetErrorMessage(message string) (dirty bool)
- func (host *BareMetalHost) SetHardwareProfile(name string) (dirty bool)
- func (host *BareMetalHost) SetOperationalStatus(status OperationalStatus) bool
- func (host *BareMetalHost) UpdateGoodCredentials(currentSecret corev1.Secret)
- func (host *BareMetalHost) UpdateTriedCredentials(currentSecret corev1.Secret)
- func (host *BareMetalHost) WasProvisioned() bool
- type BareMetalHostList
- type BareMetalHostSpec
- type BareMetalHostStatus
- type CPU
- type Capacity
- type ClockSpeed
- type CredentialsStatus
- type Firmware
- type HardwareDetails
- type HardwareSystemVendor
- type Image
- type NIC
- type OperationalStatus
- type ProvisionStatus
- type ProvisioningState
- type Storage
- type VLAN
- type VLANID
Constants ¶
const ( Byte Capacity = 1 KibiByte = Byte * 1024 KiloByte = Byte * 1000 MebiByte = KibiByte * 1024 MegaByte = KiloByte * 1000 GibiByte = MebiByte * 1024 GigaByte = MegaByte * 1000 TebiByte = GibiByte * 1024 TeraByte = GigaByte * 1000 )
Capacity multipliers
const ( // BareMetalHostFinalizer is the name of the finalizer added to // hosts to block delete operations until the physical host can be // deprovisioned. BareMetalHostFinalizer string = "baremetalhost.metal3.io" )
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "metal3.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} )
Functions ¶
func RegisterDefaults ¶
RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.
Types ¶
type BIOS ¶
type BIOS struct { // The release/build date for this BIOS Date string `json:"date"` // The vendor name for this BIOS Vendor string `json:"vendor"` // The version of the BIOS Version string `json:"version"` }
BIOS describes the BIOS version on the host.
func (*BIOS) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BIOS.
func (*BIOS) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BMCDetails ¶
type BMCDetails struct { // Address holds the URL for accessing the controller on the // network. Address string `json:"address"` // The name of the secret containing the BMC credentials (requires // keys "username" and "password"). CredentialsName string `json:"credentialsName"` }
BMCDetails contains the information necessary to communicate with the bare metal controller module on host.
func (*BMCDetails) DeepCopy ¶
func (in *BMCDetails) DeepCopy() *BMCDetails
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMCDetails.
func (*BMCDetails) DeepCopyInto ¶
func (in *BMCDetails) DeepCopyInto(out *BMCDetails)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BareMetalHost ¶
type BareMetalHost struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec BareMetalHostSpec `json:"spec,omitempty"` Status BareMetalHostStatus `json:"status,omitempty"` }
BareMetalHost is the Schema for the baremetalhosts API +k8s:openapi-gen=true +kubebuilder:resource:shortName=bmh;bmhost +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.operationalStatus",description="Operational status" +kubebuilder:printcolumn:name="Provisioning Status",type="string",JSONPath=".status.provisioning.state",description="Provisioning status" +kubebuilder:printcolumn:name="Consumer",type="string",JSONPath=".spec.consumerRef.name",description="Consumer using this host" +kubebuilder:printcolumn:name="BMC",type="string",JSONPath=".spec.bmc.address",description="Address of management controller" +kubebuilder:printcolumn:name="Hardware Profile",type="string",JSONPath=".status.hardwareProfile",description="The type of hardware detected" +kubebuilder:printcolumn:name="Online",type="string",JSONPath=".spec.online",description="Whether the host is online or not" +kubebuilder:printcolumn:name="Error",type="string",JSONPath=".status.errorMessage",description="Most recent error"
func (*BareMetalHost) Available ¶
func (host *BareMetalHost) Available() bool
Available returns true if the host is available to be provisioned.
func (*BareMetalHost) ClearError ¶
func (host *BareMetalHost) ClearError() (dirty bool)
ClearError removes any existing error message.
func (*BareMetalHost) CredentialsKey ¶
func (host *BareMetalHost) CredentialsKey() types.NamespacedName
CredentialsKey returns a NamespacedName suitable for loading the Secret containing the credentials associated with the host.
func (*BareMetalHost) DeepCopy ¶
func (in *BareMetalHost) DeepCopy() *BareMetalHost
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalHost.
func (*BareMetalHost) DeepCopyInto ¶
func (in *BareMetalHost) DeepCopyInto(out *BareMetalHost)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BareMetalHost) DeepCopyObject ¶
func (in *BareMetalHost) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*BareMetalHost) HardwareProfile ¶
func (host *BareMetalHost) HardwareProfile() string
HardwareProfile returns the hardware profile name for the host.
func (*BareMetalHost) HasError ¶
func (host *BareMetalHost) HasError() bool
HasError returns a boolean indicating whether there is an error set for the host.
func (*BareMetalHost) NeedsDeprovisioning ¶
func (host *BareMetalHost) NeedsDeprovisioning() bool
NeedsDeprovisioning compares the settings with the provisioning status and returns true when the host should be deprovisioned.
func (*BareMetalHost) NeedsHardwareInspection ¶
func (host *BareMetalHost) NeedsHardwareInspection() bool
NeedsHardwareInspection looks at the state of the host to determine if hardware inspection should be run.
func (*BareMetalHost) NeedsHardwareProfile ¶
func (host *BareMetalHost) NeedsHardwareProfile() bool
NeedsHardwareProfile returns true if the profile is not set
func (*BareMetalHost) NeedsProvisioning ¶
func (host *BareMetalHost) NeedsProvisioning() bool
NeedsProvisioning compares the settings with the provisioning status and returns true when more work is needed or false otherwise.
func (*BareMetalHost) NewEvent ¶
func (host *BareMetalHost) NewEvent(reason, message string) corev1.Event
NewEvent creates a new event associated with the object and ready to be published to the kubernetes API.
func (*BareMetalHost) OperationalStatus ¶
func (host *BareMetalHost) OperationalStatus() OperationalStatus
OperationalStatus returns the contents of the OperationalStatus field.
func (*BareMetalHost) SetErrorMessage ¶
func (host *BareMetalHost) SetErrorMessage(message string) (dirty bool)
SetErrorMessage updates the ErrorMessage in the host Status struct when necessary and returns true when a change is made or false when no change is made.
func (*BareMetalHost) SetHardwareProfile ¶
func (host *BareMetalHost) SetHardwareProfile(name string) (dirty bool)
SetHardwareProfile updates the hardware profile name and returns true when a change is made or false when no change is made.
func (*BareMetalHost) SetOperationalStatus ¶
func (host *BareMetalHost) SetOperationalStatus(status OperationalStatus) bool
SetOperationalStatus updates the OperationalStatus field and returns true when a change is made or false when no change is made.
func (*BareMetalHost) UpdateGoodCredentials ¶
func (host *BareMetalHost) UpdateGoodCredentials(currentSecret corev1.Secret)
UpdateGoodCredentials modifies the GoodCredentials portion of the Status struct to record the details of the secret containing credentials known to work.
func (*BareMetalHost) UpdateTriedCredentials ¶
func (host *BareMetalHost) UpdateTriedCredentials(currentSecret corev1.Secret)
UpdateTriedCredentials modifies the TriedCredentials portion of the Status struct to record the details of the secret containing credentials known to work.
func (*BareMetalHost) WasProvisioned ¶
func (host *BareMetalHost) WasProvisioned() bool
WasProvisioned returns true when we think we have placed an image on the host.
type BareMetalHostList ¶
type BareMetalHostList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []BareMetalHost `json:"items"` }
BareMetalHostList contains a list of BareMetalHost
func (*BareMetalHostList) DeepCopy ¶
func (in *BareMetalHostList) DeepCopy() *BareMetalHostList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalHostList.
func (*BareMetalHostList) DeepCopyInto ¶
func (in *BareMetalHostList) DeepCopyInto(out *BareMetalHostList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BareMetalHostList) DeepCopyObject ¶
func (in *BareMetalHostList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BareMetalHostSpec ¶
type BareMetalHostSpec struct { // Taints is the full, authoritative list of taints to apply to // the corresponding Machine. This list will overwrite any // modifications made to the Machine on an ongoing basis. // +optional Taints []corev1.Taint `json:"taints,omitempty"` // How do we connect to the BMC? BMC BMCDetails `json:"bmc,omitempty"` // What is the name of the hardware profile for this host? It // should only be necessary to set this when inspection cannot // automatically determine the profile. HardwareProfile string `json:"hardwareProfile,omitempty"` // Which MAC address will PXE boot? This is optional for some // types, but required for libvirt VMs driven by vbmc. // +kubebuilder:validation:Pattern=[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5} BootMACAddress string `json:"bootMACAddress,omitempty"` // Should the server be online? Online bool `json:"online"` // 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". ConsumerRef *corev1.ObjectReference `json:"consumerRef,omitempty"` // Image holds the details of the image to be provisioned. Image *Image `json:"image,omitempty"` // UserData holds the reference to the Secret containing the user // data to be passed to the host before it boots. UserData *corev1.SecretReference `json:"userData,omitempty"` // Description is a human-entered text used to help identify the host Description string `json:"description,omitempty"` // ExternallyProvisioned means something else is managing the // image running on the host and the operator should only manage // the power status and hardware inventory inspection. If the // Image field is filled in, this field is ignored. ExternallyProvisioned bool `json:"externallyProvisioned,omitempty"` }
BareMetalHostSpec defines the desired state of BareMetalHost
func (*BareMetalHostSpec) DeepCopy ¶
func (in *BareMetalHostSpec) DeepCopy() *BareMetalHostSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalHostSpec.
func (*BareMetalHostSpec) DeepCopyInto ¶
func (in *BareMetalHostSpec) DeepCopyInto(out *BareMetalHostSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BareMetalHostStatus ¶
type BareMetalHostStatus struct { // OperationalStatus holds the status of the host OperationalStatus OperationalStatus `json:"operationalStatus"` // LastUpdated identifies when this status was last observed. // +optional LastUpdated *metav1.Time `json:"lastUpdated,omitempty"` // The name of the profile matching the hardware details. HardwareProfile string `json:"hardwareProfile"` // The hardware discovered to exist on the host. HardwareDetails *HardwareDetails `json:"hardware,omitempty"` // Information tracked by the provisioner. Provisioning ProvisionStatus `json:"provisioning"` // the last credentials we were able to validate as working GoodCredentials CredentialsStatus `json:"goodCredentials"` // the last credentials we sent to the provisioning backend TriedCredentials CredentialsStatus `json:"triedCredentials"` // the last error message reported by the provisioning subsystem ErrorMessage string `json:"errorMessage"` // indicator for whether or not the host is powered on PoweredOn bool `json:"poweredOn"` }
BareMetalHostStatus defines the observed state of BareMetalHost
func (*BareMetalHostStatus) DeepCopy ¶
func (in *BareMetalHostStatus) DeepCopy() *BareMetalHostStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalHostStatus.
func (*BareMetalHostStatus) DeepCopyInto ¶
func (in *BareMetalHostStatus) DeepCopyInto(out *BareMetalHostStatus)
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"` Model string `json:"model"` ClockMegahertz ClockSpeed `json:"clockMegahertz"` Flags []string `json:"flags"` Count int `json:"count"` }
CPU describes one processor on the host.
func (*CPU) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CPU.
func (*CPU) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClockSpeed ¶
type ClockSpeed float64
ClockSpeed is a clock speed in MHz
const ( MegaHertz ClockSpeed = 1.0 GigaHertz = 1000 * MegaHertz )
ClockSpeed multipliers
type CredentialsStatus ¶
type CredentialsStatus struct { Reference *corev1.SecretReference `json:"credentials,omitempty"` Version string `json:"credentialsVersion,omitempty"` }
CredentialsStatus contains the reference and version of the last set of BMC credentials the controller was able to validate.
func (*CredentialsStatus) DeepCopy ¶
func (in *CredentialsStatus) DeepCopy() *CredentialsStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsStatus.
func (*CredentialsStatus) DeepCopyInto ¶
func (in *CredentialsStatus) DeepCopyInto(out *CredentialsStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Firmware ¶
type Firmware struct { // The BIOS for this firmware BIOS BIOS `json:"bios"` }
Firmware describes the firmware on the host.
func (*Firmware) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Firmware.
func (*Firmware) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HardwareDetails ¶
type HardwareDetails struct { SystemVendor HardwareSystemVendor `json:"systemVendor"` Firmware Firmware `json:"firmware"` RAMMebibytes int `json:"ramMebibytes"` NIC []NIC `json:"nics"` Storage []Storage `json:"storage"` CPU CPU `json:"cpu"` Hostname string `json:"hostname"` }
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 HardwareSystemVendor ¶
type HardwareSystemVendor struct { Manufacturer string `json:"manufacturer"` ProductName string `json:"productName"` SerialNumber string `json:"serialNumber"` }
HardwareSystemVendor stores details about the whole hardware system.
func (*HardwareSystemVendor) DeepCopy ¶
func (in *HardwareSystemVendor) DeepCopy() *HardwareSystemVendor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardwareSystemVendor.
func (*HardwareSystemVendor) DeepCopyInto ¶
func (in *HardwareSystemVendor) DeepCopyInto(out *HardwareSystemVendor)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Image ¶
type Image struct { // URL is a location of an image to deploy. URL string `json:"url"` // Checksum is the checksum for the image. Checksum string `json:"checksum"` }
Image holds the details of an image either to provisioned or that has been provisioned.
func (*Image) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NIC ¶
type NIC struct { // The name of the NIC, e.g. "nic-1" Name string `json:"name"` // The name of the model, e.g. "virt-io" Model string `json:"model"` // The device MAC addr // +kubebuilder:validation:Pattern=[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5} MAC string `json:"mac"` // The IP address of the device IP string `json:"ip"` // The speed of the device SpeedGbps int `json:"speedGbps"` // The VLANs available VLANs []VLAN `json:"vlans,omitempty"` // The untagged VLAN ID // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=4094 VLANID VLANID `json:"vlanId"` // Whether the NIC is PXE Bootable PXE bool `json:"pxe"` }
NIC describes one network interface on the host.
func (*NIC) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NIC.
func (*NIC) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationalStatus ¶
type OperationalStatus string
OperationalStatus represents the state of the host
const ( // OperationalStatusOK is the status value for when the host is // configured correctly and is manageable. OperationalStatusOK OperationalStatus = "OK" // OperationalStatusDiscovered is the status value for when the // host is only partially configured, such as when when the BMC // address is known but the login credentials are not. OperationalStatusDiscovered OperationalStatus = "discovered" // OperationalStatusError is the status value for when the host // has any sort of error. OperationalStatusError OperationalStatus = "error" )
type ProvisionStatus ¶
type ProvisionStatus struct { // An indiciator for what the provisioner is doing with the host. State ProvisioningState `json:"state"` // The machine's UUID from the underlying provisioning tool ID string `json:"ID"` // Image holds the details of the last image successfully // provisioned to the host. Image Image `json:"image,omitempty"` }
ProvisionStatus holds the state information for a single target.
func (*ProvisionStatus) DeepCopy ¶
func (in *ProvisionStatus) DeepCopy() *ProvisionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProvisionStatus.
func (*ProvisionStatus) DeepCopyInto ¶
func (in *ProvisionStatus) DeepCopyInto(out *ProvisionStatus)
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 = "" // StateRegistrationError means there was an error registering the // host with the backend StateRegistrationError ProvisioningState = "registration error" // StateRegistering means we are telling the backend about the host StateRegistering ProvisioningState = "registering" // StateMatchProfile means we are comparing the discovered details // against known hardware profiles StateMatchProfile ProvisioningState = "match profile" // StateReady means the host can be consumed StateReady ProvisioningState = "ready" // StateValidationError means the provisioning instructions had an // error StateValidationError ProvisioningState = "validation error" // StateProvisioning means we are writing an image to the host's // disk(s) StateProvisioning ProvisioningState = "provisioning" // StateProvisioningError means we are writing an image to the // host's disk(s) StateProvisioningError ProvisioningState = "provisioning error" // StateProvisioned means we have written an image to the host's // disk(s) StateProvisioned ProvisioningState = "provisioned" // StateExternallyProvisioned means something else is managing the // image on the host StateExternallyProvisioned ProvisioningState = "externally provisioned" // StateDeprovisioning means we are removing an image from the // host's disk(s) StateDeprovisioning ProvisioningState = "deprovisioning" // StateInspecting means we are running the agent on the host to // learn about the hardware components available there StateInspecting ProvisioningState = "inspecting" // StatePowerManagementError means something went wrong trying to // power the server on or off. StatePowerManagementError ProvisioningState = "power management error" )
type Storage ¶
type Storage struct { // A name for the disk, e.g. "disk 1 (boot)" Name string `json:"name"` // Whether this disk represents rotational storage Rotational bool `json:"rotational"` // The size of the disk in Bytes SizeBytes Capacity `json:"sizeBytes"` // 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"` // The WWN of the device WWN string `json:"wwn,omitempty"` // The WWN Vendor extension of the device WWNVendorExtension string `json:"wwnVendorExtension,omitempty"` // The WWN with the extension WWNWithExtension string `json:"wwnWithExtension,omitempty"` // The SCSI location of the device HCTL string `json:"hctl,omitempty"` }
Storage describes one storage device (disk, SSD, etc.) on the host.
func (*Storage) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Storage.
func (*Storage) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VLAN ¶
type VLAN struct { // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=4094 ID VLANID `json:"id"` Name string `json:"name,omitempty"` }
VLAN represents the name and ID of a VLAN
func (*VLAN) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLAN.
func (*VLAN) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.