Metal³ Development Environment is a collection of shell scripts that sets up a local development environment for Metal³, a Kubernetes-native bare metal provisioning project.
The project solves the problem of bootstrapping a complex multi-component development setup by automating the deployment of a Minikube cluster alongside virtualized target hosts. It handles the provisioning of the necessary infrastructure, including configuration of hypervisors, networking, and the Metal³ stack components, allowing developers to test bare metal provisioning workflows locally without manual infrastructure setup.
Developers should use this tool if they are working on Metal³ components such as Cluster API Provider Metal³, Baremetal Operator, or IPAM, and need an isolated environment to test provisioning logic. The tool supports multiple target operating systems including Ubuntu and CentOS, with different resource requirements depending on the chosen distribution. The environment can be deployed using standard scripts or through Tilt for local development of CAPI, BMO, CAPM3, and IPAM components. The README explicitly warns that these scripts are invasive and will reconfigure the host OS, making it strongly recommended to run the environment in a virtual machine rather than on a production system.
The project maintains active testing across multiple release branches, with a defined test matrix covering different versions of CAPM3, IPAM, Baremetal Operator, Ironic, and IPA components. Development activity spans support for current and previous release branches, indicating ongoing maintenance of multiple versions in parallel. The project provides detailed documentation through external references and maintains configuration for different hypervisor options, including experimental QEMU support alongside the default KVM setup.