bare-metal server • A eet of bare-metal servers • Racking, cabling, and inspection • Remote management • Con guration and OS provisioning • Automation • Operation and maintenance • Scalability ➡Human-in-the-loop ➡Zero-touch fi fl 3
2. *Boot from the installation boot device 3. Start and complete the installation ow (interactive/automated) 4. *Reboot 5. *Boot from the OS installed device 6. Voilà! * requires physical access to the machine fl 4
Controller) • Dedicated processor • On server motherboard • Out-of-band control • Works without OS • Core capabilities • Power control • Boot options • Remote boot media • Console access • Firmware settings • Hardware monitoring 6
(Intelligent Platform Management • Red sh Interface) • HTTP + JSON • Binary over network • Modern REST model • Legacy, widely supported • Automation friendly • Direct control style fi 7
libvirt API • BMC emulators for VMs • Power a VM on/off is trivial • VirtualBMC: exposes IPMI ➡…but your provisioning stack can’t • sushy-tools: exposes Red sh talk libvirt API • Both assume libvirt/KVM domains ➡…But what if my VMs aren’t libvirt domains? fi 12
• BMC emulators for KubeVirt VMs? • VMs run in pods, managed by Kubernetes • VirtualBMC & sushi-tools assume libvirt domains • A VM is a CR (VirtualMachine/ • They can’t reach VirtualMachine CR VirtualMachineInstance) inside a cluster • Power control is already Kubernetes-native ➡Gap: IPMI/Red sh on the front, KubeVirt API on the back fi 15
Zero adaptation on the provisioner side • Metal3, Tinkerbell, Ironic, MAAS, Foreman… • The VM looks and behaves like bare metal • KubeVirtBMC exposes those same endpoints for • Behind the endpoints, it drives the KubeVirt API KubeVirt VMs • Power on/off/cycle —> start/stop the VM • Each VM gets its own BMC • Device boot order —> patch the VM CR • Each BMC has its own IP and credentials • Virtual media —> DataVolume + Hot-plug volume fi 19
Project inception at HackWeek 23 • Initial operator and IPMI agent • Early 2024 • Project migration invited by KubeVirt representatives • Mid 2024 • Migration proposal accepted • Migration work began • Late 2024 • Early 2026 • Red sh agent • KubeVirt org adopted a different Red sh project • Early 2025 • Migration adopted as a KubeVirt GSoC project (co-mentored) • Mid 2025 • GSoC didn’t pan out; migration stalled fi fi (kubevirtbmc) • Now • Standalone • Real-world adoption, including Harvester • Late 2025 • Red sh VirtualMedia support 23 fi • Spun out into its own org • Actively growing
implementation • Stateless vs. stateful • More endpoints supported • Today: a pure translator, holding no state • Conformance testing (DMTF Red sh Service • Async operations may force us to hold state Validator) • Open design question, not yet settled • Red sh Task API for asynchronous operations (e.g. • More ecosystem integration InsertMedia) • Metal3 use case demonstration and E2E testing (recently landed) • Validated against more provisioning stacks https://github.com/kubevirtbmc/kubevirtbmc/issues fi fi fi 25
Putting it out there • Use cases users applying it in ways you didn’t design for • Promoting the project (blog articles, talks, social • RFEs: the roadmap the community writes for media posts, etc.) you • Reaching potential users where they already are • Where it’s heading • What came back • Project directions shaped by real usage • Feedback from people actually running it • Helping hands: the project has outgrown one • Bugs you only nd in someone else’s cluster maintainer fi 26