The Bare Metal Operator is a Kubernetes-native project that implements a comprehensive API for managing bare metal hosts within cloud-native infrastructure. Written in Go, it serves as a critical component of the Metal³ ecosystem, enabling organizations to treat physical servers as first-class Kubernetes resources through the BareMetalHost Custom Resource Definition.
The operator's core functionality centers on three primary capabilities. It inspects bare metal hardware and reports detailed inventory information including CPU specifications, RAM capacity, disk configurations, and network interface details directly on BareMetalHost resources. It provisions hosts with desired operating system images, automating the deployment process across physical infrastructure. It also handles disk cleaning operations before or after provisioning, ensuring hosts are in a known state for subsequent workloads.
The project maintains active development with regular feature additions.
Testing infrastructure plays a substantial role in the project's quality assurance strategy. The operator integrates with CAPM3 testing frameworks, running both e2e integration tests and ansible-based integration tests across multiple branches and operating systems. The project supports multiple release branches including release-0.13, release-0.12, and release-0.11, each with corresponding CentOS and Ubuntu integration test pipelines that validate compatibility with specific CAPM3 versions.
The repository's classification spans infrastructure, deployment, workload management, and cloud-native automation domains, reflecting its role as a bridge between Kubernetes orchestration and physical hardware provisioning.
Development workflow requires developers to run make manifests whenever changes occur in the config directory, as this command renders the config/render/capm3.yaml file which should not be manually edited. The project provides comprehensive documentation including API specifications, development environment setup guides, configuration instructions, testing procedures, and provisioner plugin documentation, supporting both operators and contributors seeking to extend functionality.