BareMetalHost States
BareMetalHost resources move through a defined set of lifecycle states as vMetal provisions and manages physical servers. See Architecture for how the states fit into the overall provisioning flow.
Modify the following with your specific values to replace them across the whole page:
Lifecycle states
Click to enlarge
Check all servers in a namespace:
kubectl get baremetalhost -n my-metal3-namespace \
-o custom-columns='NAME:.metadata.name,STATE:.status.provisioning.state,ERROR:.status.errorMessage'
Two abbreviations appear throughout: BMC (Baseboard Management Controller) and BMO (Bare Metal Operator). BMC is the server's out-of-band management interface. BMO is the Metal3 provisioning controller.
| State | Description | Common failure causes |
|---|---|---|
registering | BMC verification and Ironic registration. | BMC unreachable; wrong BMC address or credentials. |
inspecting | Hardware inventory collection by IPA ramdisk. | DHCP server not deployed or unreachable; wrong boot MAC; no DHCP response; IPA ramdisk download failure. |
available | Ready to claim. | n/a |
provisioning | OS image write and cloud-init configuration. | Image URL unreachable from the server; checksum mismatch; wrong rootDeviceHint. |
provisioned | Running the configured OS. | Node join can still fail if cloud-init or networking are misconfigured. |
deprovisioning | Disk cleaning before returning to the pool. | Cleaning step times out; BMC unreachable; cleaning ramdisk cannot reach Ironic or DHCP proxy. |
error | A failure occurred. | See the status.errorMessage field. |
Status fields
For more detail on a specific server:
kubectl describe baremetalhost my-baremetalhost-name -n my-metal3-namespace
| Field | Where to find it | What it tells you |
|---|---|---|
Status.Provisioning.State | kubectl describe or kubectl get bmh -o yaml | The current lifecycle state. |
Status.ErrorMessage | Status section in describe output | The last error from the BMO or Ironic. |
Status.ErrorCount | Status section | How many consecutive errors have occurred. A high count means repeated retries. |
Status.GoodCredentials | Status section | Whether BMC credentials have been validated successfully. |
Status.HardwareDetails | Status section | Hardware inventory populated after inspecting. Empty here means inspection never completed. |
Status.OperationHistory | kubectl get bmh -o yaml | Timestamps for recent inspect and provision operations. An empty end field means the operation is still in progress. |