Skip to content

Commit 3e0578b

Browse files
committed
Replace schedulerframework.NodeInfo pointers with fwk.NodeInfo interface
1 parent d260381 commit 3e0578b

File tree

10 files changed

+111
-98
lines changed

10 files changed

+111
-98
lines changed

cluster-autoscaler/core/scaledown/eligibility/eligibility_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,12 @@ func getTestCases(ignoreDaemonSetsUtilization bool, suffix string, now time.Time
7575
dsPod.Spec.NodeName = "regular"
7676

7777
brokenUtilNode := BuildTestNode("regular", 0, 0)
78+
resourceSliceNodeName := "regular"
7879
regularNodeIncompleteResourceSlice := &resourceapi.ResourceSlice{
7980
ObjectMeta: metav1.ObjectMeta{Name: "regularNodeIncompleteResourceSlice", UID: "regularNodeIncompleteResourceSlice"},
8081
Spec: resourceapi.ResourceSliceSpec{
8182
Driver: "driver.foo.com",
82-
NodeName: "regular",
83+
NodeName: &resourceSliceNodeName,
8384
Pool: resourceapi.ResourcePool{
8485
Name: "regular-pool",
8586
ResourceSliceCount: 999,

cluster-autoscaler/processors/customresources/dra_processor_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ func buildNodeResourceSlices(nodeName, driverName string, numberOfDevicesInSlice
373373
driverName = fmt.Sprintf("driver_%d", sliceIndex)
374374
}
375375
spec := resourceapi.ResourceSliceSpec{
376-
NodeName: nodeName,
376+
NodeName: &nodeName,
377377
Driver: driverName,
378378
Pool: resourceapi.ResourcePool{Name: fmt.Sprintf("%s_pool_%d", nodeName, sliceIndex)},
379379
Devices: devices,

cluster-autoscaler/processors/nodegroupset/compare_nodegroups.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func IsCloudProviderNodeInfoSimilar(
115115
for res, quantity := range node.Node().Status.Allocatable {
116116
allocatable[res] = append(allocatable[res], quantity)
117117
}
118-
for res, quantity := range scheduler.ResourceToResourceList(node.ToScheduler().Requested) {
118+
for res, quantity := range scheduler.ResourceToResourceList(node.ToScheduler().GetRequested()) {
119119
freeRes := node.Node().Status.Allocatable[res].DeepCopy()
120120
freeRes.Sub(quantity)
121121
free[res] = append(free[res], freeRes)

cluster-autoscaler/simulator/clustersnapshot/clustersnapshot.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
drasnapshot "k8s.io/autoscaler/cluster-autoscaler/simulator/dynamicresources/snapshot"
2424
"k8s.io/autoscaler/cluster-autoscaler/simulator/framework"
2525
"k8s.io/klog/v2"
26-
schedulerframework "k8s.io/kubernetes/pkg/scheduler/framework"
26+
fwk "k8s.io/kube-scheduler/framework"
2727
)
2828

2929
// ClusterSnapshot is abstraction of cluster state used for predicate simulations.
@@ -87,7 +87,7 @@ type ClusterSnapshotStore interface {
8787
// AddSchedulerNodeInfo adds the given schedulerframework.NodeInfo to the snapshot without checking scheduler predicates, and
8888
// without taking DRA objects into account. This shouldn't be used outside the clustersnapshot pkg, use ClusterSnapshot.AddNodeInfo()
8989
// instead.
90-
AddSchedulerNodeInfo(nodeInfo *schedulerframework.NodeInfo) error
90+
AddSchedulerNodeInfo(nodeInfo fwk.NodeInfo) error
9191
// RemoveSchedulerNodeInfo removes the given schedulerframework.NodeInfo from the snapshot without taking DRA objects into account. This shouldn't
9292
// be used outside the clustersnapshot pkg, use ClusterSnapshot.RemoveNodeInfo() instead.
9393
RemoveSchedulerNodeInfo(nodeName string) error

cluster-autoscaler/simulator/clustersnapshot/store/basic.go

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"k8s.io/autoscaler/cluster-autoscaler/simulator/clustersnapshot"
2424
drasnapshot "k8s.io/autoscaler/cluster-autoscaler/simulator/dynamicresources/snapshot"
2525
"k8s.io/klog/v2"
26+
fwk "k8s.io/kube-scheduler/framework"
2627
schedulerframework "k8s.io/kubernetes/pkg/scheduler/framework"
2728
)
2829

@@ -34,41 +35,41 @@ type BasicSnapshotStore struct {
3435
}
3536

3637
type internalBasicSnapshotData struct {
37-
nodeInfoMap map[string]*schedulerframework.NodeInfo
38+
nodeInfoMap map[string]fwk.NodeInfo
3839
pvcNamespacePodMap map[string]map[string]bool
3940
}
4041

41-
func (data *internalBasicSnapshotData) listNodeInfos() []*schedulerframework.NodeInfo {
42-
nodeInfoList := make([]*schedulerframework.NodeInfo, 0, len(data.nodeInfoMap))
42+
func (data *internalBasicSnapshotData) listNodeInfos() []fwk.NodeInfo {
43+
nodeInfoList := make([]fwk.NodeInfo, 0, len(data.nodeInfoMap))
4344
for _, v := range data.nodeInfoMap {
4445
nodeInfoList = append(nodeInfoList, v)
4546
}
4647
return nodeInfoList
4748
}
4849

49-
func (data *internalBasicSnapshotData) listNodeInfosThatHavePodsWithAffinityList() ([]*schedulerframework.NodeInfo, error) {
50-
havePodsWithAffinityList := make([]*schedulerframework.NodeInfo, 0, len(data.nodeInfoMap))
50+
func (data *internalBasicSnapshotData) listNodeInfosThatHavePodsWithAffinityList() ([]fwk.NodeInfo, error) {
51+
havePodsWithAffinityList := make([]fwk.NodeInfo, 0, len(data.nodeInfoMap))
5152
for _, v := range data.nodeInfoMap {
52-
if len(v.PodsWithAffinity) > 0 {
53+
if len(v.GetPodsWithAffinity()) > 0 {
5354
havePodsWithAffinityList = append(havePodsWithAffinityList, v)
5455
}
5556
}
5657

5758
return havePodsWithAffinityList, nil
5859
}
5960

60-
func (data *internalBasicSnapshotData) listNodeInfosThatHavePodsWithRequiredAntiAffinityList() ([]*schedulerframework.NodeInfo, error) {
61-
havePodsWithRequiredAntiAffinityList := make([]*schedulerframework.NodeInfo, 0, len(data.nodeInfoMap))
61+
func (data *internalBasicSnapshotData) listNodeInfosThatHavePodsWithRequiredAntiAffinityList() ([]fwk.NodeInfo, error) {
62+
havePodsWithRequiredAntiAffinityList := make([]fwk.NodeInfo, 0, len(data.nodeInfoMap))
6263
for _, v := range data.nodeInfoMap {
63-
if len(v.PodsWithRequiredAntiAffinity) > 0 {
64+
if len(v.GetPodsWithRequiredAntiAffinity()) > 0 {
6465
havePodsWithRequiredAntiAffinityList = append(havePodsWithRequiredAntiAffinityList, v)
6566
}
6667
}
6768

6869
return havePodsWithRequiredAntiAffinityList, nil
6970
}
7071

71-
func (data *internalBasicSnapshotData) getNodeInfo(nodeName string) (*schedulerframework.NodeInfo, error) {
72+
func (data *internalBasicSnapshotData) getNodeInfo(nodeName string) (fwk.NodeInfo, error) {
7273
if v, ok := data.nodeInfoMap[nodeName]; ok {
7374
return v, nil
7475
}
@@ -122,13 +123,13 @@ func (data *internalBasicSnapshotData) removePvcUsedByPod(pod *apiv1.Pod) {
122123

123124
func newInternalBasicSnapshotData() *internalBasicSnapshotData {
124125
return &internalBasicSnapshotData{
125-
nodeInfoMap: make(map[string]*schedulerframework.NodeInfo),
126+
nodeInfoMap: make(map[string]fwk.NodeInfo),
126127
pvcNamespacePodMap: make(map[string]map[string]bool),
127128
}
128129
}
129130

130131
func (data *internalBasicSnapshotData) clone() *internalBasicSnapshotData {
131-
clonedNodeInfoMap := make(map[string]*schedulerframework.NodeInfo)
132+
clonedNodeInfoMap := make(map[string]fwk.NodeInfo)
132133
for k, v := range data.nodeInfoMap {
133134
clonedNodeInfoMap[k] = v.Snapshot()
134135
}
@@ -159,8 +160,8 @@ func (data *internalBasicSnapshotData) removeNodeInfo(nodeName string) error {
159160
if _, found := data.nodeInfoMap[nodeName]; !found {
160161
return clustersnapshot.ErrNodeNotFound
161162
}
162-
for _, pod := range data.nodeInfoMap[nodeName].Pods {
163-
data.removePvcUsedByPod(pod.Pod)
163+
for _, pod := range data.nodeInfoMap[nodeName].GetPods() {
164+
data.removePvcUsedByPod(pod.GetPod())
164165
}
165166
delete(data.nodeInfoMap, nodeName)
166167
return nil
@@ -170,7 +171,8 @@ func (data *internalBasicSnapshotData) addPod(pod *apiv1.Pod, nodeName string) e
170171
if _, found := data.nodeInfoMap[nodeName]; !found {
171172
return clustersnapshot.ErrNodeNotFound
172173
}
173-
data.nodeInfoMap[nodeName].AddPod(pod)
174+
podInfo, _ := schedulerframework.NewPodInfo(pod)
175+
data.nodeInfoMap[nodeName].AddPodInfo(podInfo)
174176
data.addPvcUsedByPod(pod)
175177
return nil
176178
}
@@ -181,12 +183,12 @@ func (data *internalBasicSnapshotData) removePod(namespace, podName, nodeName st
181183
return clustersnapshot.ErrNodeNotFound
182184
}
183185
logger := klog.Background()
184-
for _, podInfo := range nodeInfo.Pods {
185-
if podInfo.Pod.Namespace == namespace && podInfo.Pod.Name == podName {
186-
data.removePvcUsedByPod(podInfo.Pod)
187-
err := nodeInfo.RemovePod(logger, podInfo.Pod)
186+
for _, podInfo := range nodeInfo.GetPods() {
187+
if podInfo.GetPod().Namespace == namespace && podInfo.GetPod().Name == podName {
188+
data.removePvcUsedByPod(podInfo.GetPod())
189+
err := nodeInfo.RemovePod(logger, podInfo.GetPod())
188190
if err != nil {
189-
data.addPvcUsedByPod(podInfo.Pod)
191+
data.addPvcUsedByPod(podInfo.GetPod())
190192
return fmt.Errorf("cannot remove pod; %v", err)
191193
}
192194
return nil
@@ -212,12 +214,12 @@ func (snapshot *BasicSnapshotStore) DraSnapshot() *drasnapshot.Snapshot {
212214
}
213215

214216
// AddSchedulerNodeInfo adds a NodeInfo.
215-
func (snapshot *BasicSnapshotStore) AddSchedulerNodeInfo(nodeInfo *schedulerframework.NodeInfo) error {
217+
func (snapshot *BasicSnapshotStore) AddSchedulerNodeInfo(nodeInfo fwk.NodeInfo) error {
216218
if err := snapshot.getInternalData().addNode(nodeInfo.Node()); err != nil {
217219
return err
218220
}
219-
for _, podInfo := range nodeInfo.Pods {
220-
if err := snapshot.getInternalData().addPod(podInfo.Pod, nodeInfo.Node().Name); err != nil {
221+
for _, podInfo := range nodeInfo.GetPods() {
222+
if err := snapshot.getInternalData().addPod(podInfo.GetPod(), nodeInfo.Node().Name); err != nil {
221223
return err
222224
}
223225
}
@@ -337,22 +339,22 @@ func (snapshot *BasicSnapshotStore) DeviceClasses() schedulerframework.DeviceCla
337339
}
338340

339341
// List returns the list of nodes in the snapshot.
340-
func (snapshot *basicSnapshotStoreNodeLister) List() ([]*schedulerframework.NodeInfo, error) {
342+
func (snapshot *basicSnapshotStoreNodeLister) List() ([]fwk.NodeInfo, error) {
341343
return (*BasicSnapshotStore)(snapshot).getInternalData().listNodeInfos(), nil
342344
}
343345

344346
// HavePodsWithAffinityList returns the list of nodes with at least one pods with inter-pod affinity
345-
func (snapshot *basicSnapshotStoreNodeLister) HavePodsWithAffinityList() ([]*schedulerframework.NodeInfo, error) {
347+
func (snapshot *basicSnapshotStoreNodeLister) HavePodsWithAffinityList() ([]fwk.NodeInfo, error) {
346348
return (*BasicSnapshotStore)(snapshot).getInternalData().listNodeInfosThatHavePodsWithAffinityList()
347349
}
348350

349351
// HavePodsWithRequiredAntiAffinityList returns the list of NodeInfos of nodes with pods with required anti-affinity terms.
350-
func (snapshot *basicSnapshotStoreNodeLister) HavePodsWithRequiredAntiAffinityList() ([]*schedulerframework.NodeInfo, error) {
352+
func (snapshot *basicSnapshotStoreNodeLister) HavePodsWithRequiredAntiAffinityList() ([]fwk.NodeInfo, error) {
351353
return (*BasicSnapshotStore)(snapshot).getInternalData().listNodeInfosThatHavePodsWithRequiredAntiAffinityList()
352354
}
353355

354356
// Returns the NodeInfo of the given node name.
355-
func (snapshot *basicSnapshotStoreNodeLister) Get(nodeName string) (*schedulerframework.NodeInfo, error) {
357+
func (snapshot *basicSnapshotStoreNodeLister) Get(nodeName string) (fwk.NodeInfo, error) {
356358
return (*BasicSnapshotStore)(snapshot).getInternalData().getNodeInfo(nodeName)
357359
}
358360

0 commit comments

Comments
 (0)