From a366e629ce9ff45f444b35605a7645c1bb99da43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Wr=C3=B3blewski?= Date: Mon, 15 Sep 2025 15:31:11 +0000 Subject: [PATCH] Fix unit-tests --- .../brightbox/brightbox_node_group_test.go | 2 +- .../clusterapi/clusterapi_nodegroup_test.go | 4 +- .../clusterapi_unstructured_test.go | 10 ++-- .../rancher/rancher_nodegroup_test.go | 12 ++-- .../core/static_autoscaler_dra_test.go | 31 +++++----- .../predicate_snapshot_dra_benchmark_test.go | 23 ++++---- .../predicate/predicate_snapshot_test.go | 38 +++++++------ .../provider/provider_test.go | 16 ++++-- .../snapshot/snapshot_slice_lister_test.go | 15 +++-- .../snapshot/snapshot_test.go | 29 ++++++---- .../dynamicresources/utils/sanitize_test.go | 20 ++++--- .../utils/utilization_test.go | 2 +- .../simulator/framework/infos_test.go | 56 ++++++++++--------- .../simulator/node_info_utils_test.go | 4 +- 14 files changed, 141 insertions(+), 121 deletions(-) diff --git a/cluster-autoscaler/cloudprovider/brightbox/brightbox_node_group_test.go b/cluster-autoscaler/cloudprovider/brightbox/brightbox_node_group_test.go index 7a4e33cd17..5cbf2fc4c5 100644 --- a/cluster-autoscaler/cloudprovider/brightbox/brightbox_node_group_test.go +++ b/cluster-autoscaler/cloudprovider/brightbox/brightbox_node_group_test.go @@ -316,7 +316,7 @@ func TestTemplateNodeInfo(t *testing.T) { Return(fakeServerTypezx45f(), nil) obj, err := makeFakeNodeGroup(t, testclient).TemplateNodeInfo() require.NoError(t, err) - assert.Equal(t, fakeResource(), obj.ToScheduler().Allocatable) + assert.Equal(t, fakeResource(), obj.ToScheduler().GetAllocatable()) } func TestNodeGroupErrors(t *testing.T) { diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup_test.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup_test.go index 2999f8d02d..c6d9a73342 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup_test.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup_test.go @@ -1648,8 +1648,8 @@ func TestNodeGroupTemplateNodeInfo(t *testing.T) { t.Errorf("Expected the number of DRA devices in ResourceSlice to have: %d, but got: %d", config.expectedResourceSlice.gpuCount, len(resourceslice.Spec.Devices)) } for _, device := range resourceslice.Spec.Devices { - if *device.Basic.Attributes["type"].StringValue != config.expectedResourceSlice.deviceType { - t.Errorf("Expected device type to have: %s, but got: %s", config.expectedResourceSlice.deviceType, *device.Basic.Attributes["type"].StringValue) + if *device.Attributes["type"].StringValue != config.expectedResourceSlice.deviceType { + t.Errorf("Expected device type to have: %s, but got: %s", config.expectedResourceSlice.deviceType, *device.Attributes["type"].StringValue) } } } diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_unstructured_test.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_unstructured_test.go index ade7c41cde..0365cc2e96 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_unstructured_test.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_unstructured_test.go @@ -336,18 +336,16 @@ func TestAnnotations(t *testing.T) { }, Spec: resourceapi.ResourceSliceSpec{ Driver: draDriver, - NodeName: testNodeName, + NodeName: &testNodeName, Pool: resourceapi.ResourcePool{ Name: testNodeName, }, Devices: []resourceapi.Device{ { Name: "gpu-0", - Basic: &resourceapi.BasicDevice{ - Attributes: map[resourceapi.QualifiedName]resourceapi.DeviceAttribute{ - "type": { - StringValue: ptr.To(GpuDeviceType), - }, + Attributes: map[resourceapi.QualifiedName]resourceapi.DeviceAttribute{ + "type": { + StringValue: ptr.To(GpuDeviceType), }, }, }, diff --git a/cluster-autoscaler/cloudprovider/rancher/rancher_nodegroup_test.go b/cluster-autoscaler/cloudprovider/rancher/rancher_nodegroup_test.go index 84bce15368..5f8c1b2231 100644 --- a/cluster-autoscaler/cloudprovider/rancher/rancher_nodegroup_test.go +++ b/cluster-autoscaler/cloudprovider/rancher/rancher_nodegroup_test.go @@ -396,19 +396,19 @@ func TestTemplateNodeInfo(t *testing.T) { t.Fatal(err) } - if nodeInfo.ToScheduler().Allocatable.MilliCPU != ng.resources.Cpu().MilliValue() { + if nodeInfo.ToScheduler().GetAllocatable().GetMilliCPU() != ng.resources.Cpu().MilliValue() { t.Fatalf("expected nodeInfo to have %v MilliCPU, got %v", - ng.resources.Cpu().MilliValue(), nodeInfo.ToScheduler().Allocatable.MilliCPU) + ng.resources.Cpu().MilliValue(), nodeInfo.ToScheduler().GetAllocatable().GetMilliCPU()) } - if nodeInfo.ToScheduler().Allocatable.Memory != ng.resources.Memory().Value() { + if nodeInfo.ToScheduler().GetAllocatable().GetMemory() != ng.resources.Memory().Value() { t.Fatalf("expected nodeInfo to have %v Memory, got %v", - ng.resources.Memory().Value(), nodeInfo.ToScheduler().Allocatable.Memory) + ng.resources.Memory().Value(), nodeInfo.ToScheduler().GetAllocatable().GetMemory()) } - if nodeInfo.ToScheduler().Allocatable.EphemeralStorage != ng.resources.StorageEphemeral().Value() { + if nodeInfo.ToScheduler().GetAllocatable().GetEphemeralStorage() != ng.resources.StorageEphemeral().Value() { t.Fatalf("expected nodeInfo to have %v ephemeral storage, got %v", - ng.resources.StorageEphemeral().Value(), nodeInfo.ToScheduler().Allocatable.EphemeralStorage) + ng.resources.StorageEphemeral().Value(), nodeInfo.ToScheduler().GetAllocatable().GetEphemeralStorage()) } } diff --git a/cluster-autoscaler/core/static_autoscaler_dra_test.go b/cluster-autoscaler/core/static_autoscaler_dra_test.go index 9dfd9af534..b98fc447b3 100644 --- a/cluster-autoscaler/core/static_autoscaler_dra_test.go +++ b/cluster-autoscaler/core/static_autoscaler_dra_test.go @@ -603,15 +603,17 @@ func testResourceClaim(claimName string, owningPod *apiv1.Pod, nodeName string, selectors = append(selectors, resourceapi.DeviceSelector{CEL: &resourceapi.CELDeviceSelector{Expression: selector}}) } deviceRequest := resourceapi.DeviceRequest{ - Name: request.name, - DeviceClassName: "default-class", - Selectors: selectors, + Name: request.name, + Exactly: &resourceapi.ExactDeviceRequest{ + DeviceClassName: "default-class", + Selectors: selectors, + }, } if request.all { - deviceRequest.AllocationMode = resourceapi.DeviceAllocationModeAll + deviceRequest.Exactly.AllocationMode = resourceapi.DeviceAllocationModeAll } else { - deviceRequest.AllocationMode = resourceapi.DeviceAllocationModeExactCount - deviceRequest.Count = request.count + deviceRequest.Exactly.AllocationMode = resourceapi.DeviceAllocationModeExactCount + deviceRequest.Exactly.Count = request.count } deviceRequests = append(deviceRequests, deviceRequest) } @@ -711,9 +713,10 @@ func testResourceSlices(driver, poolName string, poolSliceCount, poolGen int64, } if avail.node != "" { - slice.Spec.NodeName = avail.node + slice.Spec.NodeName = &avail.node } else if avail.all { - slice.Spec.AllNodes = true + v := true + slice.Spec.AllNodes = &v } else if len(avail.nodes) > 0 { slice.Spec.NodeSelector = &apiv1.NodeSelector{ NodeSelectorTerms: []apiv1.NodeSelectorTerm{ @@ -728,18 +731,16 @@ func testResourceSlices(driver, poolName string, poolSliceCount, poolGen int64, var devices []resourceapi.Device for _, deviceDef := range deviceDefs { device := resourceapi.Device{ - Name: deviceDef.name, - Basic: &resourceapi.BasicDevice{ - Attributes: map[resourceapi.QualifiedName]resourceapi.DeviceAttribute{}, - Capacity: map[resourceapi.QualifiedName]resourceapi.DeviceCapacity{}, - }, + Name: deviceDef.name, + Attributes: map[resourceapi.QualifiedName]resourceapi.DeviceAttribute{}, + Capacity: map[resourceapi.QualifiedName]resourceapi.DeviceCapacity{}, } for name, val := range deviceDef.attributes { val := val - device.Basic.Attributes[resourceapi.QualifiedName(driver+"/"+name)] = resourceapi.DeviceAttribute{StringValue: &val} + device.Attributes[resourceapi.QualifiedName(driver+"/"+name)] = resourceapi.DeviceAttribute{StringValue: &val} } for name, quantity := range deviceDef.capacity { - device.Basic.Capacity[resourceapi.QualifiedName(name)] = resourceapi.DeviceCapacity{Value: resource.MustParse(quantity)} + device.Capacity[resourceapi.QualifiedName(name)] = resourceapi.DeviceCapacity{Value: resource.MustParse(quantity)} } devices = append(devices, device) } diff --git a/cluster-autoscaler/simulator/clustersnapshot/predicate/predicate_snapshot_dra_benchmark_test.go b/cluster-autoscaler/simulator/clustersnapshot/predicate/predicate_snapshot_dra_benchmark_test.go index 51753cf784..b9250c62d5 100644 --- a/cluster-autoscaler/simulator/clustersnapshot/predicate/predicate_snapshot_dra_benchmark_test.go +++ b/cluster-autoscaler/simulator/clustersnapshot/predicate/predicate_snapshot_dra_benchmark_test.go @@ -35,21 +35,20 @@ import ( . "k8s.io/autoscaler/cluster-autoscaler/utils/test" ) -func createTestResourceSlice(nodeName string, devicesPerSlice int, slicesPerNode int, driver string, device resourceapi.BasicDevice) *resourceapi.ResourceSlice { +func createTestResourceSlice(nodeName string, devicesPerSlice int, slicesPerNode int, driver string) *resourceapi.ResourceSlice { sliceId := uuid.New().String() name := fmt.Sprintf("rs-%s", sliceId) uid := types.UID(fmt.Sprintf("rs-%s-uid", sliceId)) devices := make([]resourceapi.Device, devicesPerSlice) for deviceIndex := 0; deviceIndex < devicesPerSlice; deviceIndex++ { deviceName := fmt.Sprintf("rs-dev-%s-%d", sliceId, deviceIndex) - deviceCopy := device - devices[deviceIndex] = resourceapi.Device{Name: deviceName, Basic: &deviceCopy} + devices[deviceIndex] = resourceapi.Device{Name: deviceName} } return &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: name, UID: uid}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: nodeName, + NodeName: &nodeName, Driver: driver, Pool: resourceapi.ResourcePool{ Name: nodeName, @@ -69,11 +68,13 @@ func createTestResourceClaim(requestsPerClaim int, devicesPerRequest int, driver requests := make([]resourceapi.DeviceRequest, requestsPerClaim) for requestIndex := 0; requestIndex < requestsPerClaim; requestIndex++ { requests[requestIndex] = resourceapi.DeviceRequest{ - Name: fmt.Sprintf("deviceRequest-%d", requestIndex), - DeviceClassName: deviceClass, - Selectors: []resourceapi.DeviceSelector{{CEL: &resourceapi.CELDeviceSelector{Expression: expression}}}, - AllocationMode: resourceapi.DeviceAllocationModeExactCount, - Count: int64(devicesPerRequest), + Name: fmt.Sprintf("deviceRequest-%d", requestIndex), + Exactly: &resourceapi.ExactDeviceRequest{ + DeviceClassName: deviceClass, + Selectors: []resourceapi.DeviceSelector{{CEL: &resourceapi.CELDeviceSelector{Expression: expression}}}, + AllocationMode: resourceapi.DeviceAllocationModeExactCount, + Count: int64(devicesPerRequest), + }, } } @@ -102,7 +103,7 @@ func allocateResourceSlicesForClaim(claim *resourceapi.ResourceClaim, nodeName s allocationLoop: for _, request := range claim.Spec.Devices.Requests { - for devicesRequired := request.Count; devicesRequired > 0; devicesRequired-- { + for devicesRequired := request.Exactly.Count; devicesRequired > 0; devicesRequired-- { // Skipping resource slices until we find one with at least a single device available for sliceIndex < len(slices) && deviceIndex >= len(slices[sliceIndex].Spec.Devices) { sliceIndex++ @@ -272,7 +273,7 @@ func BenchmarkScheduleRevert(b *testing.B) { for nodeIndex := 0; nodeIndex < maxNodesCount; nodeIndex++ { nodeName := fmt.Sprintf("node-%d", nodeIndex) node := BuildTestNode(nodeName, 10000, 10000) - nodeSlice := createTestResourceSlice(node.Name, devicesPerSlice, 1, driverName, resourceapi.BasicDevice{}) + nodeSlice := createTestResourceSlice(node.Name, devicesPerSlice, 1, driverName) nodeInfo := framework.NewNodeInfo(node, []*resourceapi.ResourceSlice{nodeSlice}) sharedClaim := createTestResourceClaim(devicesPerSlice, 1, driverName, deviceClassName) diff --git a/cluster-autoscaler/simulator/clustersnapshot/predicate/predicate_snapshot_test.go b/cluster-autoscaler/simulator/clustersnapshot/predicate/predicate_snapshot_test.go index 64c1215d6d..e359f11690 100644 --- a/cluster-autoscaler/simulator/clustersnapshot/predicate/predicate_snapshot_test.go +++ b/cluster-autoscaler/simulator/clustersnapshot/predicate/predicate_snapshot_test.go @@ -204,32 +204,32 @@ func validTestCases(t *testing.T, snapshotName string) []modificationTestCase { { ObjectMeta: metav1.ObjectMeta{Name: "slice1", UID: "slice1Uid"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: node.Name, + NodeName: &node.Name, Driver: "driver.foo.com", Pool: resourceapi.ResourcePool{ Name: "pool1", ResourceSliceCount: 1, }, Devices: []resourceapi.Device{ - {Name: "dev1", Basic: &resourceapi.BasicDevice{}}, - {Name: "dev2", Basic: &resourceapi.BasicDevice{}}, - {Name: "dev3", Basic: &resourceapi.BasicDevice{}}, + {Name: "dev1"}, + {Name: "dev2"}, + {Name: "dev3"}, }, }, }, { ObjectMeta: metav1.ObjectMeta{Name: "slice2", UID: "slice2Uid"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: node.Name, + NodeName: &node.Name, Driver: "driver.bar.com", Pool: resourceapi.ResourcePool{ Name: "pool2", ResourceSliceCount: 1, }, Devices: []resourceapi.Device{ - {Name: "dev1", Basic: &resourceapi.BasicDevice{}}, - {Name: "dev2", Basic: &resourceapi.BasicDevice{}}, - {Name: "dev3", Basic: &resourceapi.BasicDevice{}}, + {Name: "dev1"}, + {Name: "dev2"}, + {Name: "dev3"}, }, }, }, @@ -247,11 +247,13 @@ func validTestCases(t *testing.T, snapshotName string) []modificationTestCase { Devices: resourceapi.DeviceClaim{ Requests: []resourceapi.DeviceRequest{ { - Name: "req1", - DeviceClassName: "defaultClass", - Selectors: []resourceapi.DeviceSelector{{CEL: &resourceapi.CELDeviceSelector{Expression: `device.driver == "driver.foo.com"`}}}, - AllocationMode: resourceapi.DeviceAllocationModeExactCount, - Count: 3, + Name: "req1", + Exactly: &resourceapi.ExactDeviceRequest{ + DeviceClassName: "defaultClass", + Selectors: []resourceapi.DeviceSelector{{CEL: &resourceapi.CELDeviceSelector{Expression: `device.driver == "driver.foo.com"`}}}, + AllocationMode: resourceapi.DeviceAllocationModeExactCount, + Count: 3, + }, }, }, }, @@ -284,10 +286,12 @@ func validTestCases(t *testing.T, snapshotName string) []modificationTestCase { Devices: resourceapi.DeviceClaim{ Requests: []resourceapi.DeviceRequest{ { - Name: "req1", - DeviceClassName: "defaultClass", - Selectors: []resourceapi.DeviceSelector{{CEL: &resourceapi.CELDeviceSelector{Expression: `device.driver == "driver.bar.com"`}}}, - AllocationMode: resourceapi.DeviceAllocationModeAll, + Name: "req1", + Exactly: &resourceapi.ExactDeviceRequest{ + DeviceClassName: "defaultClass", + Selectors: []resourceapi.DeviceSelector{{CEL: &resourceapi.CELDeviceSelector{Expression: `device.driver == "driver.bar.com"`}}}, + AllocationMode: resourceapi.DeviceAllocationModeAll, + }, }, }, }, diff --git a/cluster-autoscaler/simulator/dynamicresources/provider/provider_test.go b/cluster-autoscaler/simulator/dynamicresources/provider/provider_test.go index 40aea47e8e..ff6f59b265 100644 --- a/cluster-autoscaler/simulator/dynamicresources/provider/provider_test.go +++ b/cluster-autoscaler/simulator/dynamicresources/provider/provider_test.go @@ -39,12 +39,16 @@ var ( claim2 = &resourceapi.ResourceClaim{ObjectMeta: metav1.ObjectMeta{Name: "claim-2", UID: "claim-2"}} claim3 = &resourceapi.ResourceClaim{ObjectMeta: metav1.ObjectMeta{Name: "claim-3", UID: "claim-3"}} - localSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-1", UID: "local-slice-1"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "n1"}} - localSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-2", UID: "local-slice-2"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "n1"}} - localSlice3 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-3", UID: "local-slice-3"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "n2"}} - localSlice4 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-4", UID: "local-slice-4"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "n2"}} - globalSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-1", UID: "global-slice-1"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: true}} - globalSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-2", UID: "global-slice-2"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: true}} + n1Name = "n1" + n2Name = "n2" + trueValue = true + + localSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-1", UID: "local-slice-1"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &n1Name}} + localSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-2", UID: "local-slice-2"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &n1Name}} + localSlice3 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-3", UID: "local-slice-3"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &n2Name}} + localSlice4 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-4", UID: "local-slice-4"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &n2Name}} + globalSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-1", UID: "global-slice-1"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: &trueValue}} + globalSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-2", UID: "global-slice-2"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: &trueValue}} globalSlice3 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-3", UID: "global-slice-3"}, Spec: resourceapi.ResourceSliceSpec{NodeSelector: &apiv1.NodeSelector{}}} class1 = &resourceapi.DeviceClass{ObjectMeta: metav1.ObjectMeta{Name: "class-1", UID: "class-1"}} diff --git a/cluster-autoscaler/simulator/dynamicresources/snapshot/snapshot_slice_lister_test.go b/cluster-autoscaler/simulator/dynamicresources/snapshot/snapshot_slice_lister_test.go index af28a777e2..fec516177f 100644 --- a/cluster-autoscaler/simulator/dynamicresources/snapshot/snapshot_slice_lister_test.go +++ b/cluster-autoscaler/simulator/dynamicresources/snapshot/snapshot_slice_lister_test.go @@ -31,12 +31,15 @@ import ( func TestSnapshotSliceListerList(t *testing.T) { var ( - localSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-1", UID: "local-slice-1"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "n1"}} - localSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-2", UID: "local-slice-2"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "n1"}} - localSlice3 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-3", UID: "local-slice-3"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "n2"}} - localSlice4 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-4", UID: "local-slice-4"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "n2"}} - globalSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-1", UID: "global-slice-1"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: true}} - globalSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-2", UID: "global-slice-2"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: true}} + n1Name = "n1" + n2Name = "n2" + trueValue = true + localSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-1", UID: "local-slice-1"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &n1Name}} + localSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-2", UID: "local-slice-2"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &n1Name}} + localSlice3 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-3", UID: "local-slice-3"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &n2Name}} + localSlice4 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-4", UID: "local-slice-4"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &n2Name}} + globalSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-1", UID: "global-slice-1"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: &trueValue}} + globalSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-2", UID: "global-slice-2"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: &trueValue}} globalSlice3 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-3", UID: "global-slice-3"}, Spec: resourceapi.ResourceSliceSpec{NodeSelector: &apiv1.NodeSelector{}}} ) diff --git a/cluster-autoscaler/simulator/dynamicresources/snapshot/snapshot_test.go b/cluster-autoscaler/simulator/dynamicresources/snapshot/snapshot_test.go index 2d32a0cdfd..055dfb1d7a 100644 --- a/cluster-autoscaler/simulator/dynamicresources/snapshot/snapshot_test.go +++ b/cluster-autoscaler/simulator/dynamicresources/snapshot/snapshot_test.go @@ -34,14 +34,19 @@ import ( ) var ( - node1Slice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-1", UID: "local-slice-1"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "node1"}} - node1Slice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-2", UID: "local-slice-2"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "node1"}} - node2Slice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-3", UID: "local-slice-3"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "node2"}} - node2Slice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-4", UID: "local-slice-4"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "node2"}} - node3Slice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-5", UID: "local-slice-5"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "node3"}} - node3Slice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-6", UID: "local-slice-6"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "node3"}} - globalSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-1", UID: "global-slice-1"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: true}} - globalSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-2", UID: "global-slice-2"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: true}} + node1Name = "node1" + node2Name = "node2" + node3Name = "node3" + trueValue = true + + node1Slice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-1", UID: "local-slice-1"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &node1Name}} + node1Slice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-2", UID: "local-slice-2"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &node1Name}} + node2Slice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-3", UID: "local-slice-3"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &node2Name}} + node2Slice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-4", UID: "local-slice-4"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &node2Name}} + node3Slice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-5", UID: "local-slice-5"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &node3Name}} + node3Slice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "local-slice-6", UID: "local-slice-6"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &node3Name}} + globalSlice1 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-1", UID: "global-slice-1"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: &trueValue}} + globalSlice2 = &resourceapi.ResourceSlice{ObjectMeta: metav1.ObjectMeta{Name: "global-slice-2", UID: "global-slice-2"}, Spec: resourceapi.ResourceSliceSpec{AllNodes: &trueValue}} node1 = test.BuildTestNode("node1", 1000, 1000) pod1 = test.BuildTestPod("pod1", 1, 1, @@ -600,7 +605,7 @@ func TestSnapshotForkCommitRevert(t *testing.T) { GetClaimId(pod1OwnClaim2): pod1OwnClaim2.DeepCopy(), } initialDeviceClasses := map[string]*resourceapi.DeviceClass{deviceClass1.Name: deviceClass1.DeepCopy(), deviceClass2.Name: deviceClass2.DeepCopy()} - initialLocalSlices := map[string][]*resourceapi.ResourceSlice{node1Slice1.Spec.NodeName: {node1Slice1.DeepCopy()}} + initialLocalSlices := map[string][]*resourceapi.ResourceSlice{*node1Slice1.Spec.NodeName: {node1Slice1.DeepCopy()}} initialGlobalSlices := []*resourceapi.ResourceSlice{globalSlice1.DeepCopy(), globalSlice2.DeepCopy()} initialState := NewSnapshot(initialClaims, initialLocalSlices, initialGlobalSlices, initialDeviceClasses) @@ -614,7 +619,7 @@ func TestSnapshotForkCommitRevert(t *testing.T) { GetClaimId(pod1OwnClaim1): drautils.TestClaimWithPodReservations(pod1OwnClaim1, podToReserve), GetClaimId(pod1OwnClaim2): drautils.TestClaimWithPodReservations(pod1OwnClaim2, podToReserve), } - modifiedLocalSlices := map[string][]*resourceapi.ResourceSlice{addedNodeSlice.Spec.NodeName: {addedNodeSlice.DeepCopy()}} + modifiedLocalSlices := map[string][]*resourceapi.ResourceSlice{*addedNodeSlice.Spec.NodeName: {addedNodeSlice.DeepCopy()}} // Expected state after modifications are applied modifiedState := NewSnapshot( modifiedClaims, @@ -627,7 +632,7 @@ func TestSnapshotForkCommitRevert(t *testing.T) { t.Helper() addedSlices := []*resourceapi.ResourceSlice{addedNodeSlice.DeepCopy()} - if err := s.AddNodeResourceSlices(addedNodeSlice.Spec.NodeName, addedSlices); err != nil { + if err := s.AddNodeResourceSlices(*addedNodeSlice.Spec.NodeName, addedSlices); err != nil { t.Fatalf("failed to add %s resource slices: %v", addedNodeSlice.Spec.NodeName, err) } if err := s.AddClaims([]*resourceapi.ResourceClaim{addedClaim}); err != nil { @@ -637,7 +642,7 @@ func TestSnapshotForkCommitRevert(t *testing.T) { t.Fatalf("failed to reserve claim %s for pod %s: %v", sharedClaim1.Name, podToReserve.Name, err) } - s.RemoveNodeResourceSlices(node1Slice1.Spec.NodeName) + s.RemoveNodeResourceSlices(*node1Slice1.Spec.NodeName) } compareSnapshots := func(t *testing.T, want, got *Snapshot, msg string) { diff --git a/cluster-autoscaler/simulator/dynamicresources/utils/sanitize_test.go b/cluster-autoscaler/simulator/dynamicresources/utils/sanitize_test.go index 34ce26c7fc..cb14e5d3fb 100644 --- a/cluster-autoscaler/simulator/dynamicresources/utils/sanitize_test.go +++ b/cluster-autoscaler/simulator/dynamicresources/utils/sanitize_test.go @@ -30,8 +30,10 @@ import ( ) func TestSanitizedNodeResourceSlices(t *testing.T) { + oldNodeName := "oldNode" newNodeName := "newNode" nameSuffix := "abc" + trueValue := true device1 := resourceapi.Device{Name: "device1"} device2 := resourceapi.Device{Name: "device2"} @@ -40,7 +42,7 @@ func TestSanitizedNodeResourceSlices(t *testing.T) { allNodesSlice := &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: "allNodesSlice", UID: "allNodesSlice"}, Spec: resourceapi.ResourceSliceSpec{ - AllNodes: true, + AllNodes: &trueValue, Driver: "driver.example.com", Pool: resourceapi.ResourcePool{Name: "all-nodes-pool1", Generation: 13, ResourceSliceCount: 37}, Devices: devices, @@ -58,7 +60,7 @@ func TestSanitizedNodeResourceSlices(t *testing.T) { pool1Slice1 := &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: "pool1Slice1", UID: "pool1Slice1"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "oldNode", + NodeName: &oldNodeName, Driver: "driver.example.com", Pool: resourceapi.ResourcePool{Name: "oldNode-pool1", Generation: 13, ResourceSliceCount: 37}, Devices: devices, @@ -67,7 +69,7 @@ func TestSanitizedNodeResourceSlices(t *testing.T) { pool1Slice2 := &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: "pool1Slice2", UID: "pool1Slice2"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "oldNode", + NodeName: &oldNodeName, Driver: "driver.example.com", Pool: resourceapi.ResourcePool{Name: "oldNode-pool1", Generation: 13, ResourceSliceCount: 37}, Devices: devices, @@ -76,7 +78,7 @@ func TestSanitizedNodeResourceSlices(t *testing.T) { pool2Slice1 := &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: "pool2Slice1", UID: "pool2Slice1"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "oldNode", + NodeName: &oldNodeName, Driver: "driver.example.com", Pool: resourceapi.ResourcePool{Name: "oldNode-pool2", Generation: 13, ResourceSliceCount: 37}, Devices: devices, @@ -85,7 +87,7 @@ func TestSanitizedNodeResourceSlices(t *testing.T) { pool2Slice2 := &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: "pool2Slice2", UID: "pool2Slice2"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "oldNode", + NodeName: &oldNodeName, Driver: "driver.example.com", Pool: resourceapi.ResourcePool{Name: "oldNode-pool2", Generation: 13, ResourceSliceCount: 37}, Devices: devices, @@ -94,7 +96,7 @@ func TestSanitizedNodeResourceSlices(t *testing.T) { pool1Slice1Sanitized := &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: "pool1Slice1-abc"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "newNode", + NodeName: &newNodeName, Driver: "driver.example.com", Pool: resourceapi.ResourcePool{Name: "oldNode-pool1-abc", Generation: 13, ResourceSliceCount: 37}, Devices: devices, @@ -103,7 +105,7 @@ func TestSanitizedNodeResourceSlices(t *testing.T) { pool1Slice2Sanitized := &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: "pool1Slice2-abc"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "newNode", + NodeName: &newNodeName, Driver: "driver.example.com", Pool: resourceapi.ResourcePool{Name: "oldNode-pool1-abc", Generation: 13, ResourceSliceCount: 37}, Devices: devices, @@ -112,7 +114,7 @@ func TestSanitizedNodeResourceSlices(t *testing.T) { pool2Slice1Sanitized := &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: "pool2Slice1-abc"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "newNode", + NodeName: &newNodeName, Driver: "driver.example.com", Pool: resourceapi.ResourcePool{Name: "oldNode-pool2-abc", Generation: 13, ResourceSliceCount: 37}, Devices: devices, @@ -121,7 +123,7 @@ func TestSanitizedNodeResourceSlices(t *testing.T) { pool2Slice2Sanitized := &resourceapi.ResourceSlice{ ObjectMeta: metav1.ObjectMeta{Name: "pool2Slice2-abc"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "newNode", + NodeName: &newNodeName, Driver: "driver.example.com", Pool: resourceapi.ResourcePool{Name: "oldNode-pool2-abc", Generation: 13, ResourceSliceCount: 37}, Devices: devices, diff --git a/cluster-autoscaler/simulator/dynamicresources/utils/utilization_test.go b/cluster-autoscaler/simulator/dynamicresources/utils/utilization_test.go index b9f9df9c75..d7e89b32d7 100644 --- a/cluster-autoscaler/simulator/dynamicresources/utils/utilization_test.go +++ b/cluster-autoscaler/simulator/dynamicresources/utils/utilization_test.go @@ -181,7 +181,7 @@ func testResourceSlices(driverName, poolName, nodeName string, poolGen, deviceCo ObjectMeta: metav1.ObjectMeta{Name: sliceName, UID: types.UID(sliceName)}, Spec: resourceapi.ResourceSliceSpec{ Driver: driverName, - NodeName: nodeName, + NodeName: &nodeName, Pool: resourceapi.ResourcePool{Name: poolName, Generation: poolGen, ResourceSliceCount: sliceCount}, Devices: devices, }, diff --git a/cluster-autoscaler/simulator/framework/infos_test.go b/cluster-autoscaler/simulator/framework/infos_test.go index 1e5a913f31..3307aa1af7 100644 --- a/cluster-autoscaler/simulator/framework/infos_test.go +++ b/cluster-autoscaler/simulator/framework/infos_test.go @@ -22,6 +22,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" + fwk "k8s.io/kube-scheduler/framework" apiv1 "k8s.io/api/core/v1" resourceapi "k8s.io/api/resource/v1" @@ -32,7 +33,8 @@ import ( ) func TestNodeInfo(t *testing.T) { - node := test.BuildTestNode("test-node", 1000, 1024) + nodeName := "test-node" + node := test.BuildTestNode(nodeName, 1000, 1024) pods := []*apiv1.Pod{ // Use pods requesting host-ports to make sure that NodeInfo fields other than node and Pods also // get set correctly (in this case - the UsedPorts field). @@ -51,9 +53,9 @@ func TestNodeInfo(t *testing.T) { Name: "test-node-slice-0", }, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "test-node", + NodeName: &nodeName, Driver: "test.driver.com", - Pool: resourceapi.ResourcePool{Name: "test-node", Generation: 13, ResourceSliceCount: 2}, + Pool: resourceapi.ResourcePool{Name: nodeName, Generation: 13, ResourceSliceCount: 2}, Devices: []resourceapi.Device{{Name: "device-0"}, {Name: "device-1"}}, }}, { @@ -61,9 +63,9 @@ func TestNodeInfo(t *testing.T) { Name: "test-node-slice-1", }, Spec: resourceapi.ResourceSliceSpec{ - NodeName: "test-node", + NodeName: &nodeName, Driver: "test.driver.com", - Pool: resourceapi.ResourcePool{Name: "test-node", Generation: 13, ResourceSliceCount: 2}, + Pool: resourceapi.ResourcePool{Name: nodeName, Generation: 13, ResourceSliceCount: 2}, Devices: []resourceapi.Device{{Name: "device-2"}, {Name: "device-3"}}, }, }, @@ -71,14 +73,14 @@ func TestNodeInfo(t *testing.T) { for _, tc := range []struct { testName string - modFn func(info *schedulerframework.NodeInfo) *NodeInfo - wantSchedNodeInfo *schedulerframework.NodeInfo + modFn func(info fwk.NodeInfo) *NodeInfo + wantSchedNodeInfo fwk.NodeInfo wantLocalResourceSlices []*resourceapi.ResourceSlice wantPods []*PodInfo }{ { testName: "wrapping via NewNodeInfo", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { return NewNodeInfo(info.Node(), nil, testPodInfos(pods, false)...) }, wantSchedNodeInfo: schedulerNodeInfo, @@ -86,7 +88,7 @@ func TestNodeInfo(t *testing.T) { }, { testName: "wrapping via NewNodeInfo with DRA objects", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { return NewNodeInfo(info.Node(), slices, testPodInfos(pods, true)...) }, wantSchedNodeInfo: schedulerNodeInfo, @@ -95,10 +97,10 @@ func TestNodeInfo(t *testing.T) { }, { testName: "wrapping via NewTestNodeInfo", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { var pods []*apiv1.Pod - for _, pod := range info.Pods { - pods = append(pods, pod.Pod) + for _, pod := range info.GetPods() { + pods = append(pods, pod.GetPod()) } return NewTestNodeInfo(info.Node(), pods...) }, @@ -107,7 +109,7 @@ func TestNodeInfo(t *testing.T) { }, { testName: "wrapping via WrapSchedulerNodeInfo", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { return WrapSchedulerNodeInfo(info, nil, nil) }, wantSchedNodeInfo: schedulerNodeInfo, @@ -115,7 +117,7 @@ func TestNodeInfo(t *testing.T) { }, { testName: "wrapping via WrapSchedulerNodeInfo with DRA objects", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { podInfos := testPodInfos(pods, true) extraInfos := make(map[types.UID]PodExtraInfo) for _, podInfo := range podInfos { @@ -129,11 +131,11 @@ func TestNodeInfo(t *testing.T) { }, { testName: "wrapping via SetNode+AddPod", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { result := NewNodeInfo(nil, nil) result.SetNode(info.Node()) - for _, pod := range info.Pods { - result.AddPod(&PodInfo{Pod: pod.Pod}) + for _, pod := range info.GetPods() { + result.AddPod(&PodInfo{Pod: pod.GetPod()}) } return result }, @@ -142,7 +144,7 @@ func TestNodeInfo(t *testing.T) { }, { testName: "wrapping via SetNode+AddPod with DRA objects", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { result := NewNodeInfo(nil, nil) result.LocalResourceSlices = slices result.SetNode(info.Node()) @@ -157,7 +159,7 @@ func TestNodeInfo(t *testing.T) { }, { testName: "removing pods", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { result := NewNodeInfo(info.Node(), slices, testPodInfos(pods, true)...) for _, pod := range []*apiv1.Pod{pods[0], pods[2], pods[4]} { if err := result.RemovePod(pod); err != nil { @@ -172,7 +174,7 @@ func TestNodeInfo(t *testing.T) { }, { testName: "wrapping via WrapSchedulerNodeInfo and adding more pods", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { result := WrapSchedulerNodeInfo(info, nil, nil) result.AddPod(testPodInfos([]*apiv1.Pod{extraPod}, false)[0]) return result @@ -182,7 +184,7 @@ func TestNodeInfo(t *testing.T) { }, { testName: "wrapping via WrapSchedulerNodeInfo and adding more pods using DRA", - modFn: func(info *schedulerframework.NodeInfo) *NodeInfo { + modFn: func(info fwk.NodeInfo) *NodeInfo { result := WrapSchedulerNodeInfo(info, nil, nil) result.AddPod(testPodInfos([]*apiv1.Pod{extraPod}, true)[0]) return result @@ -193,7 +195,6 @@ func TestNodeInfo(t *testing.T) { } { t.Run(tc.testName, func(t *testing.T) { wrappedNodeInfo := tc.modFn(schedulerNodeInfo.Snapshot()) - // Assert that the scheduler NodeInfo object is as expected. nodeInfoCmpOpts := []cmp.Option{ // The Node is the only unexported field in this type, and we want to compare it. @@ -202,8 +203,8 @@ func TestNodeInfo(t *testing.T) { cmpopts.IgnoreFields(schedulerframework.NodeInfo{}, "Generation"), // The pod order changes in a particular way whenever schedulerframework.RemovePod() is called. Instead of // relying on that schedulerframework implementation detail in assertions, just ignore the order. - cmpopts.SortSlices(func(p1, p2 *schedulerframework.PodInfo) bool { - return p1.Pod.Name < p2.Pod.Name + cmpopts.SortSlices(func(p1, p2 fwk.PodInfo) bool { + return p1.GetPod().Name < p2.GetPod().Name }), cmpopts.IgnoreUnexported(schedulerframework.PodInfo{}), } @@ -247,7 +248,8 @@ func TestNodeInfo(t *testing.T) { } func TestDeepCopyNodeInfo(t *testing.T) { - node := test.BuildTestNode("node", 1000, 1000) + nodeName := "node" + node := test.BuildTestNode(nodeName, 1000, 1000) pods := []*PodInfo{ {Pod: test.BuildTestPod("p1", 80, 0, test.WithNodeName(node.Name))}, { @@ -261,8 +263,8 @@ func TestDeepCopyNodeInfo(t *testing.T) { }, } slices := []*resourceapi.ResourceSlice{ - {ObjectMeta: v1.ObjectMeta{Name: "slice1"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "node"}}, - {ObjectMeta: v1.ObjectMeta{Name: "slice2"}, Spec: resourceapi.ResourceSliceSpec{NodeName: "node"}}, + {ObjectMeta: v1.ObjectMeta{Name: "slice1"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &nodeName}}, + {ObjectMeta: v1.ObjectMeta{Name: "slice2"}, Spec: resourceapi.ResourceSliceSpec{NodeName: &nodeName}}, } for _, tc := range []struct { diff --git a/cluster-autoscaler/simulator/node_info_utils_test.go b/cluster-autoscaler/simulator/node_info_utils_test.go index 2e9b2d7f11..6df556cd01 100644 --- a/cluster-autoscaler/simulator/node_info_utils_test.go +++ b/cluster-autoscaler/simulator/node_info_utils_test.go @@ -396,7 +396,7 @@ func TestCreateSanitizedNodeInfo(t *testing.T) { { ObjectMeta: metav1.ObjectMeta{Name: "slice1", UID: "slice1Uid"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: oldNodeName, + NodeName: &oldNodeName, Pool: resourceapi.ResourcePool{ Name: "pool1", ResourceSliceCount: 1, @@ -406,7 +406,7 @@ func TestCreateSanitizedNodeInfo(t *testing.T) { { ObjectMeta: metav1.ObjectMeta{Name: "slice2", UID: "slice2Uid"}, Spec: resourceapi.ResourceSliceSpec{ - NodeName: oldNodeName, + NodeName: &oldNodeName, Pool: resourceapi.ResourcePool{ Name: "pool2", ResourceSliceCount: 1,