Skip to content

test(e2e): source VirtualDiskCreation from the custom e2e-br image#2633

Open
Isteb4k wants to merge 2 commits into
mainfrom
e2e/virtual-disk-creation-custom-image
Open

test(e2e): source VirtualDiskCreation from the custom e2e-br image#2633
Isteb4k wants to merge 2 commits into
mainfrom
e2e/virtual-disk-creation-custom-image

Conversation

@Isteb4k

@Isteb4k Isteb4k commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Description

VirtualDiskCreation now sources every data-source variant from the minimal
custom e2e-br image instead of the stock Alpine image:

  • HTTP and Upload → the custom qcow2 on Selectel (/e2e/custom.qcow2);
  • ContainerImage (registry) → a container-disk on ttl.sh;
  • VirtualImage / ClusterVirtualImage ObjectRef → a dedicated precreated CVI
    v12n-e2e-custom-bios built from the same qcow2.

The test's VM provisioning is turned off via vmbuilder.WithProvisioning(nil),
overriding NewMinimalVM's default AlpineCloudInit: the scenario only needs
the VM as a disk consumer with a live guest agent and never logs in over SSH,
so no cloud user has to be created (the custom image ships no cloud-init).

New symbols in internal/object (ImageURLCustomBIOS, ImageURLCustomContainer,
PrecreatedCVICustomBIOS) are additive; existing image constants and CVIs are
left untouched, so all other e2e tests keep their current behavior.

Note: the ttl.sh container-disk is ephemeral (24h TTL) — this branch is for
validating the custom image, not a long-lived source.

Why do we need it, and what problem does it solve?

e2e-br is a ~35 MiB from-scratch Buildroot image intended to replace the
~350 MiB Alpine image used by the e2e suite. Before any wider rollout we want to
exercise it end-to-end through VirtualDiskCreation — which covers all the
data-source kinds (HTTP, Upload, registry, VI, CVI) — while leaving every other
test on the current Alpine image, so the new image can be validated in isolation.

What is the expected result?

VirtualDiskCreation provisions VirtualDisks from the HTTP, Upload, registry,
VirtualImage and ClusterVirtualImage sources backed by the custom image, and the
consumer VM reaches Running + AgentReady (no SSH login / user required).
Other e2e tests are unaffected.

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Changelog entries

section: test
type: chore
summary: Run e2e VirtualDiskCreation against the custom minimal e2e-br image.
impact_level: low

Point every VirtualDiskCreation data source (HTTP, Upload, registry,
VirtualImage, ClusterVirtualImage) at the minimal custom e2e-br image:
a Selectel qcow2 for HTTP/Upload and a ttl.sh container-disk for the
registry source. Drop the cloud-init provisioning for the test's VM —
it only needs the VM as a disk consumer with a live guest agent and
never logs in, so no user has to be created.

New object symbols (ImageURLCustomBIOS, ImageURLCustomContainer,
PrecreatedCVICustomBIOS) are additive; existing constants are left
untouched, so other e2e tests keep their behavior.

Signed-off-by: Dmitry Rakitin <dmitry.rakitin@flant.com>
@Isteb4k Isteb4k added this to the v1.10.0 milestone Jul 10, 2026
The custom e2e-br image is ~35 MiB and grows its root filesystem to the
disk on first boot, so the 400Mi disks are oversized. Use a 50Mi
vdCreationImageSize for the image-backed VirtualDisks instead.

Signed-off-by: Dmitry Rakitin <dmitry.rakitin@flant.com>
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