Skip to content

Helm chart should expose resource limits/requests as configurable values #98

Description

@paymog

Problem

The Helm chart hardcodes resource limits and requests for the manager container in templates/all.yaml:

resources:
  limits:
    cpu: 100m
    memory: 256Mi
  requests:
    cpu: 100m
    memory: 256Mi

There is no way to override these via values.yaml since the file is empty and the template doesn't use {{ .Values }} for resource configuration.

Impact

In environments with many DopplerSecret resources (we have 5, reconciling ~190 deployments each), the manager container regularly OOMKills at the 256Mi limit. We've seen 10+ restarts over 15 days due to this.

Requested Change

Expose resource limits/requests as configurable Helm values, e.g.:

# values.yaml
resources:
  manager:
    limits:
      cpu: 100m
      memory: 256Mi
    requests:
      cpu: 100m
      memory: 256Mi
  kubeRbacProxy:
    limits:
      cpu: 100m
      memory: 128Mi
    requests:
      cpu: 100m
      memory: 128Mi

This is a standard pattern for Helm charts and would allow operators to tune resources based on their workload without needing to patch the deployment post-install.

Workaround

Currently we manually patch the deployment after Helm install:

kubectl set resources deployment doppler-operator-controller-manager -n doppler-operator-system -c manager --limits=memory=512Mi --requests=memory=512Mi

This is fragile and gets overwritten on chart upgrades.

Versions

  • Chart version: 1.5.0 (also verified on latest 1.7.1 — same issue)
  • Kubernetes: EKS

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions