Skip to content

workerGroups: Change from array to map for better value overrides #439

@egvimo

Description

@egvimo

Background / Problem

Currently, workerGroups is defined as an array of objects:

workerGroups:
  - name: "default"
    replicas: 3
    # ...
  - name: "native"
    replicas: 1
    # ...

This causes a well-known Helm limitation: arrays cannot be merged. When a user wants to override a single field on a single worker group (e.g. bump replicas on the default group), they are forced to repeat the entire array in their values.yaml, including all other groups they don't care about. This is verbose, error-prone, and makes upgrades painful — any new fields or groups added upstream are silently dropped unless the user manually reconciles their override.

Proposed Change

Convert workerGroups from an array to a map keyed by the group name:

workerGroups:
  default:
    controller: "Deployment"
    replicas: 3
    # ...
  native:
    controller: "Deployment"
    replicas: 1
    # ...

With this structure, a user only needs to specify what they actually want to change:

# user's values.yaml
workerGroups:
  default:
    replicas: 10
    resources:
      limits:
        memory: "8Gi"

Benefits

  • Minimal overrides — users only touch what they need to change
  • Easier upgrades — new upstream defaults are automatically inherited
  • Less duplication and reduced risk of drift between user values and chart defaults

Breaking Change

This would be a breaking change for anyone currently overriding workerGroups.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions