HeadlinesBriefing favicon HeadlinesBriefing.com

KVM/QEMU Docker Compose Breakthrough: Holos Simplifies VM Orchestration

Hacker News •
×

A new open-source project called holos reimagines container-like orchestration for KVM/QEMU virtual machines, offering developers a Docker Compose-style workflow for managing multi-VM environments. Built entirely in Go, holos allows users to define VM stacks in a YAML file, automating provisioning, networking, and lifecycle management without relying on libvirt or complex configuration.

At its core, holos treats each VM as a "primitive" unit with its own kernel boundary, disk image (via qcow2), and cloud-init configuration. The tool supports resource allocation (CPU, memory), port mapping, volume persistence, and dependency resolution between services. Notable features include automatic SSH key generation for secure access, healthcheck integration to ensure service readiness, and graceful shutdown protocols that respect ACPI powerdown signals before force-killing processes. Users can deploy PostgreSQL clusters, web servers, or GPU-intensive workloads using familiar Compose-like syntax.

The project excels in GPU passthrough scenarios, enabling direct PCI device assignment to VMs with minimal host-side setup. By leveraging VFIO and OVMF UEFI firmware, holos simplifies GPU sharing across isolated environments – a boon for machine learning and graphics workloads. It also integrates with systemd for reboot resilience, ensuring projects restart automatically after host reboots. Cloud-init automation reduces manual configuration, with support for package installation, filesystem formatting, and script execution during VM boot.

Holos prioritizes practicality over abstraction, requiring only KVM, QEMU, and basic host tools like mkosi. While not a Kubernetes replacement, it fills a niche for developers needing lightweight, host-centric VM orchestration. Early adopters praise its simplicity for tasks like staging environments or isolated testing, though advanced networking customization remains a manual process. The tool’s GitHub repository includes detailed documentation and example configurations, positioning it as a potential standard for KVM-based development workflows.