Merge pull request #112387 from mythi/kubelet-devicemanager-topologyinfo

devicemanager: do not leak empty TopologyInfo to TopologyManager
This commit is contained in:
Kubernetes Prow Robot 2022-09-14 07:17:00 -07:00 committed by GitHub
commit c45ca46cdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 4 deletions

View File

@ -137,9 +137,9 @@ func (m *ManagerImpl) GetPodTopologyHints(pod *v1.Pod) map[string][]topologymana
}
func (m *ManagerImpl) deviceHasTopologyAlignment(resource string) bool {
// If any device has Topology set, we assume they care about alignment.
for device := range m.allDevices[resource] {
if m.allDevices[resource][device].Topology != nil {
// If any device has Topology NUMANodes available, we assume they care about alignment.
for _, device := range m.allDevices[resource] {
if device.Topology != nil && len(device.Topology.Nodes) > 0 {
return true
}
}

View File

@ -102,7 +102,7 @@ func TestGetTopologyHints(t *testing.T) {
return tc.expectedHints[r][i].LessThan(tc.expectedHints[r][j])
})
if !reflect.DeepEqual(hints[r], tc.expectedHints[r]) {
t.Errorf("%v: Expected result to be %v, got %v", tc.description, tc.expectedHints[r], hints[r])
t.Errorf("%v: Expected result to be %#v, got %#v", tc.description, tc.expectedHints[r], hints[r])
}
}
}
@ -1006,6 +1006,8 @@ func getCommonTestCases() []topologyHintTestCase {
"testdevice": {
{ID: "Dev1"},
{ID: "Dev2"},
{ID: "Dev3", Topology: &pluginapi.TopologyInfo{Nodes: []*pluginapi.NUMANode{}}},
{ID: "Dev4", Topology: &pluginapi.TopologyInfo{Nodes: nil}},
},
},
expectedHints: map[string][]topologymanager.TopologyHint{