refactor(e2e): centralize kubevirt version from go.mod

Derive KUBEVIRT_VERSION in run-e2e-tests.sh from go.mod and pass it to
e2e tests via --kubevirt-version-tag so container disk images stay in sync.
This commit is contained in:
Amir Alavi
2026-08-10 10:13:12 -04:00
parent 82b96a392e
commit 73bcc99a5e
3 changed files with 15 additions and 6 deletions
+5 -1
View File
@@ -77,7 +77,7 @@ func virtualMachineInstance(idx int, namespace string) *kvcorev1.VirtualMachineI
Name: "containerdisk",
VolumeSource: kvcorev1.VolumeSource{
ContainerDisk: &kvcorev1.ContainerDiskSource{
Image: "quay.io/kubevirt/cirros-container-disk-demo:v1.9.0",
Image: kubevirtCirrosContainerDiskImage(),
},
},
},
@@ -484,6 +484,10 @@ func waitForVMIEvictionsWithNoLimits(t *testing.T, ctx context.Context, kubeClie
}
func TestLiveMigrationInBackground(t *testing.T) {
if *kubevirtVersionTag == "" {
t.Fatal("--kubevirt-version-tag must be set for KubeVirt e2e tests")
}
initPluginRegistry()
ctx := context.Background()
+8 -3
View File
@@ -68,11 +68,16 @@ import (
)
var (
deschedulerImage = flag.String("descheduler-image", "", "descheduler image to set in the pod spec")
podRunAsUserId = flag.Int64("pod-run-as-user-id", 0, ".spec.securityContext.runAsUser setting, not set if 0")
podRunAsGroupId = flag.Int64("pod-run-as-group-id", 0, ".spec.securityContext.runAsGroup setting, not set if 0")
deschedulerImage = flag.String("descheduler-image", "", "descheduler image to set in the pod spec")
kubevirtVersionTag = flag.String("kubevirt-version-tag", "", "KubeVirt release tag for container disk images in KubeVirt e2e tests (e.g. v1.9.0)")
podRunAsUserId = flag.Int64("pod-run-as-user-id", 0, ".spec.securityContext.runAsUser setting, not set if 0")
podRunAsGroupId = flag.Int64("pod-run-as-group-id", 0, ".spec.securityContext.runAsGroup setting, not set if 0")
)
func kubevirtCirrosContainerDiskImage() string {
return fmt.Sprintf("quay.io/kubevirt/cirros-container-disk-demo:%s", *kubevirtVersionTag)
}
func TestMain(m *testing.M) {
flag.Parse()
+2 -2
View File
@@ -27,12 +27,12 @@ KIND_VERSION=${KIND_VERSION:-v0.31.0}
SKIP_KUBECTL_INSTALL=${SKIP_KUBECTL_INSTALL:-}
SKIP_KIND_INSTALL=${SKIP_KIND_INSTALL:-}
SKIP_KUBEVIRT_INSTALL=${SKIP_KUBEVIRT_INSTALL:-}
KUBEVIRT_VERSION=${KUBEVIRT_VERSION:-v1.9.0}
K8S_VERSION=${KUBERNETES_VERSION:-}
# Build a descheduler image
IMAGE_TAG=v$(date +%Y%m%d)-$(git describe --tags)
BASEDIR=$(dirname "$0")
KUBEVIRT_VERSION=${KUBEVIRT_VERSION:-$(grep 'kubevirt.io/api ' "${BASEDIR}/../go.mod" | awk '{print $2}')}
VERSION="${IMAGE_TAG}" make -C ${BASEDIR}/.. image
export DESCHEDULER_IMAGE="docker.io/library/descheduler:${IMAGE_TAG}"
@@ -115,4 +115,4 @@ kubectl patch -n kube-system deployment metrics-server --type=json \
kubectl wait --timeout=180s --for=condition=Available -n kube-system deployment/metrics-server
PRJ_PREFIX="sigs.k8s.io/descheduler"
go test ${PRJ_PREFIX}/test/e2e/ -v -timeout 0 --args --descheduler-image ${DESCHEDULER_IMAGE} --pod-run-as-user-id 1000 --pod-run-as-group-id 1000
go test ${PRJ_PREFIX}/test/e2e/ -v -timeout 0 --args --descheduler-image ${DESCHEDULER_IMAGE} --kubevirt-version-tag ${KUBEVIRT_VERSION} --pod-run-as-user-id 1000 --pod-run-as-group-id 1000