-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add option to override driver + executor memory limit using webhook #2383
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Netanel Levine <netanellevine123@gmail.com>
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hi there, I'm from @netanellevine team, this feature was proven to be very important to us, as instead of defining for each app the max memory amount used, we were able to define a much lower number and save both time and money. |
@netanellevine @bnetzi I am glad you were able to take that on. It seems like a very useful enhancement. I am wondering if you would need UT as well. I would be happy to help on that (it would be my first contribution, so let me know if I am a distraction ). |
Hi @danielrsfreitas we will be glad if you can add UT, we didn't got to it (although we did build it and tested it in our env) |
|
||
// Apply the memory limit to the container's resources | ||
logger.Info(fmt.Sprintf("Adding memory limit %s to container in pod %s", *memoryLimit, pod.Name)) | ||
pod.Spec.Containers[i].Resources.Limits[corev1.ResourceMemory] = limitQuantity |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was only able to make my unit tests work after initializing the pod.Spec.Containers.Resources.Limits
, like this
pod.Spec.Containers[i].Resources.Limits = corev1.ResourceList{}
pod.Spec.Containers[i].Resources.Limits[corev1.ResourceMemory] = limitQuantity
Purpose of this PR
Add an option to override the driver and executor memory limit as by default spark uses equal limit and request.
It is Done by webhook as the pod template does not support overriding the memory limit.
Change Category
Rationale
For many use cases, it makes sense to share memory between pods as they don't all peak simultaneously. Limit allows better resources allocation
Checklist