func checkInitContainerRequest()

in pkg/common/resource.go [164:196]


func checkInitContainerRequest(pod *v1.Pod, containersResources *si.Resource, containerStatuses map[string]*v1.ContainerStatus) *si.Resource {
	updatedRes := containersResources

	// update total pod resource usage with sidecar containers
	for _, c := range pod.Spec.InitContainers {
		if isSideCarContainer(&c) {
			sideCarResources := computeContainerResource(pod, &c, containerStatuses)
			updatedRes = Add(updatedRes, sideCarResources)
		}
	}

	var sideCarRequests *si.Resource // cumulative value of sidecar requests so far
	for _, c := range pod.Spec.InitContainers {
		ICResource := computeContainerResource(pod, &c, containerStatuses)
		if isSideCarContainer(&c) {
			sideCarRequests = Add(sideCarRequests, ICResource)
		}
		ICResource = Add(ICResource, sideCarRequests)
		for resourceName, ICRequest := range ICResource.Resources {
			containersRequests, exist := updatedRes.Resources[resourceName]
			// additional resource request from init cont, add it to request.
			if !exist {
				updatedRes.Resources[resourceName] = ICRequest
				continue
			}
			if ICRequest.GetValue() > containersRequests.GetValue() {
				updatedRes.Resources[resourceName] = ICRequest
			}
		}
	}

	return updatedRes
}