Here are some answers to common questions, discover more about Metal3
Baremetal Operator is a Kubernetes controller providing support for several custom resources, most importantly - BareMetalHosts.
Drivers with “virtual media” in their name can use the virtual media technology to boot an ISO remotely. The other drivers require network boot, more specifically - iPXE.
CAPM3 is an infrastructure provider for the Cluster API that uses Metal3 and Ironic to provision machines for your cluster.
The Metal3 project includes the Cluster API Provider Metal3 (CAPM3) - an infrastructure provider for Cluster API.
Both x86_64 (Intel) and AARCH64 (Arm) are supported. Mixed architectures (e.g. some hosts x86_64, some - aarch64) are not supported yet.
IPMI is the acronym for
Intelligent Platform Management Interface which is used to monitor hardware health (fans, voltage, temperature, etc). The specification is available at https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi-home.html and was created by a joint effort by several manufacturers. It allows us to also define the boot order and power status of the hardware.
You can use any operating system that is available in a cloud format (e.g. qcow2). If you need first boot configuration, the image has to contain cloud-init or a similar first-boot tool.
While it’s technically possible to add more provisioners, only Ironic is supported now, and supporting other provisioners is not on the current roadmap.
You can put it to the BareMetalHost’s network Data field in the OpenStack network data format.
Ironic can be used as a stand-alone service without any other OpenStack services. In fact, Baremetal Operator does not support any other OpenStack services.
You can use the live ISO workflow to attach a bootable ISO to the machine using virtual media. Note that Baremetal Operator will not track the installation process in this case and will consider the host active once the ISO is booted.
Enterprise hardware usually has an integrated or optional controller that allows reaching the server even if it’s powered down, either via dedicated or shared nic. This controller allows some checks on the server hardware and also perform some settings like changing power status, changing Boot Order, etc. The Baremetal Operator uses it to power on, reboot and provision the physical servers to be used for running workloads on top. Commercial names include
iRMC, etc and most of them should support
It is completely optional to use Cluster API. You can use only the Baremetal Operator and skip CAPM3 completely if all you need is bare-metal provisioning via Kubernetes API.
Ironic is a bare metal provisioner, it handles provisioning of physical machines. Metal3 exposes a part of the Ironic functionality as a Kubernetes native API via the Baremetal Operator. Ironic is not part of Metal3 but Metal3 relies on Ironic to provision the bare metal hosts.
An Operator is a method of packaging, deploying and managing a Kubernetes application. A Kubernetes application is an application that is both deployed on Kubernetes and managed using the Kubernetes APIs and kubectl tooling. You can think of Operators as the runtime that manages this type of application on Kubernetes. If you want to learn more about Operators you can check the Operator framework website https://operatorframework.io/what/
Cleaning removes partitioning information from the disks to avoid conflicts with the new operating system. See automated cleaning for details.
Inspection is used to populate hardware information in the BareMetalHost objects. You can disable it, but you may need to populate this information yourself. Do not blindly disable inspection if it fails - chances are high the subsequent operations fail the same way.
The iPXE project develops firmware for booting machines over the network. It’s a more feature-rich alternative to the well known PXE and can be used as an add-on on top of PXE.
Virtual media is a technology that allows booting an ISO on a remote machine without resorting to network boot (e.g. PXE).
Ironic is an established service with a long history of production usage and good support for industry standards. By using it, Metal3 can concentrate on providing the best integration with Kubernetes.