test(e2e): add reusable QEMU infrastructure for E2E tests - #2471
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
a9988d0 to
41f2720
Compare
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
4f528ef to
52cb5e1
Compare
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: This maintainer-authored PR is project-valid as reusable QEMU/Nix test infrastructure for the release and E2E stack.
Head SHA: 52cb5e1b90ababfdf89a4ee95a37bb111509263f
Review findings:
- Warning: the OCI cache path pulls and boots a full guest disk from a mutable repository reference. Metadata and disk checksums protect transfer integrity, but not provenance. Before wiring this into trusted CI, require an org-controlled immutable registry policy or artifact signing/verification; otherwise the cache repository becomes a supply-chain execution surface.
- Three line-specific warnings are inline.
Docs: Fern docs/navigation are not required for this contributor/test infrastructure change; nix/test-guest/README.md and architecture/build.md cover the new workflow.
Next state: gator:in-review
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: This maintainer-authored PR remains project-valid as reusable Nix/QEMU test guest infrastructure for release and E2E follow-on work.
Head SHA: 49ae902c28f3c514535434e65bc4dc2c640be5da
Review findings:
- Warning: package verification coverage regressed when the Debian package smoke-test block was removed before an equivalent VM-backed CI replacement exists.
- Warning: OCI prepared-disk cache pulls still verify integrity but not publisher provenance; trusted CI use needs an immutable org-controlled reference or signature/manifest verification.
- Suggestion:
nix/test-guest/run.shshould use the same explicit option-value validation pattern ascache.shfor a cleaner CLI failure mode.
Docs: Fern docs/navigation are not required for this contributor/test infrastructure change; nix/test-guest/README.md and architecture/build.md cover the workflow.
Checks: DCO and gate-status publication passed; Branch Checks and Helm Lint are still pending on /ok to test mirror validation. I am not triggering CI while review warnings remain unresolved.
Next state: gator:in-review
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
039537a to
9f24004
Compare
|
/ok to test 9f24004 |
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: This maintainer-authored PR remains project-valid as reusable Nix/QEMU test guest infrastructure for release and E2E follow-on work.
Head SHA: 9f240044655387561c88b4b305e8770f88042765
Review findings:
- Warning: the SSH control socket path can exceed Unix socket path limits during cache builds because
TMPDIRmay be a deep cache staging path. - Warning: local prepared-disk cache hits still trust existing metadata without revalidating the disk checksum or QCOW2 structure.
Docs: Fern docs/navigation are not required for this contributor/test infrastructure change; nix/test-guest/README.md and architecture/build.md cover the workflow.
Checks: DCO and gate-status publication passed; Branch Checks and Helm Lint are still pending on /ok to test mirror validation. I am not triggering CI while review warnings remain unresolved.
Next state: gator:in-review
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: This maintainer-authored PR remains project-valid as reusable Nix/QEMU test guest infrastructure for release and E2E follow-on work.
Head SHA: 7f365efb813777575f291f6e48230913aa287303
Review findings:
- Warning: removing the Debian package smoke block drops existing package verification coverage before the VM-backed replacement lands.
- Suggestion: the runner option parser should validate required option values before
shift 2for cleaner CLI failures.
Docs: Fern docs/navigation are not required for this contributor/test infrastructure change; nix/test-guest/README.md and architecture/build.md cover the workflow.
Checks: DCO and gate-status publication passed; Branch Checks and Helm Lint are still pending on /ok to test mirror validation. I am not moving to pipeline watch while the review warning remains unresolved.
Next state: gator:in-review
| # Smoke tests | ||
| # --------------------------------------------------------------------------- | ||
|
|
||
| extract_dir="${tmpdir}/extract" |
There was a problem hiding this comment.
gator-agent
Warning: Removing the package smoke block drops existing CI coverage before the VM-backed replacement lands. Keep the extracted --version checks and systemd-analyze --user verify here, or add an equivalent check to the current Debian package workflow in this PR.
| while [ "$#" -gt 0 ]; do | ||
| case "$1" in | ||
| --distro) | ||
| distro=${2:-} |
There was a problem hiding this comment.
gator-agent
Suggestion: Options that require values still do shift 2 without validation, so --distro or --install at EOF exits with a raw shell error. Mirror cache.sh’s require_value "$@" helper for --distro, --with, --install, --copy, and --ssh-port.
Summary
Add reusable Nix and QEMU infrastructure for running OpenShell tests in disposable Linux VMs. The harness provides pinned native-architecture cloud guests, composable runtime and security configurations, artifact installation, predictable cleanup, and retained diagnostics for failures.
This is the base infrastructure PR for the VM-backed release and E2E test integrations in the child PRs below.
Stack
This is the parent PR.
Related Issue
Changes
nix run .#test-vminterface with disposable QCOW2 overlays, cloud-init SSH bootstrap, hardware acceleration where available, cleanup, and retained debug statedpkgto the Nix development shell and keep Debian package creation artifact-onlyTesting
bash -n nix/vm/run.sh tasks/scripts/package-deb.shshellcheck nix/vm/run.sh tasks/scripts/package-deb.shnix fmtreports no changesaarch64-darwin,aarch64-linux, andx86_64-linuxmise run pre-commitpassesChecklist