1.7 KiB
1.7 KiB
PlasmaVMC qcow artifact plan (for integration gate e2e)
- Goal: provide a reproducible qcow2 image + env wiring so plasmavmc e2e (QEMU-backed) can run in the integration matrix without manual prep.
- Constraints: small (<150MB), no network during gate run, works under nix develop; use virtio drivers; avoid licensing issues.
Candidate image
- Alpine cloud image (latest stable) is small and permissively licensed; includes virtio modules.
- Fallback: Build a 1G qcow2 via
qemu-img create -f qcow2 plasma-mini.qcow2 1G+virt-make-fson a tiny rootfs (busybox/alpine base).
Provisioning steps (once, cacheable)
- In nix shell (has qemu-img):
qemu-img convert -f qcow2 -O qcow2 alpine-cloudimg-amd64.qcow2 plasma-mini.qcow2orqemu-img create -f qcow2 plasma-mini.qcow2 1G. - Inject default user+ssh key (optional) via cloud-init seed ISO or
virt-make-fs(avoid during gate). - Store artifact under
.cccc/work/artifacts/plasma-mini.qcow2(or cache bucket if available). - Record SHA256 to detect drift.
Gate wiring
- Env vars:
PLASMAVMC_QEMU_PATH(e.g.,/run/current-system/sw/bin/qemu-system-x86_64in nix shell),PLASMAVMC_QCOW2_PATH(absolute path to plasma-mini.qcow2). - Update
scripts/integration-matrix.shdocs to mention envs; optionally addjust integration-matrix [--skip-plasma]wrapper that injects defaults when present.
Time/budget
- Download + convert: ~2-3 minutes once; gate runs reuse artifact (no network).
- If artifact absent, plasmavmc e2e remain ignored; matrix still green on unit/integration subsets.
Open questions
- Where to store the qcow2 artifact for CI (git LFS? remote cache?) to avoid repo bloat.
- Is cloud-init desirable for tests (SSH into VM) or is raw boot enough for current e2e?