Remove the microvm host runtime #40

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

The microvm host runtime is gone from this repo, and the vm flake input with it, since the host re-export was the only thing nexus read from it. One running machine's derivation path changes: the hypervisor, and only because nix/provisioning-scripts.nix copies its scripts out of the whole nexus source tree, so every nexus commit moves it. The built script directory is byte-identical across the two revisions, and the two hypervisor closures differ in exactly the eleven derivations on the path from that package up to the system, so a rebuilt host installs the same content. If that reading is wrong, the hypervisor is the machine to roll back. All three remaining checks build green.

Refs allod/strategy#46. Merge order: second of the sequence posted on that issue, after allod/archetypes#71, which stops reading nixosModules.microvmHost.

What changes

  • Deleted: nix/microvm/{host,launcher}.nix, checks/microvm/ (the host contract and isolation checks), docs/microvm-host.md, the nixosModules.microvmHost export, and the README and integration paragraphs that described it.
  • The vm input is removed from flake.nix. The lock loses the vm subtree (vm, disko, microvm, spectrum and nixpkgs-unstable nodes); every surviving node is byte-identical to before.
  • tests/pi-provider.sh: the fixture proving a non-libvirt target is refused now carries an unsupported runtime literal instead of the removed enum member. The script's own libvirt gate is unchanged.

Risk

  • The hypervisor toplevel moves on this and on every future nexus commit through the source-tree copy in nix/provisioning-scripts.nix. The content is identical here (below); the coupling itself predates this PR and is the same class as allod/archetypes#21.
  • Checks: 3 remain, all green; the two deleted checks pinned properties of the removed runtime only.

Validation

  • nix build .#checks.x86_64-linux.<name> one attribute at a time, all green: host-provisioning-env, no-hardcoded-arch, provisioning-contract (which runs tests/pi-provider.sh and the other shell tests under shellcheck).
  • fleet-diff --override archetypes/nexus=331ba8e494934ac6a517c226f31486c12413a6e6 from allod/deploy: allod-dev, installer, privacy-1 unchanged; nexus CHANGES.
  • The change's content: #provisioning-scripts built at the locked nexus revision a2c9d8b and at 331ba8e, then diff -r over the two outputs: identical. The two hypervisor toplevel closures hold 5635 derivations each and differ in exactly eleven, the same eleven names on each side with a new hash: nexus-provisioning-scripts, home-manager-path, home-manager-files, hm_fontconfigconf.d10hmfonts.conf, home-manager-generation, unit-home-manager-allod.service, system-units, etc, user-environment, activate, nixos-system-nexus.
  • grep -ri microvm over the tree finds nothing.
The microvm host runtime is gone from this repo, and the `vm` flake input with it, since the host re-export was the only thing nexus read from it. One running machine's derivation path changes: the hypervisor, and only because `nix/provisioning-scripts.nix` copies its scripts out of the whole nexus source tree, so every nexus commit moves it. The built script directory is byte-identical across the two revisions, and the two hypervisor closures differ in exactly the eleven derivations on the path from that package up to the system, so a rebuilt host installs the same content. If that reading is wrong, the hypervisor is the machine to roll back. All three remaining checks build green. Refs allod/strategy#46. Merge order: second of the sequence posted on that issue, after allod/archetypes#71, which stops reading `nixosModules.microvmHost`. ## What changes - Deleted: `nix/microvm/{host,launcher}.nix`, `checks/microvm/` (the host contract and isolation checks), `docs/microvm-host.md`, the `nixosModules.microvmHost` export, and the README and integration paragraphs that described it. - The `vm` input is removed from `flake.nix`. The lock loses the vm subtree (vm, disko, microvm, spectrum and nixpkgs-unstable nodes); every surviving node is byte-identical to before. - `tests/pi-provider.sh`: the fixture proving a non-libvirt target is refused now carries an unsupported runtime literal instead of the removed enum member. The script's own libvirt gate is unchanged. ## Risk - The hypervisor toplevel moves on this and on every future nexus commit through the source-tree copy in `nix/provisioning-scripts.nix`. The content is identical here (below); the coupling itself predates this PR and is the same class as allod/archetypes#21. - Checks: 3 remain, all green; the two deleted checks pinned properties of the removed runtime only. ## Validation - `nix build .#checks.x86_64-linux.<name>` one attribute at a time, all green: host-provisioning-env, no-hardcoded-arch, provisioning-contract (which runs `tests/pi-provider.sh` and the other shell tests under shellcheck). - `fleet-diff --override archetypes/nexus=331ba8e494934ac6a517c226f31486c12413a6e6` from allod/deploy: allod-dev, installer, privacy-1 unchanged; nexus CHANGES. - The change's content: `#provisioning-scripts` built at the locked nexus revision a2c9d8b and at 331ba8e, then `diff -r` over the two outputs: identical. The two hypervisor toplevel closures hold 5635 derivations each and differ in exactly eleven, the same eleven names on each side with a new hash: nexus-provisioning-scripts, home-manager-path, home-manager-files, hm_fontconfigconf.d10hmfonts.conf, home-manager-generation, unit-home-manager-allod.service, system-units, etc, user-environment, activate, nixos-system-nexus. - `grep -ri microvm` over the tree finds nothing.
nixosModules.microvmHost, the launcher generator, the two host checks and
the host runtime document go with the withdrawn runtime. The vm input goes
too: the host re-export was the only thing nexus read from it. The
pi-provider fixture that proved a non-libvirt target is refused now carries
an unsupported runtime literal instead of the removed member.

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