@@ -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+ }
0 commit comments