diff --git a/pkg/runtime/framework/plugins/jobset/builder.go b/pkg/runtime/framework/plugins/jobset/builder.go index eb5e653b8f..afd95c4856 100644 --- a/pkg/runtime/framework/plugins/jobset/builder.go +++ b/pkg/runtime/framework/plugins/jobset/builder.go @@ -115,11 +115,17 @@ func (b *Builder) Trainer(info *runtime.Info, trainJob *trainer.TrainJob) *Build if args := trainJob.Spec.Trainer.Args; args != nil { b.Spec.ReplicatedJobs[i].Template.Spec.Template.Spec.Containers[j].Args = args } - if resourcesPerNode := trainJob.Spec.Trainer.ResourcesPerNode; resourcesPerNode != nil { + if resourcesPerNode := trainJob.Spec.Trainer.ResourcesPerNode; resourcesPerNode != nil && + (resourcesPerNode.Limits != nil || resourcesPerNode.Requests != nil) { + requirements := corev1ac.ResourceRequirements() + if limits := resourcesPerNode.Limits; limits != nil { + requirements.WithLimits(limits) + } + if requests := resourcesPerNode.Requests; requests != nil { + requirements.WithRequests(requests) + } b.Spec.ReplicatedJobs[i].Template.Spec.Template.Spec.Containers[j]. - WithResources(corev1ac.ResourceRequirements(). - WithRequests(resourcesPerNode.Requests). - WithLimits(resourcesPerNode.Limits)) + WithResources(requirements) } } // Update values from the Info object.