[aws-efa-k8s-device-plugin] Allow overriding container command / args
- Dominant language
- Mustache
- Stars
- 1.3k
- Forks
- 1.1k
- Avg merge
- 22m
- Merged PRs (30d)
- 5
Description
**Is your feature request related to a problem?**
We use Karpenter to spin up EKS nodes, and it will dynamically decide whether to launch a node with EFA enabled or not based on resource requirements. There are no easy labels to tell nodes with / without EFA support apart. The EFA plugin daemonset crashloops on nodes where EFA is not enabled. For us, we would like to sleep forever and not run the `efa-k8s-device-plugin` binary if the node doesn't have EFA enabled. I know this is probably not desired behavior for everyone, so we would like the ability to customize `command` and `args` ourselves to implement this behavior
**Is your feature request related to a specific Helm chart, if yes mention name of the chart?**
aws-efa-k8s-device-plugin
**Describe the solution you'd like**
Add the ability to specify a custom `command` / `args` for the `aws-efa-k8s-device-plugin` daemonset
**Describe alternatives you've considered**
We have forked the helm chart to manually add the following to the daemonset:
```yaml
spec:
template:
spec:
containers:
- name: aws-efa-k8s-device-plugin
command:
- bash
args:
- '-c'
- 'if [[ ! -e /dev/infiniband/uverbs0 ]]; then echo "EFA not enabled, sleeping forever"; sleep infinity; else exec efa-k8s-device-plugin; fi'
```
But we would like to use the upstream helm chart if possible.
Contributor guide
Research direction
Start by locating the aws-efa-k8s-device-plugin Helm chart's values and DaemonSet template, then inspect how the container command is currently defined. Add configurable command and args values for the chart and verify that the rendered DaemonSet uses them while preserving the default behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- helm, kubernetes
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100