Repository navigation
Conversation
|
Fri Oct 30 08:45:45 UTC 2026 Test Predictor AnalysisPreparing
Executing
Restoring
Skipped tests from snapd-testing-skipIf you wish to have any of the below tests run in your PR, in your PR description, add 'unskip:' followed by a copy-and-pasted list of the below tests you wish to run (unskip plus test list must be valid yaml)
|
8743800 to
1fb6ca8
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #17887 +/- ##
==========================================
- Coverage 82.32% 82.09% -0.24%
==========================================
Files 1418 1418
Lines 202384 202408 +24
Branches 2626 2626
==========================================
- Hits 166619 166171 -448
- Misses 33946 34014 +68
- Partials 1819 2223 +404
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
4236675 to
4317344
Compare
63b1ae1 to
512858f
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The unattended installation can stall because the ISO boot entry lacks the autoinstall kernel argument, and the encryption-status assertion incorrectly accepts inactive.
5 open issues
What changed in this PR
Adds a nested Ubuntu 26.04 daily desktop installation test to exercise TPM-backed disk encryption through Subiquity and verify the installed system over SSH.
Changes:
- Adds an
installerVM mode with ISO download, NoCloud seed generation, serial-log monitoring, and installed-disk boot. - Preserves firmware and TPM state between installation and the subsequent boot.
- Adds checks for encryption status, the FDE marker, and the LUKS volume.
| File | Description |
|---|---|
tests/nested/manual/desktop-autoinstall/task.yaml |
Defines the desktop installation test and encryption checks. |
tests/lib/tools/tests.nested |
Exposes the new installer VM mode. |
tests/lib/nested/qemu.sh |
Adds network, disk, and restart-policy overrides. |
tests/lib/nested/installer.sh |
Implements installer preparation, monitoring, and installed-system startup. |
tests/lib/nested/autoinstall-tpmfde.yaml |
Defines the hybrid TPM-encrypted storage layout. |
tests/lib/nested.sh |
Loads the installer helpers. |
Review effort: Balanced
512858f to
93b4c64
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The encryption check incorrectly accepts “inactive” as “active”, while log matching can trigger false failures and shadowed resource settings leave the VM underprovisioned.
5 open issues
1 resolved since last review
Review effort: Balanced
93b4c64 to
8295d57
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The installer can falsely abort successful installations by matching failure markers inside forwarded configuration, and the documented desktop image/source overrides are not passed into Spread workers.
4 open issues
3 resolved since last review
Review effort: Balanced
8295d57 to
a9f6b9e
Compare
There was a problem hiding this comment.
🟡 Changes recommended
Failures from truncate and cloud-localds are masked by subsequent successful printf calls inside command substitutions, allowing QEMU to start with invalid disk or seed files instead of stopping at the creation error.
2 open issues
7 resolved since last review
Match installer failure markers as complete lines Forward documented image override variables to Spread workers Match standalone failure sentinels in installer logs Match the complete active status response Pass configured memory and CPU values to create_vm Forward ISO and source overrides to Spread workers Enforce inactivity timeout from VM startup
Review effort: Balanced
a9f6b9e to
5905e25
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
The Subiquity flow still needs end-to-end validation of installation completion and encrypted reboot with preserved TPM/OVMF state, since supplied runtime evidence only confirms installation started.
No open issues 🎉
2 resolved since last review
Review effort: Balanced
The test does check installation completion and encryption. Success is the installer powering off, then a second boot of the same disk with the OVMF variables and TPM state kept. After SSH comes up, the task requires storage-encrypted status "active", the FDE marker, and ubuntu-data-enc as LUKS. A full run has not reached those checks yet: the local boot was stopped once curtin started extracting, and earlier CI runs stopped before power-off. |
There was a problem hiding this comment.
🔵 Needs a closer look
End-to-end Spread validation is still needed to confirm encryption checks and TPM unsealing after a firmware-preserving reboot, since local validation only established curtin startup and the 8-GiB guest exceeds the configured workers’ memory.
No open issues 🎉
Review effort: Balanced
5905e25 to
ae9aed9
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
Static review cannot establish the two-phase flow’s compatibility without an end-to-end Ubuntu 26.04 run validating Subiquity installation, Secure Boot/TPM state preservation, and encrypted reboot across both QEMU launches.
No open issues 🎉
Review effort: Balanced
ae9aed9 to
cb14e41
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
The live-snapd re-exec and two-phase Secure Boot/TPM flow require isolated end-to-end validation of both ISO and branch variants, since Subiquity runtime behavior and state across QEMU launches cannot be verified from this source snapshot.
No open issues 🎉
Review effort: Balanced
cb14e41 to
ef7a6b9
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
Both ISO and branch variants require end-to-end nested-VM validation because the two-phase installer flow depends on live Subiquity behavior and retained TPM/UEFI state that this review environment cannot verify.
No open issues 🎉
Review effort: Balanced
ef7a6b9 to
a9af2a0
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
The local result confirms only installer startup, leaving end-to-end validation of both ISO and branch variants—including TPM unsealing after the firmware-state-preserving reboot—unresolved.
No open issues 🎉
Review effort: Balanced
Boot the Ubuntu 26.04 desktop daily ISO in a nested QEMU guest so a hybrid TPM-backed install can be reached over SSH. Reuse the existing VM service so classic and core startup keep their command line. Copy the installer log to the serial console and fail the wait when that log reports an installer error, instead of waiting for a power-off that never comes. Restart the live snapd with SNAPPY_TESTING=1 so the secboot preinstall check permits a virtual machine, and confirm the desktop prompt that firmware boot cannot skip. Return a failure from disk, password, storage, and seed setup instead of continuing after a command substitution hides it. The helper owns the autoinstall user-data template and fills it. The test supplies the storage snippet, which the helper inserts unchanged. The iso variant uses the image snapd. The branch variant installs the snapd snap from this tree on the live system and continues only after snapd re-execs. Give the guest 4096 MB so the nested worker can allocate it.
a9af2a0 to
2d36af3
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
Both ISO and branch variants need isolated end-to-end validation across installation and reboot because static review cannot verify live snapd coordination, TPM/OVMF state preservation, and automatic disk unlock.
No open issues 🎉
Review effort: Balanced


Summary
Install the 26.04 daily desktop image with Subiquity in a nested QEMU guest, then boot the installed system over SSH. The outer sequence matches the muinstaller hybrid tests: a blank disk on the spread worker, enrolled OVMF variables, a virtual TPM, install, power off, then boot that disk again with the firmware and TPM state kept. Where those tests run the muinstaller snap over SSH,
tests.nested create-vm installerboots the desktop ISO. Classic and core VM startup are unchanged.The ISO is the installer CD. A second SCSI CD is the autoinstall seed, a small NoCloud image labeled
cidata. It holds the answers: user, SSH, power-off, and the hybrid TPM storage layout fromtests/lib/nested/autoinstall-tpmfde.yaml, including therunning-in-vmexception. Subiquity writes the installed system intoubuntu-desktop-installed.imgon the worker. After power-off, that same file is the boot disk and both CDs are gone.The seed copies the installer log to the guest serial console while the installer runs. A clean power-off is still success. The test fails as soon as that log reports an installer error, and if the log stops moving for 20 minutes.
Guest checks match the encrypted muinstaller case: storage-encrypted status
active, the FDE marker, andubuntu-data-encas LUKS. The task runs only onubuntu-26.04-64.NESTED_UBUNTU_DESKTOP_ISO_URLreplaces the daily image URL.NESTED_DESKTOP_SOURCE_IDreplaces the autoinstall source id.