From ac473dda9b72c2106304bf92018a2ee4549845d4 Mon Sep 17 00:00:00 2001 From: Anthony Byrne Date: Mon, 29 Jun 2026 10:32:29 -0400 Subject: [PATCH] Fix DRA nodeSelector for in-tree driver mode When spec.moduleLoader is nil (in-tree mode), the DRA reconciler's nodeSelector requires the KMM ready label, which is never set because no module loading occurs. Fall back to spec.selector instead, matching the existing behavior in the device plugin reconciler. Signed-off-by: Anthony Byrne --- internal/controllers/dra_reconciler.go | 12 ++++++++---- internal/controllers/dra_reconciler_test.go | 6 ++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/internal/controllers/dra_reconciler.go b/internal/controllers/dra_reconciler.go index c197ac3ca..59c1e6645 100644 --- a/internal/controllers/dra_reconciler.go +++ b/internal/controllers/dra_reconciler.go @@ -543,10 +543,14 @@ func (dsci *draDaemonSetCreatorImpl) setDRAAsDesired( utils.GetKernelModuleReadyNodeLabel(mod.Namespace, mod.Name): "", } - if mod.Spec.ModuleLoader != nil && mod.Spec.ModuleLoader.Container.Version != "" { - versionLabel := utils.GetSchedulePodVersionLabelName(mod.Namespace, mod.Name) - standardLabels[versionLabel] = mod.Spec.ModuleLoader.Container.Version - nodeSelector[versionLabel] = mod.Spec.ModuleLoader.Container.Version + if mod.Spec.ModuleLoader != nil { + if mod.Spec.ModuleLoader.Container.Version != "" { + versionLabel := utils.GetSchedulePodVersionLabelName(mod.Namespace, mod.Name) + standardLabels[versionLabel] = mod.Spec.ModuleLoader.Container.Version + nodeSelector[versionLabel] = mod.Spec.ModuleLoader.Container.Version + } + } else { + nodeSelector = mod.Spec.Selector } ds.SetLabels( diff --git a/internal/controllers/dra_reconciler_test.go b/internal/controllers/dra_reconciler_test.go index 34d53b000..ed6cd9c46 100644 --- a/internal/controllers/dra_reconciler_test.go +++ b/internal/controllers/dra_reconciler_test.go @@ -750,10 +750,8 @@ var _ = Describe("DRAReconciler_setDRAAsDesired", func() { }, }, }, - ImagePullSecrets: []v1.LocalObjectReference{repoSecret}, - NodeSelector: map[string]string{ - utils.GetKernelModuleReadyNodeLabel(namespace, draModuleName): "", - }, + ImagePullSecrets: []v1.LocalObjectReference{repoSecret}, + NodeSelector: map[string]string{"has-feature-x": "true"}, PriorityClassName: "system-node-critical", HostNetwork: true, ServiceAccountName: serviceAccountName,