Skip to content

Fix configmaps key in ResourceMap leading to controllers not being able to mark themselves as initialized#1061

Merged
msafwankarim merged 1 commit into
stakater:masterfrom
MatthiasWerning:bugfix/controller-init
Dec 10, 2025
Merged

Fix configmaps key in ResourceMap leading to controllers not being able to mark themselves as initialized#1061
msafwankarim merged 1 commit into
stakater:masterfrom
MatthiasWerning:bugfix/controller-init

Conversation

@MatthiasWerning

Copy link
Copy Markdown
Contributor

This addresses issue #1060 by fixing the constant used in ResourceMap for configmaps.

@msafwankarim
msafwankarim merged commit b71fb19 into stakater:master Dec 10, 2025
5 checks passed
@MatthiasWerning
MatthiasWerning deleted the bugfix/controller-init branch December 10, 2025 10:40
msafwankarim pushed a commit that referenced this pull request Jun 15, 2026
PR #1061 renamed the configmap key in kube.ResourceMap from "configMaps"
(camelCase) to "configmaps" (lowercase) to fix controllers not being
able to mark themselves as initialized. However, two callers were not
updated to match the new canonical key:

1. The Helm chart's deployment template still emits
   `--resources-to-ignore=configMaps` (camelCase) when
   `reloader.ignoreConfigMaps: true` is set.
2. The validation in `GetIgnoredResourcesList` only accepts the legacy
   camelCase spelling.

Because `ignoredResourcesList.Contains(k)` uses case-sensitive string
equality, the lookup against the new lowercase ResourceMap key never
matches. The configmaps controller is created and starts watching
ConfigMaps cluster-wide, even though the chart's ClusterRole template
(also gated on `ignoreConfigMaps`) does not grant permission for it.

The resulting pod logs are full of:

  configmaps is forbidden: User "system:serviceaccount:reloader:reloader-reloader"
  cannot list resource "configmaps" in API group "" at the cluster scope

This change:

- Updates the chart deployment template to emit the canonical lowercase
  `configmaps` value.
- Normalizes the input in `GetIgnoredResourcesList`, accepting both
  `configMaps` (legacy, for backward compatibility with users who pass
  the flag directly) and `configmaps` (canonical), and emitting the
  canonical form to the caller.
- Updates the flag help text and adds tests covering both spellings.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants