Skip to content

Commit 6f3529f

Browse files
committed
Refactor tests
1 parent ea440b5 commit 6f3529f

4 files changed

Lines changed: 88 additions & 34 deletions

File tree

slice/config/dev/manager_config_patch.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
value: --zap-devel
55
- op: add
66
path: /spec/template/spec/containers/0/args/0
7-
value: --zap-log-level=5
7+
value: --zap-log-level=3
88
- op: add
99
path: /spec/template/spec/containers/0/args/0
1010
value: --retry-delay-on-slice-failure=0s

slice/config/rbac/role.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,16 @@ rules:
7878
- patch
7979
- update
8080
- watch
81+
- apiGroups:
82+
- leaderworkerset.x-k8s.io
83+
resources:
84+
- leaderworkersets
85+
verbs:
86+
- get
87+
- list
88+
- patch
89+
- update
90+
- watch
8191
- apiGroups:
8292
- kueue.x-k8s.io
8393
resources:
@@ -106,13 +116,3 @@ rules:
106116
- patch
107117
- update
108118
- watch
109-
- apiGroups:
110-
- leaderworkerset.x-k8s.io
111-
resources:
112-
- leaderworkersets
113-
verbs:
114-
- get
115-
- list
116-
- patch
117-
- update
118-
- watch

slice/internal/util/testingjobs/leaderworkerset/wrappers.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,3 +182,72 @@ func (w *Wrapper) LeaderNodeAffinity(key string, values []string) *Wrapper {
182182
)
183183
return w
184184
}
185+
186+
func (w *Wrapper) StartupPolicy(policy leaderworkersetv1.StartupPolicyType) *Wrapper {
187+
w.Spec.StartupPolicy = policy
188+
return w
189+
}
190+
191+
func (w *Wrapper) WorkerName(name string) *Wrapper {
192+
if len(w.Spec.LeaderWorkerTemplate.WorkerTemplate.Spec.Containers) == 0 {
193+
w.Spec.LeaderWorkerTemplate.WorkerTemplate.Spec.Containers = []corev1.Container{{}}
194+
}
195+
w.Spec.LeaderWorkerTemplate.WorkerTemplate.Spec.Containers[0].Name = name
196+
return w
197+
}
198+
199+
func (w *Wrapper) LeaderName(name string) *Wrapper {
200+
if w.Spec.LeaderWorkerTemplate.LeaderTemplate == nil {
201+
w.Spec.LeaderWorkerTemplate.LeaderTemplate = &corev1.PodTemplateSpec{}
202+
}
203+
if len(w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers) == 0 {
204+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers = []corev1.Container{{}}
205+
}
206+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers[0].Name = name
207+
return w
208+
}
209+
210+
func (w *Wrapper) LeaderImage(img string) *Wrapper {
211+
if w.Spec.LeaderWorkerTemplate.LeaderTemplate == nil {
212+
w.Spec.LeaderWorkerTemplate.LeaderTemplate = &corev1.PodTemplateSpec{}
213+
}
214+
if len(w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers) == 0 {
215+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers = []corev1.Container{{}}
216+
}
217+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers[0].Image = img
218+
return w
219+
}
220+
221+
func (w *Wrapper) LeaderArgs(args ...string) *Wrapper {
222+
if w.Spec.LeaderWorkerTemplate.LeaderTemplate == nil {
223+
w.Spec.LeaderWorkerTemplate.LeaderTemplate = &corev1.PodTemplateSpec{}
224+
}
225+
if len(w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers) == 0 {
226+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers = []corev1.Container{{}}
227+
}
228+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers[0].Args = args
229+
return w
230+
}
231+
232+
func (w *Wrapper) LeaderLimit(resourceName corev1.ResourceName, quantity string) *Wrapper {
233+
if w.Spec.LeaderWorkerTemplate.LeaderTemplate == nil {
234+
w.Spec.LeaderWorkerTemplate.LeaderTemplate = &corev1.PodTemplateSpec{}
235+
}
236+
if len(w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers) == 0 {
237+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers = []corev1.Container{{}}
238+
}
239+
if w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers[0].Resources.Limits == nil {
240+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers[0].Resources.Limits = make(corev1.ResourceList)
241+
}
242+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers[0].Resources.Limits[resourceName] = resource.MustParse(quantity)
243+
return w
244+
}
245+
246+
func (w *Wrapper) LeaderRequestAndLimit(resourceName corev1.ResourceName, quantity string) *Wrapper {
247+
w.LeaderLimit(resourceName, quantity)
248+
if w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers[0].Resources.Requests == nil {
249+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers[0].Resources.Requests = make(corev1.ResourceList)
250+
}
251+
w.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers[0].Resources.Requests[resourceName] = resource.MustParse(quantity)
252+
return w
253+
}

slice/test/e2e/subslice/lws_test.go

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"github.com/onsi/ginkgo/v2"
2323
"github.com/onsi/gomega"
2424
corev1 "k8s.io/api/core/v1"
25-
"k8s.io/apimachinery/pkg/api/resource"
2625
"sigs.k8s.io/controller-runtime/pkg/client"
2726
kueue "sigs.k8s.io/kueue/apis/kueue/v1beta2"
2827
"sigs.k8s.io/kueue/pkg/util/tas"
@@ -109,6 +108,8 @@ var _ = ginkgo.Describe("LWS Subslicing", func() {
109108
wrapper := testingjobslws.MakeLeaderWorkerSet(name, ns.Name).
110109
Queue(lq.Name).
111110
Size(tc.size).
111+
StartupPolicy(leaderworkersetv1.LeaderCreatedStartupPolicy).
112+
WorkerName("worker").
112113
WorkerImage(utils.E2eTestAgnHostImage).
113114
WorkerArgs(utils.BehaviorWaitForDeletion...).
114115
WorkerAnnotation(core.TPUSliceTopologyAnnotation, tc.topology).
@@ -117,34 +118,18 @@ var _ = ginkgo.Describe("LWS Subslicing", func() {
117118

118119
if tc.withLeader {
119120
wrapper = wrapper.
121+
LeaderName("leader").
122+
LeaderImage(utils.E2eTestAgnHostImage).
123+
LeaderArgs(utils.BehaviorWaitForDeletion...).
120124
LeaderAnnotation(core.TPUSliceTopologyAnnotation, tc.topology).
121125
LeaderNodeSelector("cloud.google.com/gke-tpu-accelerator", string(slice.TypeTpu7x))
122-
}
123-
124-
lws := wrapper.Obj()
125-
lws.Spec.StartupPolicy = leaderworkersetv1.LeaderCreatedStartupPolicy
126-
if len(lws.Spec.LeaderWorkerTemplate.WorkerTemplate.Spec.Containers) > 0 {
127-
lws.Spec.LeaderWorkerTemplate.WorkerTemplate.Spec.Containers[0].Name = "worker"
128-
}
129-
if tc.withLeader {
130-
container := corev1.Container{
131-
Name: "leader",
132-
Image: utils.E2eTestAgnHostImage,
133-
Args: utils.BehaviorWaitForDeletion,
134-
}
135126
if tc.leaderRequiresTPUs {
136-
container.Resources = corev1.ResourceRequirements{
137-
Limits: corev1.ResourceList{
138-
core.TPUResourceName: resource.MustParse("4"),
139-
},
140-
Requests: corev1.ResourceList{
141-
core.TPUResourceName: resource.MustParse("4"),
142-
},
143-
}
127+
wrapper = wrapper.LeaderRequestAndLimit(core.TPUResourceName, "4")
144128
}
145-
lws.Spec.LeaderWorkerTemplate.LeaderTemplate.Spec.Containers = []corev1.Container{container}
146129
}
147130

131+
lws := wrapper.Obj()
132+
148133
ginkgo.By("Creating a LeaderWorkerSet", func() {
149134
utils.MustCreate(ctx, k8sClient, lws)
150135
})

0 commit comments

Comments
 (0)