[PATCH 0/8] kdevops: add nixos-qemu subtree and refactor NIXOS role
Daniel Gomez <[email protected]> Thu, 23 Apr 2026 00:48:38 +0200
| Newsgroups | dev.linux.lists.kdevops |
|---|---|
| Message-ID | <20260423-kdevops-series-b-nixos-qemu-v1-0-209154ae54f8@samsung.com> |
Add scripts/nixos-qemu/ as a squashed git subtree. The project is a NixOS flake exposing two backend modules for kdevops guests: a libvirt backend (qcow2, grub, DHCP from libvirtd, drop-in for the existing kdevops NIXOS bringup) and an imageless backend (tmpfs root, systemd initramfs, external kernel, /nix/store and /lib/modules mounted over virtiofs from the host) used by the follow-up qemu-system-units series. Point the existing NIXOS role at the subtree: render a per-node default.nix that imports the flake, build the per-node image via the flake output under ansible.builtin.command, and split playbooks/nixos.yml into roles/nixos/tasks/*.yml phases so the follow-up imageless bringup can share the same provisioning, install_deps, and ssh_access tasks without duplicating them. No behaviour change for existing NIXOS users: libvirt stays the default, the legacy inline configuration.nix template is gone in favour of the flake module, and the Makefile path is the same. Signed-off-by: Daniel Gomez <[email protected]> --- Daniel Gomez (8): scripts: import nixos-qemu at scripts/nixos-qemu nixos: consume nixos-qemu modules via a per-node default.nix nixos: build the per-node disk image through the flake output nixos: invoke nix build through ansible.builtin.command nixos: restructure playbook into roles/nixos with per-phase task files nixos: collapse playbook into a tag-gated role entry nixos: drop stale top-level nixos/ entrypoint nixos: drop hardcoded /xfs1 path from clean_nixos_cache .gitignore | 3 - docs/kdevops-nixos.md | 8 +- kconfigs/Kconfig.nixos | 7 +- nixos/flake.nix | 32 - playbooks/nixos.yml | 554 +--------------- playbooks/roles/nixos/tasks/console.yml | 25 + playbooks/roles/nixos/tasks/destroy.yml | 89 +++ playbooks/roles/nixos/tasks/generate_configs.yml | 97 +++ playbooks/roles/nixos/tasks/install_deps.yml | 53 ++ playbooks/roles/nixos/tasks/libvirt_build.yml | 52 ++ playbooks/roles/nixos/tasks/libvirt_network.yml | 23 + playbooks/roles/nixos/tasks/libvirt_provision.yml | 49 ++ playbooks/roles/nixos/tasks/main.yml | 63 ++ playbooks/roles/nixos/tasks/ssh_access.yml | 60 ++ playbooks/roles/nixos/templates/default.nix.j2 | 69 ++ .../nixos/templates}/run-vm-wrapper.sh.j2 | 0 .../nixos/templates}/vm-libvirt.xml.j2 | 0 playbooks/templates/nixos/configuration.nix.j2 | 138 ---- playbooks/templates/nixos/flake.nix.j2 | 38 -- .../templates/nixos/hardware-configuration.nix.j2 | 42 -- playbooks/templates/nixos/vms.nix.j2 | 45 -- playbooks/templates/nixos/workflow-deps.nix.j2 | 127 ---- scripts/nixos-qemu/.gitignore | 2 + scripts/nixos-qemu/CLAUDE.md | 175 +++++ scripts/nixos-qemu/COPYING | 22 + scripts/nixos-qemu/LICENSE | 5 + .../LICENSES/preferred/copyleft-next-0.3.1 | 239 +++++++ scripts/nixos-qemu/README.md | 116 ++++ scripts/nixos-qemu/docs/design-decisions.md | 351 ++++++++++ scripts/nixos-qemu/docs/usage.md | 722 +++++++++++++++++++++ scripts/nixos-qemu/flake.lock | 27 + scripts/nixos-qemu/flake.nix | 86 +++ scripts/nixos-qemu/modules/build-tools.nix | 23 + scripts/nixos-qemu/modules/devel.nix | 118 ++++ scripts/nixos-qemu/modules/imageless.nix | 114 ++++ scripts/nixos-qemu/modules/libvirt.nix | 58 ++ scripts/nixos-qemu/modules/shares.nix | 41 ++ scripts/nixos-qemu/modules/storage.nix | 106 +++ scripts/nixos-qemu/modules/user.nix | 42 ++ scripts/nixos-qemu/modules/workflows/blktests.nix | 29 + scripts/nixos-qemu/modules/workflows/fstests.nix | 41 ++ scripts/nixos-qemu/modules/workflows/gitr.nix | 21 + scripts/nixos-qemu/modules/workflows/ltp.nix | 33 + scripts/nixos-qemu/modules/workflows/mmtests.nix | 23 + scripts/nixos-qemu/modules/workflows/pynfs.nix | 22 + scripts/nixos-qemu/modules/workflows/selftests.nix | 25 + scripts/nixos-qemu/modules/workflows/sysbench.nix | 26 + scripts/nixos-qemu/overlays/default.nix | 14 + scripts/nixos-qemu/overlays/fio.nix | 36 + scripts/nixos-qemu/overlays/xfstests.nix | 23 + scripts/nixos-qemu/pkgs/cpupower.nix | 64 ++ scripts/nixos-qemu/pkgs/damo.nix | 58 ++ scripts/nixos-qemu/pkgs/default.nix | 21 + scripts/nixos-qemu/pkgs/libbpf-tools.nix | 117 ++++ scripts/nixos-qemu/pkgs/nfstest.nix | 67 ++ scripts/nixos-qemu/pkgs/pynfs.nix | 94 +++ scripts/nixos-qemu/pkgs/xnvme.nix | 49 ++ scripts/nixos-qemu/templates/imageless/default.nix | 33 + scripts/nixos-qemu/templates/imageless/flake.nix | 51 ++ scripts/nixos-qemu/templates/libvirt/default.nix | 33 + scripts/nixos-qemu/templates/libvirt/flake.nix | 58 ++ scripts/nixos.Makefile | 2 - 62 files changed, 3775 insertions(+), 986 deletions(-) --- base-commit: 1a61f43dc2bc2e019fc4a35d9673cfa31909272d change-id: 20260423-kdevops-series-b-nixos-qemu-05d26a0416c1 prerequisite-change-id: 20260422-kdevops-series-a-fixes-e26bd7d77c76:v1 prerequisite-patch-id: a92bf777d89e14bd149d1967d2b6dfdd704633a4 prerequisite-patch-id: be22a3a7dbdc0d166677baae73157965556b2bea prerequisite-patch-id: 662a8d56c2343e4ccf954f4b8057a75ca464799d prerequisite-patch-id: 5e6b740ec798a1b645d8a2430c705de2727458d4 prerequisite-patch-id: 4cc5044b243438136ea4307cd3ec06109a5b2498 prerequisite-patch-id: dfb1809d2120d252529ae6d1d49d7d2524141894 prerequisite-patch-id: c51be5cfa9f8024a5e34d72e124cceb66f15218d prerequisite-patch-id: d8d5c310220184db0a6d6f4a15d66b11cc4d301a Best regards, -- Daniel Gomez <[email protected]>