aws / aws/amazon-cloudwatch-agent-operator

Tolerations not applied to the DcgmExporter DaemonSet

Open
#290 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.