Remove the microvm guest runtime from the framework #71

Merged
vnprc merged 1 commit from agent/microvm-withdrawal into master 2026-09-08 13:23:06 +01:00
Member

The microvm runtime is gone from this repo. No running machine changes: every machine in the example fleet composes the libvirt guest exactly as before, and a fleet diff from allod/deploy against this branch reports all four machines unchanged. What goes is code only a microvm machine would have used, and no inventory ever declared one. Every remaining check builds green. This PR leaves the lock alone, so it moves nothing on its own; if a machine changes later, the deploy lock bump at the end of the sequence is the PR to revert.

Refs allod/strategy#46. Merge order: first of the sequence posted on that issue. The nexus, vm and inventory removals follow it, and this repo's lock advances in a later PR once nothing here reads what they remove.

What changes

  • Deleted: checks/microvm-{credentials,fleet-wiring,host-join,sshd-boot}.nix, checks/qemu-command.nix, modules/microvm-*, and in flake.nix the volumes, interfaces, credentials and host/guest join regions, fleetMicrovmGuests, the guest-set argument of mkHypervisor, and every runtime == "microvm" gate in the three builders.
  • guestModuleFor keeps its total table over inventory's enum, now one member; the unmapped-runtime negative in runtime-module-selection still pins it.
  • runtime-module-selection drops its three microvm fixtures and everything only they exercised (volume, interface and address scanners, the QEMU reconstruction). It still compares every guest machine's marker against its inventory fact, forces every guest toplevel, refuses a hypervisor that composes a guest module, and delegates enum coverage to inventory's runtime-fact-mutations.
  • vm-facts-coherence and vm-facts-negative sabotage with a literal outside the enum instead of the other member.
  • credential-profiles, netrc-activation and dev-forge-opt-out drop the runtime filters that only existed to skip microvm machines, restoring the shape they had before: a target is measured whenever this repo builds its machine.
  • modules/pi-provider-lifecycle.nix no longer takes a runtime argument and deploys age.secrets unconditionally.
  • README: the credentials and Pi sections describe one runtime.
  • flake.lock untouched.

Risk

  • Machines: none change (fleet diff below).
  • Checks: 14 remain, all green; every property the four deleted checks pinned belonged to the removed runtime.
  • lib.piProviderLifecycle.mkNixosModule lost its runtime parameter, so an out-of-tree caller that still passes one fails at evaluation rather than silently. No public caller does.

Validation

  • nix build .#checks.x86_64-linux.<name> one attribute at a time, all green: agent-vm-status, composed-layer-smoke, credential-profiles, dev-forge-opt-out, netrc-activation, pi-integration, pi-provider-lifecycle, profile-definition-contracts, public-host, runtime-module-selection, site-content, static-site, vm-facts-coherence, vm-facts-negative.
  • fleet-diff --override archetypes=f6aba2d576e2cfd225c2016e0baba179b5aff539 --expect-none from allod/deploy: allod-dev, installer, nexus, privacy-1 all unchanged; expectation matches.
  • grep -ri microvm over the tree finds only flake.lock.
The microvm runtime is gone from this repo. No running machine changes: every machine in the example fleet composes the libvirt guest exactly as before, and a fleet diff from allod/deploy against this branch reports all four machines unchanged. What goes is code only a microvm machine would have used, and no inventory ever declared one. Every remaining check builds green. This PR leaves the lock alone, so it moves nothing on its own; if a machine changes later, the deploy lock bump at the end of the sequence is the PR to revert. Refs allod/strategy#46. Merge order: first of the sequence posted on that issue. The nexus, vm and inventory removals follow it, and this repo's lock advances in a later PR once nothing here reads what they remove. ## What changes - Deleted: `checks/microvm-{credentials,fleet-wiring,host-join,sshd-boot}.nix`, `checks/qemu-command.nix`, `modules/microvm-*`, and in `flake.nix` the volumes, interfaces, credentials and host/guest join regions, `fleetMicrovmGuests`, the guest-set argument of `mkHypervisor`, and every `runtime == "microvm"` gate in the three builders. - `guestModuleFor` keeps its total table over inventory's enum, now one member; the unmapped-runtime negative in `runtime-module-selection` still pins it. - `runtime-module-selection` drops its three microvm fixtures and everything only they exercised (volume, interface and address scanners, the QEMU reconstruction). It still compares every guest machine's marker against its inventory fact, forces every guest toplevel, refuses a hypervisor that composes a guest module, and delegates enum coverage to inventory's `runtime-fact-mutations`. - `vm-facts-coherence` and `vm-facts-negative` sabotage with a literal outside the enum instead of the other member. - `credential-profiles`, `netrc-activation` and `dev-forge-opt-out` drop the runtime filters that only existed to skip microvm machines, restoring the shape they had before: a target is measured whenever this repo builds its machine. - `modules/pi-provider-lifecycle.nix` no longer takes a `runtime` argument and deploys `age.secrets` unconditionally. - README: the credentials and Pi sections describe one runtime. - `flake.lock` untouched. ## Risk - Machines: none change (fleet diff below). - Checks: 14 remain, all green; every property the four deleted checks pinned belonged to the removed runtime. - `lib.piProviderLifecycle.mkNixosModule` lost its `runtime` parameter, so an out-of-tree caller that still passes one fails at evaluation rather than silently. No public caller does. ## Validation - `nix build .#checks.x86_64-linux.<name>` one attribute at a time, all green: agent-vm-status, composed-layer-smoke, credential-profiles, dev-forge-opt-out, netrc-activation, pi-integration, pi-provider-lifecycle, profile-definition-contracts, public-host, runtime-module-selection, site-content, static-site, vm-facts-coherence, vm-facts-negative. - `fleet-diff --override archetypes=f6aba2d576e2cfd225c2016e0baba179b5aff539 --expect-none` from allod/deploy: allod-dev, installer, nexus, privacy-1 all unchanged; expectation matches. - `grep -ri microvm` over the tree finds only `flake.lock`.
The microvm runtime is withdrawn: the guest-side credential, volume and
interface modules, the host/guest join, the four microvm checks and the
QEMU command reconstruction go, and the builders compose one runtime.
guestModuleFor keeps its total table over inventory's enum, now one
member, and the unmapped-runtime negative still pins it.

vm-facts-coherence and vm-facts-negative sabotage with a literal outside
the enum instead of the other member. credential-profiles, netrc-activation
and dev-forge-opt-out drop the runtime filters that only existed to skip
microvm machines. The Pi provider lifecycle module no longer takes a
runtime argument. The lock is untouched; the inputs advance once nothing
here reads what they remove.

Refs allod/strategy#46
vnprc approved these changes 2026-09-08 13:23:00 +01:00
vnprc merged commit f6aba2d576 into master 2026-09-08 13:23:06 +01:00
vnprc deleted branch agent/microvm-withdrawal 2026-09-08 13:23:06 +01:00
Sign in to join this conversation.
No description provided.