in pkg/controller/core/workload_controller.go [420:451]
func (r *WorkloadReconciler) handlePodLimitRange(log logr.Logger, wl *kueue.Workload) {
ctx := context.TODO()
// get the list of limit ranges
var list corev1.LimitRangeList
if err := r.client.List(ctx, &list, &client.ListOptions{Namespace: wl.Namespace}, client.MatchingFields{indexer.LimitRangeHasContainerType: "true"}); err != nil {
log.Error(err, "Could not list LimitRanges")
return
}
if len(list.Items) == 0 {
return
}
summary := limitrange.Summarize(list.Items...)
containerLimits, found := summary[corev1.LimitTypeContainer]
if !found {
return
}
for pi := range wl.Spec.PodSets {
pod := &wl.Spec.PodSets[pi].Template.Spec
for ci := range pod.InitContainers {
res := &pod.InitContainers[ci].Resources
res.Limits = resource.MergeResourceListKeepFirst(res.Limits, containerLimits.Default)
res.Requests = resource.MergeResourceListKeepFirst(res.Requests, containerLimits.DefaultRequest)
}
for ci := range pod.Containers {
res := &pod.Containers[ci].Resources
res.Limits = resource.MergeResourceListKeepFirst(res.Limits, containerLimits.Default)
res.Requests = resource.MergeResourceListKeepFirst(res.Requests, containerLimits.DefaultRequest)
}
}
}