From 3a0bf1bf3b6f2a0511233acfdc6da3be18e05cf3 Mon Sep 17 00:00:00 2001 From: Jack Francis Date: Tue, 30 Sep 2025 14:07:34 -0700 Subject: [PATCH] CAS: move DRA consts go into core --- .../cloudprovider/gce/dynamicresources.go | 12 ++++-------- .../cloudprovider/gce/gce_cloud_provider.go | 2 +- .../processors/customresources/gpu_processor_test.go | 3 +-- cluster-autoscaler/utils/gpu/gpu.go | 7 +++++++ 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/cluster-autoscaler/cloudprovider/gce/dynamicresources.go b/cluster-autoscaler/cloudprovider/gce/dynamicresources.go index 7a58a816831b..4d4efc2dc22c 100644 --- a/cluster-autoscaler/cloudprovider/gce/dynamicresources.go +++ b/cluster-autoscaler/cloudprovider/gce/dynamicresources.go @@ -16,16 +16,12 @@ limitations under the License. package gce -import apiv1 "k8s.io/api/core/v1" - -const ( - // DraGPUDriver name of the driver used to expose NVIDIA GPU resources - DraGPUDriver = "gpu.nvidia.com" - // DraGPULabel is the label added to nodes with GPU resource exposed via DRA. - DraGPULabel = "cloud.google.com/gke-gpu-dra-driver" +import ( + apiv1 "k8s.io/api/core/v1" + "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" ) // GpuDraDriverEnabled checks whether GPU driver is enabled on the node func GpuDraDriverEnabled(node *apiv1.Node) bool { - return node.Labels[DraGPULabel] == "true" + return node.Labels[gpu.DraGPULabelGKE] == "true" } diff --git a/cluster-autoscaler/cloudprovider/gce/gce_cloud_provider.go b/cluster-autoscaler/cloudprovider/gce/gce_cloud_provider.go index 8a8632ad0bb7..23548f8621a2 100644 --- a/cluster-autoscaler/cloudprovider/gce/gce_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/gce/gce_cloud_provider.go @@ -91,7 +91,7 @@ func (gce *GceCloudProvider) GetNodeGpuConfig(node *apiv1.Node) *cloudprovider.G // so we overwrite extended resource name as it won't ever // be there if GpuDraDriverEnabled(node) { - gpuConfig.DraDriverName = DraGPUDriver + gpuConfig.DraDriverName = gpu.DraGPUDriver gpuConfig.ExtendedResourceName = "" } diff --git a/cluster-autoscaler/processors/customresources/gpu_processor_test.go b/cluster-autoscaler/processors/customresources/gpu_processor_test.go index fb96e4d430c7..8dbe5d72f89e 100644 --- a/cluster-autoscaler/processors/customresources/gpu_processor_test.go +++ b/cluster-autoscaler/processors/customresources/gpu_processor_test.go @@ -25,7 +25,6 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/gce" testprovider "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/test" "k8s.io/autoscaler/cluster-autoscaler/context" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" @@ -157,7 +156,7 @@ func TestFilterOutNodesWithUnreadyResources(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "nodeGPUViaDra", Labels: map[string]string{ - gce.DraGPULabel: "true", + gpu.DraGPULabelGKE: "true", }, CreationTimestamp: metav1.NewTime(start), }, diff --git a/cluster-autoscaler/utils/gpu/gpu.go b/cluster-autoscaler/utils/gpu/gpu.go index a19efca46767..5d6c0feab3d0 100644 --- a/cluster-autoscaler/utils/gpu/gpu.go +++ b/cluster-autoscaler/utils/gpu/gpu.go @@ -50,6 +50,13 @@ const ( MetricsNoGPU = "" ) +const ( + // DraGPUDriver name of the driver used to expose NVIDIA GPU resources + DraGPUDriver = "gpu.nvidia.com" + // DraGPULabelGKE is the label added to nodes with GPU resource exposed via DRA. + DraGPULabelGKE = "cloud.google.com/gke-gpu-dra-driver" +) + // GetGpuInfoForMetrics returns the name of the custom resource and the GPU used on the node or empty string if there's no GPU // if the GPU type is unknown, "generic" is returned // NOTE: current implementation is GKE/GCE-specific