Skip to content

Latest commit

 

History

History
4675 lines (4135 loc) · 120 KB

File metadata and controls

4675 lines (4135 loc) · 120 KB

API Reference

Packages:

metal3.io/v1alpha1

Resource Types:

BareMetalHost

↩ Parent

BareMetalHost is the Schema for the baremetalhosts API

Name Type Description Required
apiVersion string metal3.io/v1alpha1 true
kind string BareMetalHost true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object BareMetalHostSpec defines the desired state of BareMetalHost.
false
status object BareMetalHostStatus defines the observed state of BareMetalHost.
false

BareMetalHost.spec

↩ Parent

BareMetalHostSpec defines the desired state of BareMetalHost.

Name Type Description Required
online boolean Should the host be powered on? If the host is currently in a stable state (e.g. provisioned), its power state will be forced to match this value.
true
architecture string CPU architecture of the host, e.g. "x86_64" or "aarch64". If unset, eventually populated by inspection.
false
automatedCleaningMode enum When set to disabled, automated cleaning will be skipped during provisioning and deprovisioning.

Enum: metadata, disabled
Default: metadata
false
bmc object How do we connect to the BMC (Baseboard Management Controller) on the host?
false
bootMACAddress string The MAC address of the NIC used for provisioning the host. In case of network boot, this is the MAC address of the PXE booting interface. The MAC address of the BMC must never be used here!
false
bootMode enum Select the method of initializing the hardware during boot. Defaults to UEFI. Legacy boot should only be used for hardware that does not support UEFI correctly. Set to UEFISecureBoot to turn secure boot on automatically after provisioning.

Enum: UEFI, UEFISecureBoot, legacy
false
consumerRef object 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". The common use case is a link to a Machine resource when the host is used by Cluster API.
false
customDeploy object A custom deploy procedure. This is an advanced feature that allows using a custom deploy step provided by a site-specific deployment ramdisk. Most users will want to use "image" instead. Setting this field triggers provisioning.
false
description string Description is a human-entered text used to help identify the host.
false
disablePowerOff boolean When set to true, power off of the node will be disabled, instead, a reboot will be used in place of power on/off
false
externallyProvisioned boolean ExternallyProvisioned means something else has provisioned the image running on the host, and the operator should only manage the power status. This field is used for integration with already provisioned hosts and when pivoting hosts between clusters. If unsure, leave this field as false.
false
firmware object Firmware (BIOS) configuration for bare metal server. If set, the requested settings will be applied before the host is provisioned. Only some vendor drivers support this field. An alternative is to use HostFirmwareSettings resources that allow changing arbitrary values and support the generic Redfish-based drivers.
false
hardwareProfile string What is the name of the hardware profile for this host? Hardware profiles are deprecated and should not be used. Use the separate fields Architecture and RootDeviceHints instead. Set to "empty" to prepare for the future version of the API without hardware profiles.
false
image object Image holds the details of the image to be provisioned. Populating the image will cause the host to start provisioning.
false
inspectionMode enum Specifies the mode for host inspection. "disabled" - no inspection will be performed "agent" - normal agent-based inspection will run

Enum: disabled, agent
false
metaData object MetaData holds the reference to the Secret containing host metadata which is passed to the Config Drive. By default, metadata will be generated for the host, so most users do not need to set this field.
false
networkData object NetworkData holds the reference to the Secret containing network configuration which is passed to the Config Drive and interpreted by the first boot software such as cloud-init.
false
preprovisioningNetworkDataName string PreprovisioningNetworkDataName is the name of the Secret in the local namespace containing network configuration which is passed to the preprovisioning image, and to the Config Drive if not overridden by specifying NetworkData.
false
raid object RAID configuration for bare metal server. If set, the RAID settings will be applied before the host is provisioned. If not, the current settings will not be modified. Only one of the sub-fields hardwareRAIDVolumes and softwareRAIDVolumes can be set at the same time.
false
rootDeviceHints object Provide guidance about how to choose the device for the image being provisioned. The default is currently to use /dev/sda as the root device.
false
taints []object 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.
false
userData object UserData holds the reference to the Secret containing the user data which is passed to the Config Drive and interpreted by the first-boot software such as cloud-init. The format of user data is specific to the first-boot software.
false

BareMetalHost.spec.bmc

↩ Parent

How do we connect to the BMC (Baseboard Management Controller) on the host?

Name Type Description Required
address string Address holds the URL for accessing the controller on the network. The scheme part designates the driver to use with the host.
true
credentialsName string The name of the secret containing the BMC credentials (requires keys "username" and "password").
true
disableCertificateVerification boolean DisableCertificateVerification disables verification of server certificates when using HTTPS to connect to the BMC. This is required when the server certificate is self-signed, but is insecure because it allows a man-in-the-middle to intercept the connection.
false

BareMetalHost.spec.consumerRef

↩ Parent

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". The common use case is a link to a Machine resource when the host is used by Cluster API.

Name Type Description Required
apiVersion string API version of the referent.
false
fieldPath string If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.
false
kind string Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
false
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
false
namespace string Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
false
resourceVersion string Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
false
uid string UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
false

BareMetalHost.spec.customDeploy

↩ Parent

A custom deploy procedure. This is an advanced feature that allows using a custom deploy step provided by a site-specific deployment ramdisk. Most users will want to use "image" instead. Setting this field triggers provisioning.

Name Type Description Required
method string Custom deploy method name. This name is specific to the deploy ramdisk used. If you don't have a custom deploy ramdisk, you shouldn't use CustomDeploy.
true

BareMetalHost.spec.firmware

↩ Parent

Firmware (BIOS) configuration for bare metal server. If set, the requested settings will be applied before the host is provisioned. Only some vendor drivers support this field. An alternative is to use HostFirmwareSettings resources that allow changing arbitrary values and support the generic Redfish-based drivers.

Name Type Description Required
simultaneousMultithreadingEnabled boolean Allows a single physical processor core to appear as several logical processors.

Enum: true, false
false
sriovEnabled boolean SR-IOV support enables a hypervisor to create virtual instances of a PCI-express device, potentially increasing performance.

Enum: true, false
false
virtualizationEnabled boolean Supports the virtualization of platform hardware.

Enum: true, false
false

BareMetalHost.spec.image

↩ Parent

Image holds the details of the image to be provisioned. Populating the image will cause the host to start provisioning.

Name Type Description Required
url string URL is a location of an image to deploy.
true
checksum string Checksum is the checksum for the image. Required for all formats except for "live-iso".
false
checksumType enum ChecksumType is the checksum algorithm for the image, e.g md5, sha256 or sha512. The special value "auto" can be used to detect the algorithm from the checksum. If missing, MD5 is used. If in doubt, use "auto".

Enum: md5, sha256, sha512, auto
false
format enum Format contains the format of the image (raw, qcow2, ...). When set to "live-iso", an ISO 9660 image referenced by the url will be live-booted and not deployed to disk.

Enum: raw, qcow2, vdi, vmdk, live-iso
false

BareMetalHost.spec.metaData

↩ Parent

MetaData holds the reference to the Secret containing host metadata which is passed to the Config Drive. By default, metadata will be generated for the host, so most users do not need to set this field.

Name Type Description Required
name string name is unique within a namespace to reference a secret resource.
false
namespace string namespace defines the space within which the secret name must be unique.
false

BareMetalHost.spec.networkData

↩ Parent

NetworkData holds the reference to the Secret containing network configuration which is passed to the Config Drive and interpreted by the first boot software such as cloud-init.

Name Type Description Required
name string name is unique within a namespace to reference a secret resource.
false
namespace string namespace defines the space within which the secret name must be unique.
false

BareMetalHost.spec.raid

↩ Parent

RAID configuration for bare metal server. If set, the RAID settings will be applied before the host is provisioned. If not, the current settings will not be modified. Only one of the sub-fields hardwareRAIDVolumes and softwareRAIDVolumes can be set at the same time.

Name Type Description Required
hardwareRAIDVolumes []object The list of logical disks for hardware RAID, if rootDeviceHints isn't used, first volume is root volume. You can set the value of this field to `[]` to clear all the hardware RAID configurations.
false
softwareRAIDVolumes []object The list of logical disks for software RAID, if rootDeviceHints isn't used, first volume is root volume. If HardwareRAIDVolumes is set this item will be invalid. The number of created Software RAID devices must be 1 or 2. If there is only one Software RAID device, it has to be a RAID-1. If there are two, the first one has to be a RAID-1, while the RAID level for the second one can be 0, 1, or 1+0. As the first RAID device will be the deployment device, enforcing a RAID-1 reduces the risk of ending up with a non-booting host in case of a disk failure. Software RAID will always be deleted.
false

BareMetalHost.spec.raid.hardwareRAIDVolumes[index]

↩ Parent

HardwareRAIDVolume defines the desired configuration of volume in hardware RAID.

Name Type Description Required
level enum RAID level for the logical disk. The following levels are supported: 0, 1, 2, 5, 6, 1+0, 5+0, 6+0 (drivers may support only some of them).

Enum: 0, 1, 2, 5, 6, 1+0, 5+0, 6+0
true
controller string The name of the RAID controller to use.
false
name string Name of the volume. Should be unique within the Node. If not specified, the name will be auto-generated.
false
numberOfPhysicalDisks integer Integer, number of physical disks to use for the logical disk. Defaults to minimum number of disks required for the particular RAID level.

Minimum: 1
false
physicalDisks []string Optional list of physical disk names to be used for the hardware RAID volumes. The disk names are interpreted by the hardware RAID controller, and the format is hardware specific.
false
rotational boolean Select disks with only rotational (if set to true) or solid-state (if set to false) storage. By default, any disks can be picked.
false
sizeGibibytes integer Size of the logical disk to be created in GiB. If unspecified or set be 0, the maximum capacity of disk will be used for logical disk.

Minimum: 0
false

BareMetalHost.spec.raid.softwareRAIDVolumes[index]

↩ Parent

SoftwareRAIDVolume defines the desired configuration of volume in software RAID.

Name Type Description Required
level enum RAID level for the logical disk. The following levels are supported: 0, 1 and 1+0.

Enum: 0, 1, 1+0
true
physicalDisks []object A list of device hints, the number of items should be greater than or equal to 2.
false
sizeGibibytes integer Size of the logical disk to be created in GiB. If unspecified or set be 0, the maximum capacity of disk will be used for logical disk.

Minimum: 0
false

BareMetalHost.spec.raid.softwareRAIDVolumes[index].physicalDisks[index]

↩ Parent

RootDeviceHints holds the hints for specifying the storage location for the root filesystem for the image.

Name Type Description Required
deviceName string A Linux device name like "/dev/vda", or a by-path link to it like "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". The hint must match the actual value exactly.
false
hctl string A SCSI bus address like 0:0:0:0. The hint must match the actual value exactly.
false
minSizeGigabytes integer The minimum size of the device in Gigabytes.

Minimum: 0
false
model string A vendor-specific device identifier. The hint can be a substring of the actual value.
false
rotational boolean True if the device should use spinning media, false otherwise.
false
serialNumber string Device serial number. The hint must match the actual value exactly.
false
vendor string The name of the vendor or manufacturer of the device. The hint can be a substring of the actual value.
false
wwn string Unique storage identifier. The hint must match the actual value exactly.
false
wwnVendorExtension string Unique vendor storage identifier. The hint must match the actual value exactly.
false
wwnWithExtension string Unique storage identifier with the vendor extension appended. The hint must match the actual value exactly.
false

BareMetalHost.spec.rootDeviceHints

↩ Parent

Provide guidance about how to choose the device for the image being provisioned. The default is currently to use /dev/sda as the root device.

Name Type Description Required
deviceName string A Linux device name like "/dev/vda", or a by-path link to it like "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". The hint must match the actual value exactly.
false
hctl string A SCSI bus address like 0:0:0:0. The hint must match the actual value exactly.
false
minSizeGigabytes integer The minimum size of the device in Gigabytes.

Minimum: 0
false
model string A vendor-specific device identifier. The hint can be a substring of the actual value.
false
rotational boolean True if the device should use spinning media, false otherwise.
false
serialNumber string Device serial number. The hint must match the actual value exactly.
false
vendor string The name of the vendor or manufacturer of the device. The hint can be a substring of the actual value.
false
wwn string Unique storage identifier. The hint must match the actual value exactly.
false
wwnVendorExtension string Unique vendor storage identifier. The hint must match the actual value exactly.
false
wwnWithExtension string Unique storage identifier with the vendor extension appended. The hint must match the actual value exactly.
false

BareMetalHost.spec.taints[index]

↩ Parent

The node this Taint is attached to has the "effect" on any pod that does not tolerate the Taint.

Name Type Description Required
effect string Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
true
key string Required. The taint key to be applied to a node.
true
timeAdded string TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.

Format: date-time
false
value string The taint value corresponding to the taint key.
false

BareMetalHost.spec.userData

↩ Parent

UserData holds the reference to the Secret containing the user data which is passed to the Config Drive and interpreted by the first-boot software such as cloud-init. The format of user data is specific to the first-boot software.

Name Type Description Required
name string name is unique within a namespace to reference a secret resource.
false
namespace string namespace defines the space within which the secret name must be unique.
false

BareMetalHost.status

↩ Parent

BareMetalHostStatus defines the observed state of BareMetalHost.

Name Type Description Required
errorCount integer ErrorCount records how many times the host has encoutered an error since the last successful operation

Default: 0
true
errorMessage string The last error message reported by the provisioning subsystem.
true
operationalStatus enum OperationalStatus holds the status of the host

Enum: , OK, discovered, error, delayed, detached, servicing
true
poweredOn boolean The currently detected power state of the host. This field may get briefly out of sync with the actual state of the hardware while provisioning processes are running.
true
provisioning object Information tracked by the provisioner.
true
errorType enum ErrorType indicates the type of failure encountered when the OperationalStatus is OperationalStatusError

Enum: provisioned registration error, registration error, inspection error, preparation error, provisioning error, power management error, servicing error
false
goodCredentials object The last credentials we were able to validate as working.
false
hardware object The hardware discovered to exist on the host. This field will be removed in the next API version in favour of the separate HardwareData resource.
false
hardwareProfile string The name of the profile matching the hardware details. Hardware profiles are deprecated and should not be relied on.
false
lastUpdated string LastUpdated identifies when this status was last observed.

Format: date-time
false
operationHistory object OperationHistory holds information about operations performed on this host.
false
triedCredentials object The last credentials we sent to the provisioning backend.
false

BareMetalHost.status.provisioning

↩ Parent

Information tracked by the provisioner.

Name Type Description Required
ID string The hosts's ID from the underlying provisioning tool (e.g. the Ironic node UUID).
true
state string An indicator for what the provisioner is doing with the host.
true
bootMode enum BootMode indicates the boot mode used to provision the host.

Enum: UEFI, UEFISecureBoot, legacy
false
customDeploy object Custom deploy procedure applied to the host.
false
firmware object The firmware settings that have been applied.
false
image object Image holds the details of the last image successfully provisioned to the host.
false
raid object The RAID configuration that has been applied.
false
rootDeviceHints object The root device hints used to provision the host.
false

BareMetalHost.status.provisioning.customDeploy

↩ Parent

Custom deploy procedure applied to the host.

Name Type Description Required
method string Custom deploy method name. This name is specific to the deploy ramdisk used. If you don't have a custom deploy ramdisk, you shouldn't use CustomDeploy.
true

BareMetalHost.status.provisioning.firmware

↩ Parent

The firmware settings that have been applied.

Name Type Description Required
simultaneousMultithreadingEnabled boolean Allows a single physical processor core to appear as several logical processors.

Enum: true, false
false
sriovEnabled boolean SR-IOV support enables a hypervisor to create virtual instances of a PCI-express device, potentially increasing performance.

Enum: true, false
false
virtualizationEnabled boolean Supports the virtualization of platform hardware.

Enum: true, false
false

BareMetalHost.status.provisioning.image

↩ Parent

Image holds the details of the last image successfully provisioned to the host.

Name Type Description Required
url string URL is a location of an image to deploy.
true
checksum string Checksum is the checksum for the image. Required for all formats except for "live-iso".
false
checksumType enum ChecksumType is the checksum algorithm for the image, e.g md5, sha256 or sha512. The special value "auto" can be used to detect the algorithm from the checksum. If missing, MD5 is used. If in doubt, use "auto".

Enum: md5, sha256, sha512, auto
false
format enum Format contains the format of the image (raw, qcow2, ...). When set to "live-iso", an ISO 9660 image referenced by the url will be live-booted and not deployed to disk.

Enum: raw, qcow2, vdi, vmdk, live-iso
false

BareMetalHost.status.provisioning.raid

↩ Parent

The RAID configuration that has been applied.

Name Type Description Required
hardwareRAIDVolumes []object The list of logical disks for hardware RAID, if rootDeviceHints isn't used, first volume is root volume. You can set the value of this field to `[]` to clear all the hardware RAID configurations.
false
softwareRAIDVolumes []object The list of logical disks for software RAID, if rootDeviceHints isn't used, first volume is root volume. If HardwareRAIDVolumes is set this item will be invalid. The number of created Software RAID devices must be 1 or 2. If there is only one Software RAID device, it has to be a RAID-1. If there are two, the first one has to be a RAID-1, while the RAID level for the second one can be 0, 1, or 1+0. As the first RAID device will be the deployment device, enforcing a RAID-1 reduces the risk of ending up with a non-booting host in case of a disk failure. Software RAID will always be deleted.
false

BareMetalHost.status.provisioning.raid.hardwareRAIDVolumes[index]

↩ Parent

HardwareRAIDVolume defines the desired configuration of volume in hardware RAID.

Name Type Description Required
level enum RAID level for the logical disk. The following levels are supported: 0, 1, 2, 5, 6, 1+0, 5+0, 6+0 (drivers may support only some of them).

Enum: 0, 1, 2, 5, 6, 1+0, 5+0, 6+0
true
controller string The name of the RAID controller to use.
false
name string Name of the volume. Should be unique within the Node. If not specified, the name will be auto-generated.
false
numberOfPhysicalDisks integer Integer, number of physical disks to use for the logical disk. Defaults to minimum number of disks required for the particular RAID level.

Minimum: 1
false
physicalDisks []string Optional list of physical disk names to be used for the hardware RAID volumes. The disk names are interpreted by the hardware RAID controller, and the format is hardware specific.
false
rotational boolean Select disks with only rotational (if set to true) or solid-state (if set to false) storage. By default, any disks can be picked.
false
sizeGibibytes integer Size of the logical disk to be created in GiB. If unspecified or set be 0, the maximum capacity of disk will be used for logical disk.

Minimum: 0
false

BareMetalHost.status.provisioning.raid.softwareRAIDVolumes[index]

↩ Parent

SoftwareRAIDVolume defines the desired configuration of volume in software RAID.

Name Type Description Required
level enum RAID level for the logical disk. The following levels are supported: 0, 1 and 1+0.

Enum: 0, 1, 1+0
true
physicalDisks []object A list of device hints, the number of items should be greater than or equal to 2.
false
sizeGibibytes integer Size of the logical disk to be created in GiB. If unspecified or set be 0, the maximum capacity of disk will be used for logical disk.

Minimum: 0
false

BareMetalHost.status.provisioning.raid.softwareRAIDVolumes[index].physicalDisks[index]

↩ Parent

RootDeviceHints holds the hints for specifying the storage location for the root filesystem for the image.

Name Type Description Required
deviceName string A Linux device name like "/dev/vda", or a by-path link to it like "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". The hint must match the actual value exactly.
false
hctl string A SCSI bus address like 0:0:0:0. The hint must match the actual value exactly.
false
minSizeGigabytes integer The minimum size of the device in Gigabytes.

Minimum: 0
false
model string A vendor-specific device identifier. The hint can be a substring of the actual value.
false
rotational boolean True if the device should use spinning media, false otherwise.
false
serialNumber string Device serial number. The hint must match the actual value exactly.
false
vendor string The name of the vendor or manufacturer of the device. The hint can be a substring of the actual value.
false
wwn string Unique storage identifier. The hint must match the actual value exactly.
false
wwnVendorExtension string Unique vendor storage identifier. The hint must match the actual value exactly.
false
wwnWithExtension string Unique storage identifier with the vendor extension appended. The hint must match the actual value exactly.
false

BareMetalHost.status.provisioning.rootDeviceHints

↩ Parent

The root device hints used to provision the host.

Name Type Description Required
deviceName string A Linux device name like "/dev/vda", or a by-path link to it like "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". The hint must match the actual value exactly.
false
hctl string A SCSI bus address like 0:0:0:0. The hint must match the actual value exactly.
false
minSizeGigabytes integer The minimum size of the device in Gigabytes.

Minimum: 0
false
model string A vendor-specific device identifier. The hint can be a substring of the actual value.
false
rotational boolean True if the device should use spinning media, false otherwise.
false
serialNumber string Device serial number. The hint must match the actual value exactly.
false
vendor string The name of the vendor or manufacturer of the device. The hint can be a substring of the actual value.
false
wwn string Unique storage identifier. The hint must match the actual value exactly.
false
wwnVendorExtension string Unique vendor storage identifier. The hint must match the actual value exactly.
false
wwnWithExtension string Unique storage identifier with the vendor extension appended. The hint must match the actual value exactly.
false

BareMetalHost.status.goodCredentials

↩ Parent

The last credentials we were able to validate as working.

Name Type Description Required
credentials object SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace
false
credentialsVersion string
false

BareMetalHost.status.goodCredentials.credentials

↩ Parent

SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace

Name Type Description Required
name string name is unique within a namespace to reference a secret resource.
false
namespace string namespace defines the space within which the secret name must be unique.
false

BareMetalHost.status.hardware

↩ Parent

The hardware discovered to exist on the host. This field will be removed in the next API version in favour of the separate HardwareData resource.

Name Type Description Required
cpu object Details of the CPU(s) in the system.
false
firmware object System firmware information.
false
hostname string
false
nics []object List of network interfaces for the host.
false
ramMebibytes integer The host's amount of memory in Mebibytes.
false
storage []object List of storage (disk, SSD, etc.) available to the host.
false
systemVendor object System vendor information.
false

BareMetalHost.status.hardware.cpu

↩ Parent

Details of the CPU(s) in the system.

Name Type Description Required
arch string
false
clockMegahertz number ClockSpeed is a clock speed in MHz

Format: double
false
count integer
false
flags []string
false
model string
false

BareMetalHost.status.hardware.firmware

↩ Parent

System firmware information.

Name Type Description Required
bios object The BIOS for this firmware
false

BareMetalHost.status.hardware.firmware.bios

↩ Parent

The BIOS for this firmware

Name Type Description Required
date string The release/build date for this BIOS
false
vendor string The vendor name for this BIOS
false
version string The version of the BIOS
false

BareMetalHost.status.hardware.nics[index]

↩ Parent

NIC describes one network interface on the host.

Name Type Description Required
ip string 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.
false
mac string The device MAC address
false
model string The vendor and product IDs of the NIC, e.g. "0x8086 0x1572"
false
name string The name of the network interface, e.g. "en0"
false
pxe boolean Whether the NIC is PXE Bootable
false
speedGbps integer The speed of the device in Gigabits per second
false
vlanId integer The untagged VLAN ID

Format: int32
Minimum: 0
Maximum: 4094
false
vlans []object The VLANs available
false

BareMetalHost.status.hardware.nics[index].vlans[index]

↩ Parent

VLAN represents the name and ID of a VLAN.

Name Type Description Required
id integer VLANID is a 12-bit 802.1Q VLAN identifier

Format: int32
Minimum: 0
Maximum: 4094
false
name string
false

BareMetalHost.status.hardware.storage[index]

↩ Parent

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

Name Type Description Required
alternateNames []string A list of alternate Linux device names of the disk, e.g. "/dev/sda". Note that this list is not exhaustive, and names may not be stable across reboots.
false
hctl string The SCSI location of the device
false
model string Hardware model
false
name string A Linux device name of the disk, e.g. "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". This will be a name that is stable across reboots if one is available.
false
rotational boolean Whether this disk represents rotational storage. This field is not recommended for usage, please prefer using 'Type' field instead, this field will be deprecated eventually.
false
serialNumber string The serial number of the device
false
sizeBytes integer The size of the disk in Bytes

Format: int64
false
type enum Device type, one of: HDD, SSD, NVME.

Enum: HDD, SSD, NVME
false
vendor string The name of the vendor of the device
false
wwn string The WWN of the device
false
wwnVendorExtension string The WWN Vendor extension of the device
false
wwnWithExtension string The WWN with the extension
false

BareMetalHost.status.hardware.systemVendor

↩ Parent

System vendor information.

Name Type Description Required
manufacturer string
false
productName string
false
serialNumber string
false

BareMetalHost.status.operationHistory

↩ Parent

OperationHistory holds information about operations performed on this host.

Name Type Description Required
deprovision object OperationMetric contains metadata about an operation (inspection, provisioning, etc.) used for tracking metrics.
false
inspect object OperationMetric contains metadata about an operation (inspection, provisioning, etc.) used for tracking metrics.
false
provision object OperationMetric contains metadata about an operation (inspection, provisioning, etc.) used for tracking metrics.
false
register object OperationMetric contains metadata about an operation (inspection, provisioning, etc.) used for tracking metrics.
false

BareMetalHost.status.operationHistory.deprovision

↩ Parent

OperationMetric contains metadata about an operation (inspection, provisioning, etc.) used for tracking metrics.

Name Type Description Required
end string

Format: date-time
false
start string

Format: date-time
false

BareMetalHost.status.operationHistory.inspect

↩ Parent

OperationMetric contains metadata about an operation (inspection, provisioning, etc.) used for tracking metrics.

Name Type Description Required
end string

Format: date-time
false
start string

Format: date-time
false

BareMetalHost.status.operationHistory.provision

↩ Parent

OperationMetric contains metadata about an operation (inspection, provisioning, etc.) used for tracking metrics.

Name Type Description Required
end string

Format: date-time
false
start string

Format: date-time
false

BareMetalHost.status.operationHistory.register

↩ Parent

OperationMetric contains metadata about an operation (inspection, provisioning, etc.) used for tracking metrics.

Name Type Description Required
end string

Format: date-time
false
start string

Format: date-time
false

BareMetalHost.status.triedCredentials

↩ Parent

The last credentials we sent to the provisioning backend.

Name Type Description Required
credentials object SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace
false
credentialsVersion string
false

BareMetalHost.status.triedCredentials.credentials

↩ Parent

SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace

Name Type Description Required
name string name is unique within a namespace to reference a secret resource.
false
namespace string namespace defines the space within which the secret name must be unique.
false

BMCEventSubscription

↩ Parent

BMCEventSubscription is the Schema for the fast eventing API

Name Type Description Required
apiVersion string metal3.io/v1alpha1 true
kind string BMCEventSubscription true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object
false
status object
false

BMCEventSubscription.spec

↩ Parent

Name Type Description Required
context string Arbitrary user-provided context for the event
false
destination string A webhook URL to send events to
false
hostName string A reference to a BareMetalHost
false
httpHeadersRef object A secret containing HTTP headers which should be passed along to the Destination when making a request
false

BMCEventSubscription.spec.httpHeadersRef

↩ Parent

A secret containing HTTP headers which should be passed along to the Destination when making a request

Name Type Description Required
name string name is unique within a namespace to reference a secret resource.
false
namespace string namespace defines the space within which the secret name must be unique.
false

BMCEventSubscription.status

↩ Parent

Name Type Description Required
error string
false
subscriptionID string
false

DataImage

↩ Parent

DataImage is the Schema for the dataimages API.

Name Type Description Required
apiVersion string metal3.io/v1alpha1 true
kind string DataImage true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object DataImageSpec defines the desired state of DataImage.
false
status object DataImageStatus defines the observed state of DataImage.
false

DataImage.spec

↩ Parent

DataImageSpec defines the desired state of DataImage.

Name Type Description Required
url string Url is the address of the dataImage that we want to attach to a BareMetalHost
true

DataImage.status

↩ Parent

DataImageStatus defines the observed state of DataImage.

Name Type Description Required
attachedImage object Currently attached DataImage
false
error object Error count and message when attaching/detaching
false
lastReconciled string Time of last reconciliation

Format: date-time
false

DataImage.status.attachedImage

↩ Parent

Currently attached DataImage

Name Type Description Required
url string
true

DataImage.status.error

↩ Parent

Error count and message when attaching/detaching

Name Type Description Required
count integer
true
message string
true

FirmwareSchema

↩ Parent

FirmwareSchema is the Schema for the firmwareschemas API.

Name Type Description Required
apiVersion string metal3.io/v1alpha1 true
kind string FirmwareSchema true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object FirmwareSchemaSpec defines the desired state of FirmwareSchema.
false

FirmwareSchema.spec

↩ Parent

FirmwareSchemaSpec defines the desired state of FirmwareSchema.

Name Type Description Required
schema map[string]object Map of firmware name to schema
true
hardwareModel string The hardware model associated with this schema
false
hardwareVendor string The hardware vendor associated with this schema
false

FirmwareSchema.spec.schema[key]

↩ Parent

Additional data describing the firmware setting.

Name Type Description Required
allowable_values []string The allowable value for an Enumeration type setting.
false
attribute_type enum The type of setting.

Enum: Enumeration, String, Integer, Boolean, Password
false
lower_bound integer The lowest value for an Integer type setting.
false
max_length integer Maximum length for a String type setting.
false
min_length integer Minimum length for a String type setting.
false
read_only boolean Whether or not this setting is read only.
false
unique boolean Whether or not this setting's value is unique to this node, e.g. a serial number.
false
upper_bound integer The highest value for an Integer type setting.
false

HardwareData

↩ Parent

HardwareData is the Schema for the hardwaredata API.

Name Type Description Required
apiVersion string metal3.io/v1alpha1 true
kind string HardwareData true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object HardwareDataSpec defines the desired state of HardwareData.
false

HardwareData.spec

↩ Parent

HardwareDataSpec defines the desired state of HardwareData.

Name Type Description Required
hardware object The hardware discovered on the host during its inspection.
false

HardwareData.spec.hardware

↩ Parent

The hardware discovered on the host during its inspection.

Name Type Description Required
cpu object Details of the CPU(s) in the system.
false
firmware object System firmware information.
false
hostname string
false
nics []object List of network interfaces for the host.
false
ramMebibytes integer The host's amount of memory in Mebibytes.
false
storage []object List of storage (disk, SSD, etc.) available to the host.
false
systemVendor object System vendor information.
false

HardwareData.spec.hardware.cpu

↩ Parent

Details of the CPU(s) in the system.

Name Type Description Required
arch string
false
clockMegahertz number ClockSpeed is a clock speed in MHz

Format: double
false
count integer
false
flags []string
false
model string
false

HardwareData.spec.hardware.firmware

↩ Parent

System firmware information.

Name Type Description Required
bios object The BIOS for this firmware
false

HardwareData.spec.hardware.firmware.bios

↩ Parent

The BIOS for this firmware

Name Type Description Required
date string The release/build date for this BIOS
false
vendor string The vendor name for this BIOS
false
version string The version of the BIOS
false

HardwareData.spec.hardware.nics[index]

↩ Parent

NIC describes one network interface on the host.

Name Type Description Required
ip string 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.
false
mac string The device MAC address
false
model string The vendor and product IDs of the NIC, e.g. "0x8086 0x1572"
false
name string The name of the network interface, e.g. "en0"
false
pxe boolean Whether the NIC is PXE Bootable
false
speedGbps integer The speed of the device in Gigabits per second
false
vlanId integer The untagged VLAN ID

Format: int32
Minimum: 0
Maximum: 4094
false
vlans []object The VLANs available
false

HardwareData.spec.hardware.nics[index].vlans[index]

↩ Parent

VLAN represents the name and ID of a VLAN.

Name Type Description Required
id integer VLANID is a 12-bit 802.1Q VLAN identifier

Format: int32
Minimum: 0
Maximum: 4094
false
name string
false

HardwareData.spec.hardware.storage[index]

↩ Parent

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

Name Type Description Required
alternateNames []string A list of alternate Linux device names of the disk, e.g. "/dev/sda". Note that this list is not exhaustive, and names may not be stable across reboots.
false
hctl string The SCSI location of the device
false
model string Hardware model
false
name string A Linux device name of the disk, e.g. "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". This will be a name that is stable across reboots if one is available.
false
rotational boolean Whether this disk represents rotational storage. This field is not recommended for usage, please prefer using 'Type' field instead, this field will be deprecated eventually.
false
serialNumber string The serial number of the device
false
sizeBytes integer The size of the disk in Bytes

Format: int64
false
type enum Device type, one of: HDD, SSD, NVME.

Enum: HDD, SSD, NVME
false
vendor string The name of the vendor of the device
false
wwn string The WWN of the device
false
wwnVendorExtension string The WWN Vendor extension of the device
false
wwnWithExtension string The WWN with the extension
false

HardwareData.spec.hardware.systemVendor

↩ Parent

System vendor information.

Name Type Description Required
manufacturer string
false
productName string
false
serialNumber string
false

HostFirmwareComponents

↩ Parent

HostFirmwareComponents is the Schema for the hostfirmwarecomponents API.

Name Type Description Required
apiVersion string metal3.io/v1alpha1 true
kind string HostFirmwareComponents true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object HostFirmwareComponentsSpec defines the desired state of HostFirmwareComponents.
false
status object HostFirmwareComponentsStatus defines the observed state of HostFirmwareComponents.
false

HostFirmwareComponents.spec

↩ Parent

HostFirmwareComponentsSpec defines the desired state of HostFirmwareComponents.

Name Type Description Required
updates []object
true

HostFirmwareComponents.spec.updates[index]

↩ Parent

FirmwareUpdate defines a firmware update specification.

Name Type Description Required
component string
true
url string
true

HostFirmwareComponents.status

↩ Parent

HostFirmwareComponentsStatus defines the observed state of HostFirmwareComponents.

Name Type Description Required
components []object Components is the list of all available firmware components and their information.
false
conditions []object Track whether updates stored in the spec are valid based on the schema
false
lastUpdated string Time that the status was last updated

Format: date-time
false
updates []object Updates is the list of all firmware components that should be updated they are specified via name and url fields.
false

HostFirmwareComponents.status.components[index]

↩ Parent

FirmwareComponentStatus defines the status of a firmware component.

Name Type Description Required
component string
true
initialVersion string
true
currentVersion string
false
lastVersionFlashed string
false
updatedAt string

Format: date-time
false

HostFirmwareComponents.status.conditions[index]

↩ Parent

Condition contains details for one aspect of the current state of this API Resource.

Name Type Description Required
lastTransitionTime string lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

Format: date-time
true
message string message is a human readable message indicating details about the transition. This may be an empty string.
true
reason string reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
true
status enum status of the condition, one of True, False, Unknown.

Enum: True, False, Unknown
true
type string type of condition in CamelCase or in foo.example.com/CamelCase.
true
observedGeneration integer observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

Format: int64
Minimum: 0
false

HostFirmwareComponents.status.updates[index]

↩ Parent

FirmwareUpdate defines a firmware update specification.

Name Type Description Required
component string
true
url string
true

HostFirmwareSettings

↩ Parent

HostFirmwareSettings is the Schema for the hostfirmwaresettings API.

Name Type Description Required
apiVersion string metal3.io/v1alpha1 true
kind string HostFirmwareSettings true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object HostFirmwareSettingsSpec defines the desired state of HostFirmwareSettings.
false
status object HostFirmwareSettingsStatus defines the observed state of HostFirmwareSettings.
false

HostFirmwareSettings.spec

↩ Parent

HostFirmwareSettingsSpec defines the desired state of HostFirmwareSettings.

Name Type Description Required
settings map[string]int or string Settings are the desired firmware settings stored as name/value pairs.
true

HostFirmwareSettings.status

↩ Parent

HostFirmwareSettingsStatus defines the observed state of HostFirmwareSettings.

Name Type Description Required
settings map[string]string Settings are the firmware settings stored as name/value pairs
true
conditions []object Track whether settings stored in the spec are valid based on the schema
false
lastUpdated string Time that the status was last updated

Format: date-time
false
schema object FirmwareSchema is a reference to the Schema used to describe each FirmwareSetting. By default, this will be a Schema in the same Namespace as the settings but it can be overwritten in the Spec
false

HostFirmwareSettings.status.conditions[index]

↩ Parent

Condition contains details for one aspect of the current state of this API Resource.

Name Type Description Required
lastTransitionTime string lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

Format: date-time
true
message string message is a human readable message indicating details about the transition. This may be an empty string.
true
reason string reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
true
status enum status of the condition, one of True, False, Unknown.

Enum: True, False, Unknown
true
type string type of condition in CamelCase or in foo.example.com/CamelCase.
true
observedGeneration integer observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

Format: int64
Minimum: 0
false

HostFirmwareSettings.status.schema

↩ Parent

FirmwareSchema is a reference to the Schema used to describe each FirmwareSetting. By default, this will be a Schema in the same Namespace as the settings but it can be overwritten in the Spec

Name Type Description Required
name string `name` is the reference to the schema.
true
namespace string `namespace` is the namespace of the where the schema is stored.
true

HostUpdatePolicy

↩ Parent

HostUpdatePolicy is the Schema for the hostupdatepolicy API.

Name Type Description Required
apiVersion string metal3.io/v1alpha1 true
kind string HostUpdatePolicy true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object HostUpdatePolicySpec defines the desired state of HostUpdatePolicy.
false
status object HostUpdatePolicyStatus defines the observed state of HostUpdatePolicy.
false

HostUpdatePolicy.spec

↩ Parent

HostUpdatePolicySpec defines the desired state of HostUpdatePolicy.

Name Type Description Required
firmwareSettings enum Defines policy for changing firmware settings

Enum: onPreparing, onReboot
false
firmwareUpdates enum Defines policy for updating firmware

Enum: onPreparing, onReboot
false

PreprovisioningImage

↩ Parent

PreprovisioningImage is the Schema for the preprovisioningimages API.

Name Type Description Required
apiVersion string metal3.io/v1alpha1 true
kind string PreprovisioningImage true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object PreprovisioningImageSpec defines the desired state of PreprovisioningImage.
false
status object PreprovisioningImageStatus defines the observed state of PreprovisioningImage.
false

PreprovisioningImage.spec

↩ Parent

PreprovisioningImageSpec defines the desired state of PreprovisioningImage.

Name Type Description Required
acceptFormats []enum acceptFormats is a list of acceptable image formats.
false
architecture string architecture is the processor architecture for which to build the image.
false
networkDataName string networkDataName is the name of a Secret in the local namespace that contains network data to build in to the image.
false

PreprovisioningImage.status

↩ Parent

PreprovisioningImageStatus defines the observed state of PreprovisioningImage.

Name Type Description Required
architecture string architecture is the processor architecture for which the image is built
false
conditions []object conditions describe the state of the built image
false
extraKernelParams string extraKernelParams is a string with extra parameters to pass to the kernel when booting the image over network. Only makes sense for initrd images.
false
format enum format is the type of image that is available at the download url: either iso or initrd.

Enum: iso, initrd
false
imageUrl string imageUrl is the URL from which the built image can be downloaded.
false
kernelUrl string kernelUrl is the URL from which the kernel of the image can be downloaded. Only makes sense for initrd images.
false
networkData object networkData is a reference to the version of the Secret containing the network data used to build the image.
false

PreprovisioningImage.status.conditions[index]

↩ Parent

Condition contains details for one aspect of the current state of this API Resource.

Name Type Description Required
lastTransitionTime string lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

Format: date-time
true
message string message is a human readable message indicating details about the transition. This may be an empty string.
true
reason string reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
true
status enum status of the condition, one of True, False, Unknown.

Enum: True, False, Unknown
true
type string type of condition in CamelCase or in foo.example.com/CamelCase.
true
observedGeneration integer observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

Format: int64
Minimum: 0
false

PreprovisioningImage.status.networkData

↩ Parent

networkData is a reference to the version of the Secret containing the network data used to build the image.

Name Type Description Required
name string
false
version string
false