From 2dadc5c7bdf353f9ee74287d164fe45d6f4e08a3 Mon Sep 17 00:00:00 2001 From: Troy Chiu Date: Tue, 10 Feb 2026 22:04:59 +0000 Subject: [PATCH 1/5] promote DRAPrioritizedList to GA --- pkg/features/kube_features.go | 1 + .../reference/versioned_feature_list.yaml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 6d5b528bc44..302070f22f6 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -1223,6 +1223,7 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate DRAPrioritizedList: { {Version: version.MustParse("1.33"), Default: false, PreRelease: featuregate.Alpha}, {Version: version.MustParse("1.34"), Default: true, PreRelease: featuregate.Beta}, + {Version: version.MustParse("1.36"), Default: true, PreRelease: featuregate.GA}, }, DRAResourceClaimDeviceStatus: { diff --git a/test/compatibility_lifecycle/reference/versioned_feature_list.yaml b/test/compatibility_lifecycle/reference/versioned_feature_list.yaml index ae1e1bfbf2e..a052510daea 100644 --- a/test/compatibility_lifecycle/reference/versioned_feature_list.yaml +++ b/test/compatibility_lifecycle/reference/versioned_feature_list.yaml @@ -551,6 +551,10 @@ lockToDefault: false preRelease: Beta version: "1.34" + - default: true + lockToDefault: false + preRelease: GA + version: "1.36" - name: DRAResourceClaimDeviceStatus versionedSpecs: - default: false From a21e27f2fb69ded1130fe49afb3d8c510880b3e0 Mon Sep 17 00:00:00 2001 From: Troy Chiu Date: Wed, 11 Feb 2026 00:23:44 +0000 Subject: [PATCH 2/5] enable prioritized list test for GA --- test/integration/dra/dra_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/dra/dra_test.go b/test/integration/dra/dra_test.go index e8ed25f1687..7c44bf5f7cf 100644 --- a/test/integration/dra/dra_test.go +++ b/test/integration/dra/dra_test.go @@ -159,7 +159,7 @@ func TestDRA(t *testing.T) { f: func(tCtx ktesting.TContext) { tCtx.Run("AdminAccess", func(tCtx ktesting.TContext) { testAdminAccess(tCtx, false) }) tCtx.Run("PartitionableDevices", func(tCtx ktesting.TContext) { testPartitionableDevices(tCtx, false) }) - tCtx.Run("PrioritizedList", func(tCtx ktesting.TContext) { testPrioritizedList(tCtx, false) }) + tCtx.Run("PrioritizedList", func(tCtx ktesting.TContext) { testPrioritizedList(tCtx, true) }) tCtx.Run("Pod", func(tCtx ktesting.TContext) { testPod(tCtx, true) }) tCtx.Run("PublishResourceSlices", func(tCtx ktesting.TContext) { testPublishResourceSlices(tCtx, true, features.DRADeviceTaints, features.DRAPartitionableDevices, features.DRADeviceBindingConditions) From 96855919235c643aaf3b7caa6ce6f1451e40e6a6 Mon Sep 17 00:00:00 2001 From: Troy Chiu Date: Wed, 11 Feb 2026 20:05:28 +0000 Subject: [PATCH 3/5] update feature list with hack/update-featuregates.sh --- test/compatibility_lifecycle/reference/feature_list.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/compatibility_lifecycle/reference/feature_list.md b/test/compatibility_lifecycle/reference/feature_list.md index 3dd473278d8..92da6548e9d 100644 --- a/test/compatibility_lifecycle/reference/feature_list.md +++ b/test/compatibility_lifecycle/reference/feature_list.md @@ -57,7 +57,7 @@ | DRADeviceTaints | | | 1.33– | | | | DynamicResourceAllocation | [code](https://cs.k8s.io/?q=%5CbDRADeviceTaints%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbDRADeviceTaints%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | DRAExtendedResource | | | 1.34– | | | | DynamicResourceAllocation | [code](https://cs.k8s.io/?q=%5CbDRAExtendedResource%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbDRAExtendedResource%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | DRAPartitionableDevices | | | 1.33– | | | | DynamicResourceAllocation | [code](https://cs.k8s.io/?q=%5CbDRAPartitionableDevices%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbDRAPartitionableDevices%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | -| DRAPrioritizedList | :ballot_box_with_check: 1.34+ | | 1.33 | 1.34– | | | DynamicResourceAllocation | [code](https://cs.k8s.io/?q=%5CbDRAPrioritizedList%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbDRAPrioritizedList%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | +| DRAPrioritizedList | :ballot_box_with_check: 1.34+ | | 1.33 | 1.34–1.35 | 1.36– | | DynamicResourceAllocation | [code](https://cs.k8s.io/?q=%5CbDRAPrioritizedList%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbDRAPrioritizedList%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | DRAResourceClaimDeviceStatus | :ballot_box_with_check: 1.33+ | | 1.32 | 1.33– | | | | [code](https://cs.k8s.io/?q=%5CbDRAResourceClaimDeviceStatus%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbDRAResourceClaimDeviceStatus%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | DRASchedulerFilterTimeout | :ballot_box_with_check: 1.34+ | | | 1.34– | | | DynamicResourceAllocation | [code](https://cs.k8s.io/?q=%5CbDRASchedulerFilterTimeout%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbDRASchedulerFilterTimeout%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | DeclarativeValidation | :ballot_box_with_check: 1.33+ | :closed_lock_with_key: 1.36+ | | 1.33–1.35 | 1.36– | | | [code](https://cs.k8s.io/?q=%5CbDeclarativeValidation%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbDeclarativeValidation%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | From b74cd902a25de766da427c2f732198f618b643a0 Mon Sep 17 00:00:00 2001 From: Troy Chiu Date: Thu, 12 Feb 2026 18:49:38 +0000 Subject: [PATCH 4/5] add test GA-opt-out --- test/integration/dra/dra_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/integration/dra/dra_test.go b/test/integration/dra/dra_test.go index 7c44bf5f7cf..775bfb33645 100644 --- a/test/integration/dra/dra_test.go +++ b/test/integration/dra/dra_test.go @@ -177,6 +177,34 @@ func TestDRA(t *testing.T) { tCtx.Run("UsesAllResources", testUsesAllResources) }, }, + // This scenario verifies that features which have graduated to GA can + // still be explicitly disabled via feature gates. + "GA-opt-out": { + apis: map[schema.GroupVersion]bool{}, + features: map[featuregate.Feature]bool{ + featuregate.Feature("AllBeta"): false, + features.DRAPrioritizedList: false, + }, + f: func(tCtx ktesting.TContext) { + tCtx.Run("AdminAccess", func(tCtx ktesting.TContext) { testAdminAccess(tCtx, false) }) + tCtx.Run("PartitionableDevices", func(tCtx ktesting.TContext) { testPartitionableDevices(tCtx, false) }) + tCtx.Run("PrioritizedList", func(tCtx ktesting.TContext) { testPrioritizedList(tCtx, false) }) + tCtx.Run("Pod", func(tCtx ktesting.TContext) { testPod(tCtx, true) }) + tCtx.Run("PublishResourceSlices", func(tCtx ktesting.TContext) { + testPublishResourceSlices(tCtx, true, features.DRADeviceTaints, features.DRAPartitionableDevices, features.DRADeviceBindingConditions) + }) + tCtx.Run("ExplicitExtendedResource", func(tCtx ktesting.TContext) { testExtendedResource(tCtx, false, true) }) + tCtx.Run("ImplicitExtendedResource", func(tCtx ktesting.TContext) { testExtendedResource(tCtx, false, false) }) + tCtx.Run("ResourceClaimDeviceStatus", func(tCtx ktesting.TContext) { testResourceClaimDeviceStatus(tCtx, false) }) + tCtx.Run("DeviceBindingConditions", func(tCtx ktesting.TContext) { testDeviceBindingConditions(tCtx, false) }) + tCtx.Run("ResourceSliceController", func(tCtx ktesting.TContext) { + namespace := createTestNamespace(tCtx, nil) + tCtx = tCtx.WithNamespace(namespace) + TestCreateResourceSlices(tCtx, 100) + }) + tCtx.Run("UsesAllResources", testUsesAllResources) + }, + }, "v1beta1": { apis: map[schema.GroupVersion]bool{ resourceapi.SchemeGroupVersion: false, From 2c24530782f529b302b28e3f9953b4f7f524b7f9 Mon Sep 17 00:00:00 2001 From: Troy Chiu Date: Wed, 18 Feb 2026 00:07:14 +0000 Subject: [PATCH 5/5] remove redundant in test GA-opt-out --- test/integration/dra/dra_test.go | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/test/integration/dra/dra_test.go b/test/integration/dra/dra_test.go index 775bfb33645..f892f402ece 100644 --- a/test/integration/dra/dra_test.go +++ b/test/integration/dra/dra_test.go @@ -186,23 +186,7 @@ func TestDRA(t *testing.T) { features.DRAPrioritizedList: false, }, f: func(tCtx ktesting.TContext) { - tCtx.Run("AdminAccess", func(tCtx ktesting.TContext) { testAdminAccess(tCtx, false) }) - tCtx.Run("PartitionableDevices", func(tCtx ktesting.TContext) { testPartitionableDevices(tCtx, false) }) tCtx.Run("PrioritizedList", func(tCtx ktesting.TContext) { testPrioritizedList(tCtx, false) }) - tCtx.Run("Pod", func(tCtx ktesting.TContext) { testPod(tCtx, true) }) - tCtx.Run("PublishResourceSlices", func(tCtx ktesting.TContext) { - testPublishResourceSlices(tCtx, true, features.DRADeviceTaints, features.DRAPartitionableDevices, features.DRADeviceBindingConditions) - }) - tCtx.Run("ExplicitExtendedResource", func(tCtx ktesting.TContext) { testExtendedResource(tCtx, false, true) }) - tCtx.Run("ImplicitExtendedResource", func(tCtx ktesting.TContext) { testExtendedResource(tCtx, false, false) }) - tCtx.Run("ResourceClaimDeviceStatus", func(tCtx ktesting.TContext) { testResourceClaimDeviceStatus(tCtx, false) }) - tCtx.Run("DeviceBindingConditions", func(tCtx ktesting.TContext) { testDeviceBindingConditions(tCtx, false) }) - tCtx.Run("ResourceSliceController", func(tCtx ktesting.TContext) { - namespace := createTestNamespace(tCtx, nil) - tCtx = tCtx.WithNamespace(namespace) - TestCreateResourceSlices(tCtx, 100) - }) - tCtx.Run("UsesAllResources", testUsesAllResources) }, }, "v1beta1": {