Metal3

Bare metal host provisioning for Kubernetes

Get Started User guide

Connect with the Metal3.io community to learn more, contribute ideas, and help build the future of Metal3.io. Learn more about how to make the most of the Metal3io features in your work.

Join the Conversation

Why Metal3.io?

There are a number of great open source tools for bare metal host provisioning, including Ironic. Metal3.io aims to build on these technologies to provide a Kubernetes native API for managing bare metal hosts via a provisioning stack that is also running on Kubernetes. We believe that Kubernetes Native Infrastructure, or managing your infrastructure just like your applications, is a powerful next step in the evolution of infrastructure management.

The Metal3.io project is also building integration with the Kubernetes cluster-api project, allowing Metal3.io to be used as an infrastructure backend for Machine objects from the Cluster API.

FAQ

Documentation

What is the baremetal operator?

The bare metal operator is documented at https://github.com/metal3-io/baremetal-operator/blob/master/docs/api.md and it’s the operator in charge of definitions of physical hosts, containing information about how to reach the Out of Band management controller, URL of the image to provision, plus other properties related with hosts being used for provisioning instances.

What is IPMI?

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.

What is an out-of-band management controller?

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 iDrac, iLO, iRMC, etc and most of them should support IPMI.

What is an operator?

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/