[EKS] [request]: EFS CSI Helm chart and add-on should allow to modify node DaemonSet "updateStrategy"
- Dominant language
- Shell
- Stars
- 5.4k
- Forks
- 334
- PR merge metrics
- No merged PRs in 30d
Description
### Community Note
* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment
**Tell us about your request**
Currently neither the EFS CSI Helm chart [here](https://github.com/kubernetes-sigs/aws-efs-csi-driver/tree/master/charts/aws-efs-csi-driver) nor the EKS managed add-on **aws-efs-csi-driver** allow to modify the node DaemonSet's `spec.updateStrategy`. It is hard-coded to the default `type: RollingUpdate`.
I want to make `spec.updateStrategy` configurable, which would then allow it to be set to `type: OnDelete`.
**Which service(s) is this request for?**
EKS
**Tell us about the problem you're trying to solve. What are you trying to do?**
Currently a restart of the EFS CSI's node DaemonSet pod potentially leaves application pods using active EFS mounts unusable.
Because efs-proxy/stunnel run as children of the driver process inside the efs-plugin container's PID namespace (the DaemonSet sets no hostPID), any restart of that container - including a routine rolling update from an add-on/Helm config change - kills the proxy for every live EFS mount on the node, leaving each kernel NFS mount pointing at 127.0.0.1: with nothing listening. Application pods doing I/O in that window block in uninterruptible sleep on a hard NFS mount and usually resume once amazon-efs-mount-watchdog relaunches the proxy, but any pod deleted while its mount is dead can never be torn down - SIGKILL cannot reach a thread in D state and NodeUnpublishVolume then blocks in its GetDeviceName → EvalSymlinks → Lstat pre-check - so on a cluster with high pod churn a fleet-wide rollout reliably leaves pods stuck in Terminating for the life of the node.
Using `spec.updateStrategy` with `type: OnDelete` would allow to update the EFS CSI node component in a controlled way, only when nodes are cordoned and drained or terminated aka only new nodes would get the new DaemonSet configuration.
**Are you currently working around this issue?**
How are you currently solving this problem?
N/A
Contributor guide
Research direction
Start with the EFS CSI Helm chart at charts/aws-efs-csi-driver and inspect how the node DaemonSet update strategy is defined. Then review the EKS managed add-on configuration path and determine how both surfaces can expose the setting. Done means users can select OnDelete for the node DaemonSet without breaking the existing RollingUpdate default.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, helm, kubernetes
- Domain
- cloud, devops, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100