mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 18:31:15 +00:00
e2e dra: fix resource limits in a mixed cluster
The check for "resources available on a node" must treat nodes that are not listed as "no resources available". The previous logic only worked because all nodes were listed during E2E testing. The upcoming integration testing is covering additional scenarios and triggered this broken case.
This commit is contained in:
parent
98406e2a3e
commit
20d7fa2771
@ -198,8 +198,9 @@ func (c *ExampleController) allocate(ctx context.Context, claim *resourcev1alpha
|
||||
// number of allocations (even spreading) or the most (packing).
|
||||
node = viableNodes[rand.Intn(len(viableNodes))]
|
||||
logger.Info("picked a node ourselves", "selectedNode", selectedNode)
|
||||
} else if c.resources.MaxAllocations > 0 &&
|
||||
c.countAllocations(node) >= c.resources.MaxAllocations {
|
||||
} else if !contains(c.resources.Nodes, node) ||
|
||||
c.resources.MaxAllocations > 0 &&
|
||||
c.countAllocations(node) >= c.resources.MaxAllocations {
|
||||
return nil, fmt.Errorf("resources exhausted on node %q", node)
|
||||
}
|
||||
} else {
|
||||
@ -292,7 +293,7 @@ func (c *ExampleController) UnsuitableNodes(ctx context.Context, pod *v1.Pod, cl
|
||||
// can only work if a node has capacity left
|
||||
// for all of them. Also, nodes that the driver
|
||||
// doesn't run on cannot be used.
|
||||
if contains(c.resources.Nodes, node) &&
|
||||
if !contains(c.resources.Nodes, node) ||
|
||||
allocationsPerNode[node]+len(claims) > c.resources.MaxAllocations {
|
||||
claim.UnsuitableNodes = append(claim.UnsuitableNodes, node)
|
||||
}
|
||||
@ -305,7 +306,7 @@ func (c *ExampleController) UnsuitableNodes(ctx context.Context, pod *v1.Pod, cl
|
||||
for _, claim := range claims {
|
||||
claim.UnsuitableNodes = nil
|
||||
for _, node := range potentialNodes {
|
||||
if contains(c.resources.Nodes, node) &&
|
||||
if !contains(c.resources.Nodes, node) ||
|
||||
allocations+len(claims) > c.resources.MaxAllocations {
|
||||
claim.UnsuitableNodes = append(claim.UnsuitableNodes, node)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user