From 6c8d4ee9ee8354da06e38ab92741e09362d3e37a Mon Sep 17 00:00:00 2001 From: Francesco Romani Date: Thu, 10 Dec 2020 16:02:48 +0100 Subject: [PATCH] podresources: devices: add test for dev reporting Add test to reflect the correct behaviour according to review comments. Most notably, we should consider that -as the device plugin API allows to express- a device ID can have multiple "NUMA" node IDs. (example: AMD Rome). More details: https://github.com/kubernetes/kubernetes/pull/95734#discussion_r539545041 Signed-off-by: Francesco Romani --- .../apis/podresources/server_v1_test.go | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/pkg/kubelet/apis/podresources/server_v1_test.go b/pkg/kubelet/apis/podresources/server_v1_test.go index 3913879b7f4..4cb2f909f68 100644 --- a/pkg/kubelet/apis/podresources/server_v1_test.go +++ b/pkg/kubelet/apis/podresources/server_v1_test.go @@ -181,6 +181,31 @@ func TestAllocatableResources(t *testing.T) { ResourceName: "resource-nt", DeviceIds: []string{"devA"}, }, + { + ResourceName: "resource-mm", + DeviceIds: []string{"devM0"}, + Topology: &podresourcesapi.TopologyInfo{ + Nodes: []*podresourcesapi.NUMANode{ + { + ID: 0, + }, + }, + }, + }, + { + ResourceName: "resource-mm", + DeviceIds: []string{"devMM"}, + Topology: &podresourcesapi.TopologyInfo{ + Nodes: []*podresourcesapi.NUMANode{ + { + ID: 0, + }, + { + ID: 1, + }, + }, + }, + }, } allCPUs := []int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} @@ -238,6 +263,31 @@ func TestAllocatableResources(t *testing.T) { ResourceName: "resource-nt", DeviceIds: []string{"devA"}, }, + { + ResourceName: "resource-mm", + DeviceIds: []string{"devM0"}, + Topology: &podresourcesapi.TopologyInfo{ + Nodes: []*podresourcesapi.NUMANode{ + { + ID: 0, + }, + }, + }, + }, + { + ResourceName: "resource-mm", + DeviceIds: []string{"devMM"}, + Topology: &podresourcesapi.TopologyInfo{ + Nodes: []*podresourcesapi.NUMANode{ + { + ID: 0, + }, + { + ID: 1, + }, + }, + }, + }, }, }, }, @@ -273,6 +323,31 @@ func TestAllocatableResources(t *testing.T) { ResourceName: "resource-nt", DeviceIds: []string{"devA"}, }, + { + ResourceName: "resource-mm", + DeviceIds: []string{"devM0"}, + Topology: &podresourcesapi.TopologyInfo{ + Nodes: []*podresourcesapi.NUMANode{ + { + ID: 0, + }, + }, + }, + }, + { + ResourceName: "resource-mm", + DeviceIds: []string{"devMM"}, + Topology: &podresourcesapi.TopologyInfo{ + Nodes: []*podresourcesapi.NUMANode{ + { + ID: 0, + }, + { + ID: 1, + }, + }, + }, + }, }, }, },