in pkg/trimaran/resourcestats.go [125:147]
func GetEffectiveResource(pod *v1.Pod, fn func(container *v1.Container) v1.ResourceList) *framework.Resource {
result := &framework.Resource{}
// add up resources of all containers
for _, container := range pod.Spec.Containers {
result.Add(fn(&container))
}
// take max(sum_pod, any_init_container)
for _, container := range pod.Spec.InitContainers {
for rName, rQuantity := range fn(&container) {
switch rName {
case v1.ResourceCPU:
setMax(&result.MilliCPU, rQuantity.MilliValue())
case v1.ResourceMemory:
setMax(&result.Memory, rQuantity.Value())
}
}
}
// add any pod overhead
if pod.Spec.Overhead != nil {
result.Add(pod.Spec.Overhead)
}
return result
}