From 7a1ed13abe9b6a28ada1d3ebffec3e9220c7ef00 Mon Sep 17 00:00:00 2001 From: Seth Jennings Date: Thu, 1 Feb 2018 17:12:00 -0600 Subject: [PATCH] UPSTREAM: 58574: fixing array out of bound by checking initContainers instead of containers --- .../k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go index f8be310b34cc..8c5931967293 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go @@ -590,7 +590,7 @@ func memory(stats statsFunc) cmpFunc { } // podRequest returns the total resource request of a pod which is the -// max(sum of init container requests, sum of container requests) +// max(max of init container requests, sum of container requests) func podRequest(pod *v1.Pod, resourceName v1.ResourceName) resource.Quantity { containerValue := resource.Quantity{Format: resource.BinarySI} if resourceName == resourceDisk && !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) { @@ -609,9 +609,13 @@ func podRequest(pod *v1.Pod, resourceName v1.ResourceName) resource.Quantity { for i := range pod.Spec.InitContainers { switch resourceName { case v1.ResourceMemory: - containerValue.Add(*pod.Spec.Containers[i].Resources.Requests.Memory()) + if initValue.Cmp(*pod.Spec.InitContainers[i].Resources.Requests.Memory()) < 0 { + initValue = *pod.Spec.InitContainers[i].Resources.Requests.Memory() + } case resourceDisk: - containerValue.Add(*pod.Spec.Containers[i].Resources.Requests.StorageEphemeral()) + if initValue.Cmp(*pod.Spec.InitContainers[i].Resources.Requests.StorageEphemeral()) < 0 { + initValue = *pod.Spec.InitContainers[i].Resources.Requests.StorageEphemeral() + } } } if containerValue.Cmp(initValue) > 0 {