Skip to content

[WIP] tests/update_eve_image: cross-HV (kvm↔k) BaseOs upgrade test suite - #1196

Closed
eriknordmark wants to merge 5 commits into
lf-edge:masterfrom
eriknordmark:add-cross-hv-eve-tests
Closed

[WIP] tests/update_eve_image: cross-HV (kvm↔k) BaseOs upgrade test suite#1196
eriknordmark wants to merge 5 commits into
lf-edge:masterfrom
eriknordmark:add-cross-hv-eve-tests

Conversation

@eriknordmark

@eriknordmark eriknordmark commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Description

End-to-end eden tests for the EVE-kvm ↔ EVE-k cross-flavor BaseOs
upgrade, including the in-field boot-disk repartition (small → large
GPT geometry). They verify that OCI blobs are reused across the flavor
switch (no re-download), that a deployed app and its volume survive the
conversion and a controller-initiated reboot, and — for the resize
variants — that the partitions actually grow and the TPM-sealed vault
stays locally unlocked across the geometry change.

All scenarios live under tests/update_eve_image/testdata/, each a
self-contained escript (plus helper scripts and READMEs):

  • update_eve_image_cross_hv.txt — base cross-HV upgrade; IMGB reaches
    active on the alternate flavor.
  • update_eve_image_cross_hv_with_contenttree.txt — pre-stages a
    ContentTree, asserts zero bytes re-downloaded after the switch.
  • update_eve_image_cross_hv_with_app_recreate.txt — app + volume
    survive the switch and a reboot with no re-download.
  • update_eve_image_kvm_to_k{,_grow,_resize,_refused,_volmig}.txt
    repartition variants asserting SMALL→LARGE partition growth,
    BaseOsStatus.Converting device state, blob reuse, local vault unlock
    (VaultStatus.UnlockMethod), and (volmig) live app-volume migration
    to a Longhorn PVC.
  • update_eve_image_kvm_to_k_geom.txt — a geometry-only matrix,
    parameterized by the starting release, asserting the boot disk ends
    at the full EVE-k target 2+2+10+10 (ESP-A 2G, the reserved ESP-B 2G
    at GPT Make it possible to use pre-built EVE artifacts (instead of building local ones) #7, IMGA/IMGB 10G) — including creating the reserved ESP-B
    when the start image lacks it. One escript covers the range of
    boot-disk geometries a fielded device may carry (10.1.0 at 36M/300M,
    12.1.0 at 36M/512M, 16.13.0 at 2G/4G, 17.0.0-rc1 at 2G/10G). It checks
    geometry only (no app/content-tree/vault-seal), so it needs no TPM or
    /config settle; the two ESPs share the EFI System label and are
    told apart by PARTUUID. All four starts validated GREEN (see
    README_kvm_to_k_geom.md).

Dependency

These exercise EVE-side behavior that is not yet in eden's CI EVE image.
Do not enable in CI/CD until lf-edge/eve#6036 (kvm↔k BaseOs upgrade
with blob reuse) merges
; the resize/volmig variants additionally need
an EVE build carrying the boot-disk repartition work, and the geom
variant needs a build whose storage-resizer creates the reserved
ESP-B (the ESP-B retrofit). Kept as a draft until then.

@eriknordmark
eriknordmark force-pushed the add-cross-hv-eve-tests branch 5 times, most recently from 9398f55 to c5b9a71 Compare June 18, 2026 09:26
@eriknordmark
eriknordmark force-pushed the add-cross-hv-eve-tests branch 3 times, most recently from 3b3e2ff to dc7c26d Compare July 1, 2026 22:57
eriknordmark and others added 4 commits July 2, 2026 14:52
Three eden escripts for the EVE-kvm to EVE-k cross-flavor BaseOs
upgrade, registered in the suite: a base upgrade check, a ContentTree
blob-reuse check (zero bytes re-downloaded after the switch), and an
app+volume recreate check that also survives a controller reboot. The
app is deployed as soon as the new-flavor rootfs is running, before the
cluster is fully up, so the run exercises the device-side volumemgr
park-and-retry instead of masking the longhorn/CDI readiness race.

Signed-off-by: eriknordmark <erik@zededa.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Escripts driving the EVE-kvm to EVE-k boot-disk conversion without a
geometry change: the base conversion round-trip and a conversion-refused
negative case, plus prep-kvm-to-k-topology.sh, which builds the
single-disk ZFS-on-boot persist pool the installer would. Run manually
(not registered in CI) since they need purpose-built EVE images.

Signed-off-by: eriknordmark <erik@zededa.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The resize (shrink+grow) and grow-only escripts that drive the actual
small->large GPT repartition. They assert the partitions grew, the
device passed through the converting state, blobs were reused across the
conversion, and the TPM-sealed vault stayed locally unlocked across the
geometry change. Includes the two READMEs describing the multi-image
bringup. Run manually with a TPM-enabled bringup.

Signed-off-by: eriknordmark <erik@zededa.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Escript that migrates a deployed app's qcow2 volume to a Longhorn PVC
across the kvm->k conversion (ext4), asserting the app and its written
data marker survive the conversion with no image re-download. Run
manually.

Signed-off-by: eriknordmark <erik@zededa.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@eriknordmark
eriknordmark force-pushed the add-cross-hv-eve-tests branch from b3137b4 to abe59c5 Compare July 2, 2026 21:59
@eriknordmark eriknordmark changed the title tests/update_eve_image: cross-HV (kvm↔k) BaseOs upgrade test suite [WIP] tests/update_eve_image: cross-HV (kvm↔k) BaseOs upgrade test suite Jul 6, 2026
Add update_eve_image_kvm_to_k_geom, a partitions-only end-to-end test that
drives an EVE-kvm -> EVE-k base-OS upgrade and asserts the boot disk ends at the
full EVE-k target geometry of 2+2+10+10 GiB (ESP-A 2G, the reserved ESP-B 2G,
and IMGA/IMGB 10G each), including creating the reserved ESP-B when the starting
image lacks it. It is parameterized by the starting release and its expected
partition sizes, so one escript covers the range of boot-disk geometries a
fielded device may carry (e.g. 10.1.0 at 36M/300M, 12.1.0 at 36M/512M, 16.13.0
at 2G/4G, 17.0.0-rc1 at 2G/10G). The two ESPs share the "EFI System" GPT label
and are distinguished by PARTUUID.

Unlike the _resize/_volmig escripts this checks geometry only -- no app,
content-tree, or vault-seal assertions -- so it runs without a TPM or a /config
settle. README_kvm_to_k_geom.md documents the release matrix and how to run it.

Signed-off-by: eriknordmark <erik@zededa.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@eriknordmark

Copy link
Copy Markdown
Contributor Author

Superseded by #1209, which folds this branch's tests into a single branch (kvm-to-k-eden-tests) rebased onto current master.

@eriknordmark
eriknordmark deleted the add-cross-hv-eve-tests branch July 10, 2026 03:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant