Skip to content

Commit c05297a

Browse files
committed
[clusteragent] Fix wrong computation of the init container resources
1 parent c193822 commit c05297a

File tree

1 file changed

+40
-16
lines changed

1 file changed

+40
-16
lines changed

pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation.go

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -300,16 +300,24 @@ func podSumRessourceRequirements(pod *corev1.Pod) corev1.ResourceRequirements {
300300
// we need to add it's resources to the main container's resources
301301
continue
302302
}
303-
if limit, ok := c.Resources.Limits[k]; ok {
304-
existing := ressourceRequirement.Limits[k]
305-
if limit.Cmp(existing) == 1 {
306-
ressourceRequirement.Limits[k] = limit
303+
304+
request, requestFound := c.Resources.Requests[k]
305+
limit, limitFound := c.Resources.Limits[k]
306+
307+
if requestFound {
308+
maxRequest := ressourceRequirement.Requests[k]
309+
if request.Cmp(maxRequest) == 1 {
310+
ressourceRequirement.Requests[k] = request
307311
}
308312
}
309-
if request, ok := c.Resources.Requests[k]; ok {
310-
existing := ressourceRequirement.Requests[k]
311-
if request.Cmp(existing) == 1 {
312-
ressourceRequirement.Requests[k] = request
313+
314+
if limitFound || requestFound {
315+
if !limitFound {
316+
limit = request
317+
}
318+
maxLimit := ressourceRequirement.Limits[k]
319+
if limit.Cmp(maxLimit) == 1 {
320+
ressourceRequirement.Limits[k] = limit
313321
}
314322
}
315323
}
@@ -318,23 +326,39 @@ func podSumRessourceRequirements(pod *corev1.Pod) corev1.ResourceRequirements {
318326
reqSum := resource.Quantity{}
319327
for i := range pod.Spec.Containers {
320328
c := &pod.Spec.Containers[i]
321-
if l, ok := c.Resources.Limits[k]; ok {
322-
limitSum.Add(l)
329+
330+
request, requestFound := c.Resources.Requests[k]
331+
limit, limitFound := c.Resources.Limits[k]
332+
333+
if requestFound {
334+
reqSum.Add(request)
323335
}
324-
if l, ok := c.Resources.Requests[k]; ok {
325-
reqSum.Add(l)
336+
337+
if requestFound || limitFound {
338+
if !limitFound {
339+
limit = request
340+
}
341+
limitSum.Add(limit)
326342
}
327343
}
328344
for i := range pod.Spec.InitContainers {
329345
c := &pod.Spec.InitContainers[i]
330346
if !initContainerIsSidecar(c) {
331347
continue
332348
}
333-
if l, ok := c.Resources.Limits[k]; ok {
334-
limitSum.Add(l)
349+
350+
request, requestFound := c.Resources.Requests[k]
351+
limit, limitFound := c.Resources.Limits[k]
352+
353+
if requestFound {
354+
reqSum.Add(request)
335355
}
336-
if l, ok := c.Resources.Requests[k]; ok {
337-
reqSum.Add(l)
356+
357+
if requestFound || limitFound {
358+
if !limitFound {
359+
limit = request
360+
}
361+
limitSum.Add(limit)
338362
}
339363
}
340364

0 commit comments

Comments
 (0)