in pkg/util/resource.go [50:77]
func GetPodEffectiveRequest(pod *v1.Pod) v1.ResourceList {
initResources := make(v1.ResourceList)
resources := make(v1.ResourceList)
for _, container := range pod.Spec.InitContainers {
for name, quantity := range container.Resources.Requests {
if q, ok := initResources[name]; ok && quantity.Cmp(q) <= 0 {
continue
}
initResources[name] = quantity
}
}
for _, container := range pod.Spec.Containers {
for name, quantity := range container.Resources.Requests {
if q, ok := resources[name]; ok {
quantity.Add(q)
}
resources[name] = quantity
}
}
for name, quantity := range initResources {
if q, ok := resources[name]; ok && quantity.Cmp(q) <= 0 {
continue
}
resources[name] = quantity
}
return resources
}