Skip to content

Commit cd54de8

Browse files
committed
nrt: fix handling of ephemeral-storage requests
Add ephemeral-storage to the special-case handling for resources which lack NUMA affinity. Signed-off-by: Phil Sphicas <[email protected]>
1 parent 7a5b855 commit cd54de8

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

pkg/noderesourcetopology/filter.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,9 @@ func resourcesAvailableInAnyNUMANodes(logID string, numaNodes NUMANodeList, reso
131131
klog.V(6).InfoS("feasible", "logID", logID, "node", nodeName, "NUMA", numaNode.NUMAID, "resource", resource)
132132
}
133133

134-
if !hasNUMAAffinity && !v1helper.IsNativeResource(resource) {
134+
// non-native resources or ephemeral-storage may not expose NUMA affinity,
135+
// but since they are available at node level, this is fine
136+
if !hasNUMAAffinity && (!v1helper.IsNativeResource(resource) || resource == v1.ResourceEphemeralStorage) {
135137
klog.V(6).InfoS("resource available at node level (no NUMA affinity)", "logID", logID, "node", nodeName, "resource", resource)
136138
continue
137139
}

pkg/noderesourcetopology/filter_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,16 @@ func TestNodeResourceTopology(t *testing.T) {
661661
node: nodes[1],
662662
wantStatus: nil,
663663
},
664+
{
665+
name: "Guaranteed QoS, ephemeral-storage (non-NUMA), pod fit",
666+
pod: makePodByResourceList(&v1.ResourceList{
667+
v1.ResourceCPU: *resource.NewQuantity(2, resource.DecimalSI),
668+
v1.ResourceMemory: resource.MustParse("2Gi"),
669+
v1.ResourceEphemeralStorage: resource.MustParse("100Mi"),
670+
}),
671+
node: nodes[1],
672+
wantStatus: nil,
673+
},
664674
}
665675

666676
fakeClient := faketopologyv1alpha2.NewSimpleClientset()

0 commit comments

Comments
 (0)