Skip to content
This repository was archived by the owner on May 25, 2023. It is now read-only.

Commit e0a3454

Browse files
committed
Add e2e test for different task resources
1 parent b43b06a commit e0a3454

File tree

2 files changed

+51
-1
lines changed

2 files changed

+51
-1
lines changed

test/e2e/job.go

+45-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ var _ = Describe("Job E2E Test", func() {
105105
err = waitPodGroupPending(context, pg)
106106
Expect(err).NotTo(HaveOccurred())
107107

108-
waitPodGroupUnschedulable(context, pg)
108+
err = waitPodGroupUnschedulable(context, pg)
109109
Expect(err).NotTo(HaveOccurred())
110110

111111
err = deleteReplicaSet(context, replicaset.Name)
@@ -325,4 +325,48 @@ var _ = Describe("Job E2E Test", func() {
325325
err = waitTasksReadyEx(context, pg, expteced)
326326
Expect(err).NotTo(HaveOccurred())
327327
})
328+
329+
It("Try to fit unassigned task with different resource requests in one loop", func() {
330+
context := initTestContext()
331+
defer cleanupTestContext(context)
332+
333+
slot := oneCPU
334+
rep := clusterSize(context, slot)
335+
minMemberOverride := int32(1)
336+
337+
replicaset := createReplicaSet(context, "rs-1", rep-1, "nginx", slot)
338+
err := waitReplicaSetReady(context, replicaset.Name)
339+
Expect(err).NotTo(HaveOccurred())
340+
341+
_, pg := createJobEx(context, &jobSpec{
342+
name: "multi-task-diff-resource-job",
343+
tasks: []taskSpec{
344+
{
345+
img: "nginx",
346+
pri: masterPriority,
347+
min: 1,
348+
rep: 1,
349+
req: twoCPU,
350+
},
351+
{
352+
img: "nginx",
353+
pri: workerPriority,
354+
min: 1,
355+
rep: 1,
356+
req: halfCPU,
357+
},
358+
},
359+
minMember: &minMemberOverride,
360+
})
361+
362+
err = waitPodGroupPending(context, pg)
363+
Expect(err).NotTo(HaveOccurred())
364+
365+
err = waitPodGroupUnschedulable(context, pg)
366+
Expect(err).NotTo(HaveOccurred())
367+
368+
// task_1 has been scheduled
369+
err = waitTasksReady(context, pg, int(minMemberOverride))
370+
Expect(err).NotTo(HaveOccurred())
371+
})
328372
})

test/e2e/util.go

+6
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import (
4747

4848
var oneMinute = 1 * time.Minute
4949

50+
var halfCPU = v1.ResourceList{"cpu": resource.MustParse("500m")}
5051
var oneCPU = v1.ResourceList{"cpu": resource.MustParse("1000m")}
5152
var twoCPU = v1.ResourceList{"cpu": resource.MustParse("2000m")}
5253
var threeCPU = v1.ResourceList{"cpu": resource.MustParse("3000m")}
@@ -259,6 +260,7 @@ type jobSpec struct {
259260
namespace string
260261
queue string
261262
tasks []taskSpec
263+
minMember *int32
262264
}
263265

264266
func getNS(context *context, job *jobSpec) string {
@@ -328,6 +330,10 @@ func createJobEx(context *context, job *jobSpec) ([]*batchv1.Job, *arbv1.PodGrou
328330
},
329331
}
330332

333+
if job.minMember != nil {
334+
pg.Spec.MinMember = *job.minMember
335+
}
336+
331337
podgroup, err := context.karclient.Scheduling().PodGroups(pg.Namespace).Create(pg)
332338
Expect(err).NotTo(HaveOccurred())
333339

0 commit comments

Comments
 (0)