func GetEffectiveResource()

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
}