Skip to content

Commit

Permalink
Merge pull request #907 from tenzen-y/sort-usage-resources
Browse files Browse the repository at this point in the history
[Cache] Sort resourceUsages according to resourceName
  • Loading branch information
k8s-ci-robot committed Jun 27, 2023
2 parents 8596b6a + 7131a1c commit bef96eb
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 1 deletion.
9 changes: 9 additions & 0 deletions pkg/cache/cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"context"
"errors"
"fmt"
"sort"
"sync"

corev1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -879,6 +880,10 @@ func (c *Cache) Usage(cqObj *kueue.ClusterQueue) ([]kueue.FlavorUsage, int, erro
}
outFlvUsage.Resources = append(outFlvUsage.Resources, rUsage)
}
// The resourceUsages should be in a stable order to avoid endless creation of update events.
sort.Slice(outFlvUsage.Resources, func(i, j int) bool {
return outFlvUsage.Resources[i].Name < outFlvUsage.Resources[j].Name
})
usage = append(usage, outFlvUsage)
}
}
Expand Down Expand Up @@ -912,6 +917,10 @@ func (c *Cache) LocalQueueUsage(qObj *kueue.LocalQueue) ([]kueue.LocalQueueFlavo
Total: workload.ResourceQuantity(rName, flvUsage[rName]),
})
}
// The resourceUsages should be in a stable order to avoid endless creation of update events.
sort.Slice(outFlvUsage.Resources, func(i, j int) bool {
return outFlvUsage.Resources[i].Name < outFlvUsage.Resources[j].Name
})
qFlvUsages = append(qFlvUsages, outFlvUsage)
}
}
Expand Down
65 changes: 64 additions & 1 deletion pkg/cache/cache_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1327,7 +1327,15 @@ func TestClusterQueueUsage(t *testing.T) {
*utiltesting.MakeFlavorQuotas("model_b").
Resource("example.com/gpu", "5").
Obj(),
).Cohort("one").Obj()
).
ResourceGroup(
*utiltesting.MakeFlavorQuotas("interconnect_a").
Resource("example.com/vf-0", "5", "5").
Resource("example.com/vf-1", "5", "5").
Resource("example.com/vf-2", "5", "5").
Obj(),
).
Cohort("one").Obj()
cqWithOutCohort := cq.DeepCopy()
cqWithOutCohort.Spec.Cohort = ""
workloads := []kueue.Workload{
Expand Down Expand Up @@ -1372,6 +1380,14 @@ func TestClusterQueueUsage(t *testing.T) {
Name: "example.com/gpu",
}},
},
{
Name: "interconnect_a",
Resources: []kueue.ResourceUsage{
{Name: "example.com/vf-0"},
{Name: "example.com/vf-1"},
{Name: "example.com/vf-2"},
},
},
},
wantWorkloads: 1,
},
Expand Down Expand Up @@ -1402,6 +1418,14 @@ func TestClusterQueueUsage(t *testing.T) {
Borrowed: resource.MustParse("1"),
}},
},
{
Name: "interconnect_a",
Resources: []kueue.ResourceUsage{
{Name: "example.com/vf-0"},
{Name: "example.com/vf-1"},
{Name: "example.com/vf-2"},
},
},
},
wantWorkloads: 2,
},
Expand Down Expand Up @@ -1432,6 +1456,14 @@ func TestClusterQueueUsage(t *testing.T) {
Borrowed: resource.MustParse("0"),
}},
},
{
Name: "interconnect_a",
Resources: []kueue.ResourceUsage{
{Name: "example.com/vf-0"},
{Name: "example.com/vf-1"},
{Name: "example.com/vf-2"},
},
},
},
wantWorkloads: 2,
},
Expand Down Expand Up @@ -1475,6 +1507,13 @@ func TestLocalQueueUsage(t *testing.T) {
*utiltesting.MakeFlavorQuotas("model-b").
Resource("example.com/gpu", "5").Obj(),
).
ResourceGroup(
*utiltesting.MakeFlavorQuotas("interconnect-a").
Resource("example.com/vf-0", "5", "5").
Resource("example.com/vf-1", "5", "5").
Resource("example.com/vf-2", "5", "5").
Obj(),
).
Obj()
localQueue := *utiltesting.MakeLocalQueue("test", "ns1").
ClusterQueue("foo").Obj()
Expand Down Expand Up @@ -1522,6 +1561,14 @@ func TestLocalQueueUsage(t *testing.T) {
},
},
},
{
Name: "interconnect-a",
Resources: []kueue.LocalQueueResourceUsage{
{Name: "example.com/vf-0"},
{Name: "example.com/vf-1"},
{Name: "example.com/vf-2"},
},
},
},
},
"all workloads are admitted": {
Expand Down Expand Up @@ -1576,6 +1623,14 @@ func TestLocalQueueUsage(t *testing.T) {
},
},
},
{
Name: "interconnect-a",
Resources: []kueue.LocalQueueResourceUsage{
{Name: "example.com/vf-0"},
{Name: "example.com/vf-1"},
{Name: "example.com/vf-2"},
},
},
},
},
"some workloads are inadmissible": {
Expand Down Expand Up @@ -1624,6 +1679,14 @@ func TestLocalQueueUsage(t *testing.T) {
},
},
},
{
Name: "interconnect-a",
Resources: []kueue.LocalQueueResourceUsage{
{Name: "example.com/vf-0"},
{Name: "example.com/vf-1"},
{Name: "example.com/vf-2"},
},
},
},
},
}
Expand Down

0 comments on commit bef96eb

Please sign in to comment.