From 4e8c8ffacdd47de2bf5d1773b19dc4cee1b510f5 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Thu, 5 Mar 2026 10:55:25 +0200 Subject: [PATCH 1/2] e2e_dra: fix ImplicitExtendedResource upgrade/downgrade Don't create default DeviceClass as it's already created. This should fix this test failure: create *v1.DeviceClass: deviceclasses.resource.k8s.io "default-class" already exists --- test/e2e_dra/extendedresources_test.go | 41 +++++++++++--------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/test/e2e_dra/extendedresources_test.go b/test/e2e_dra/extendedresources_test.go index fb86f4fd303..0bbdd6e1c27 100644 --- a/test/e2e_dra/extendedresources_test.go +++ b/test/e2e_dra/extendedresources_test.go @@ -119,33 +119,28 @@ func testExtendedResource(tCtx ktesting.TContext, b *drautils.Builder, resourceT } } -// createDeviceClassForExtendedResource creates a DeviceClass for testing extended resources. -// It creates the DeviceClass with a unique name, and returns its corresponding resource name. +// createDeviceClassForExtendedResource gets or creates a DeviceClass for testing extended resources. +// For explicit resource type, it creates a DeviceClass with a unique extendedResourceName and returns that name. +// For implicit resource type, it returns the resource name derived from the existing DeviceClass created by the builder. func createDeviceClassForExtendedResource(tCtx ktesting.TContext, b *drautils.Builder, resourceType string) v1.ResourceName { - var deviceClass *resourceapi.DeviceClass - var resourceName v1.ResourceName - - if resourceType == resourceTypeExplicit { - // Framework automatically names it: b.ClassName() + "-explicit" - resourceName = v1.ResourceName(b.ExtendedResourceName(resourceTypeExplicit)) - deviceClass = b.ClassWithExtendedResource(string(resourceName)) - } else { - // Framework automatically names it - deviceClass = b.Class().DeviceClass - resourceName = v1.ResourceName(fmt.Sprintf("%s%s", resourceapi.ResourceDeviceClassPrefix, deviceClass.Name)) - } - - createdObjs := b.Create(tCtx, deviceClass) - - // Verify ExtendedResourceName is present in the spec when using explicit resource name - if resourceType == resourceTypeExplicit { + switch resourceType { + case resourceTypeExplicit: + resourceName := v1.ResourceName(b.ExtendedResourceName(resourceTypeExplicit)) + deviceClass := b.ClassWithExtendedResource(string(resourceName)) + // Create the DeviceClass + createdObjs := b.Create(tCtx, deviceClass) + // Verify ExtendedResourceName is present in the spec deviceClass = createdObjs[0].(*resourceapi.DeviceClass) tCtx.Expect(deviceClass.Spec.ExtendedResourceName).ToNot(gomega.BeNil(), "DeviceClass.Spec.ExtendedResourceName should be set for explicit resource name") + tCtx.Logf("Created DeviceClass %q with extendedResourceName: %s", deviceClass.Name, resourceName) + return resourceName + case resourceTypeImplicit: + // The device class was already created by the builder, we only need the name. + return v1.ResourceName(fmt.Sprintf("%s%s", resourceapi.ResourceDeviceClassPrefix, b.ClassName())) + default: + tCtx.Fatalf("invalid resource type %q", resourceType) + return "" } - - tCtx.Logf("Created DeviceClass %q with extendedResourceName: %s", deviceClass.Name, resourceName) - - return resourceName } // createPodWithExtendedResource creates a pod with the given name requesting an extended resource. From ab732b2d6d1f67f0e5d64712260be13629407753 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Thu, 5 Mar 2026 11:15:46 +0200 Subject: [PATCH 2/2] e2e_dra: fix ExtendedResource upgrade/downgrade tests Passed correct expected environment variables to the b.TestPod to fix this test failure: extendedresources_test.go:164: FATAL ERROR: I0305 10:51:12.998519] container write-pod env variables Expected HOSTNAME=explicit-before-upgrade ... claim_explicit_before_upgrade_extended_resources_l4fhq_container_0_request_0=true HOME=/ to contain substring : user_a=b --- test/e2e_dra/extendedresources_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e_dra/extendedresources_test.go b/test/e2e_dra/extendedresources_test.go index 0bbdd6e1c27..3d52f4ead9e 100644 --- a/test/e2e_dra/extendedresources_test.go +++ b/test/e2e_dra/extendedresources_test.go @@ -158,7 +158,7 @@ func createPodWithExtendedResource(tCtx ktesting.TContext, b *drautils.Builder, // verifyPodRunningWithClaim verifies a pod is running and has a valid ResourceClaim. func verifyPodRunningWithClaim(tCtx ktesting.TContext, b *drautils.Builder, pod *v1.Pod, resourceName v1.ResourceName) { namespace := tCtx.Namespace() - b.TestPod(tCtx, pod) + b.TestPod(tCtx, pod, "container_0_request_0", "true") tCtx.Logf("Pod %q is running", pod.Name) // Get updated pod to check status