aws / aws/amazon-cloudwatch-agent-operator
Tolerations not applied to the DcgmExporter DaemonSet
- Dominant language
- Go
- Stars
- 31
- Forks
- 40
- Avg merge
- 6d 15h
- Merged PRs (30d)
- 3
Description
## What I have done
I have added a toleration to `DcgmExporter` that I found [here](https://github.com/aws-samples/amazon-cloudwatch-container-insights/blob/main/k8s-quickstart/cwagent-operator-rendered.yaml) but using the DcgmExporter definition from your repository.
```yaml
apiVersion: cloudwatch.aws.amazon.com/v1alpha1
kind: DcgmExporter
metadata:
name: dcgm-exporter
namespace: amazon-cloudwatch
labels:
k8s-app: dcgm-exporter
version: v1
spec:
image: nvcr.io/nvidia/k8s/dcgm-exporter:3.3.3-3.3.1-ubuntu22.04
nodeSelector:
kubernetes.io/os: linux
serviceAccount: dcgm-exporter-service-acct
tolerations:
- key: "nvidia.com/gpu"
operator: "Exists"
effect: "NoSchedule"
[...]
```
## Problem
The toleration is missing in the generated DaemonSet.
## Workaround
Our AWS Solutions Architect has found a workaround by adding manually the toleration to the DaemonSet.
```bash
kubectl patch daemonset dcgm-exporter -n amazon-cloudwatch --type='json' -p='[ { "op": "add", "path": "/spec/template/spec/tolerations", "value": [ { "key": "nvidia.com/gpu", "operator": "Exists", "effect": "NoSchedule" } ] } ]'
```
Contributor guide
Research direction
Start by tracing the DcgmExporter entry point through reconciliation to the generated DaemonSet and compare how the example tolerations are handled. Done means the configured toleration appears in the generated DaemonSet and the behavior is covered by the relevant operator test, if one exists.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- devops, infrastructure
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100