func GetPodEffectiveRequest()

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
}