Skip to main content

Mac vz feature completion (control plane)

This document records the pure-Rust / example completion of the high-impact vz features. The Swift runner and Virtualization.framework paths already exist in-tree; this change finishes the control-plane surface that can be validated without an Apple Silicon host.

Status​

FeatureControl planeRunner / hardware
Unattended macOS provisioning (provision_*)Present + examplemacOS 27, needs hardware verify
First-boot account fallback (username / auto_login)AddedHelper runs inside guest
ASIF / DiskImageKit overlayPresent + examplemacOS 26/27
Named shared vmnet + UDP forwardsPresent + exampleNeeds signed fluxvm-vmnetd
USB controller + mass-storage hotplugPresent + exampleVerified path
Physical USB Accessory AccessPresentNeeds signed UI helper + consent
Custom VirtioPresent + exampleVerified on M4 (control + bulk)
Nested virtualizationPresent + exampleHost capability gated
RosettaPresent + exampleLinux guest only
Agent / container sandboxesPresentVerified on M4
Snapshots / warm poolsPresentVerified (Linux); macOS guest hand-verified
Multi-Mac fleet placementPresentLoopback only; needs 2+ Macs

What this change adds​

  1. AppleFirstBoot account fields and helper support (username, full name, password/password_file, auto_login).
  2. Example specs under examples/vz-complete/ for every major feature above.
  3. Unit test coverage for the first-boot share writer (already green on Linux).

What still needs a Mac​

  • Compiling fluxvm-vz-runner, fluxvm-vmnetd, and FluxVMUSBAccess.app with the correct entitlements.
  • End-to-end IPSW install + first-boot account creation.
  • Two-runner shared vmnet.
  • Physical USB attach with user consent.
  • Multi-Mac Kairon placement.

See docs/macos.md and docs/macos-vz27-remaining-complete.md for the full capability matrix and hardware log.