Navigation Menu

Skip to content

Commit

Permalink
kubectl: take pod overhead into account
Browse files Browse the repository at this point in the history
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
  • Loading branch information
Eric Ernst committed Aug 27, 2019
1 parent a76d7fd commit 7922d73
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion staging/src/k8s.io/kubectl/pkg/util/resource/resource.go
Expand Up @@ -28,7 +28,9 @@ import (
)

// PodRequestsAndLimits returns a dictionary of all defined resources summed up for all
// containers of the pod.
// containers of the pod. If pod overhead is non-nil, the pod overhead is added to the
// total container resource requests and to the total container limits which have a
// non-zero quantity.
func PodRequestsAndLimits(pod *corev1.Pod) (reqs, limits corev1.ResourceList) {
reqs, limits = corev1.ResourceList{}, corev1.ResourceList{}
for _, container := range pod.Spec.Containers {
Expand All @@ -40,6 +42,18 @@ func PodRequestsAndLimits(pod *corev1.Pod) (reqs, limits corev1.ResourceList) {
maxResourceList(reqs, container.Resources.Requests)
maxResourceList(limits, container.Resources.Limits)
}

// Add overhead for running a pod to the sum of requests and to non-zero limits:
if pod.Spec.Overhead != nil {
addResourceList(reqs, pod.Spec.Overhead)

for name, quantity := range pod.Spec.Overhead {
if value, ok := limits[name]; ok && !value.IsZero() {
value.Add(quantity)
limits[name] = value
}
}
}
return
}

Expand Down

0 comments on commit 7922d73

Please sign in to comment.