Skip to content

add-WATCH_NAMESPACE-env-var-with-RBAC-scoping - #1172

Open
nickozilla wants to merge 1 commit into
cloudnative-pg:mainfrom
nickozilla:add-WATCH_NAMESPACE-env-var-with-RBAC-scoping
Open

nickozilla wants to merge 1 commit into
cloudnative-pg:mainfrom
nickozilla:add-WATCH_NAMESPACE-env-var-with-RBAC-scoping

Conversation

@nickozilla

@nickozilla nickozilla commented Oct 20, 2026 •

Copy link
Copy Markdown

Adds an optional WATCH_NAMESPACE environment variable to the operator component. It accepts a comma-separated list of namespaces; when unset or empty, behaviour is unchanged (cluster-wide).

When set, the manager cache is restricted to the listed namespaces via cache.Options.DefaultNamespaces, so the plugin no longer lists or watches anything outside them. This allows running with a namespaced Role and RoleBinding instead of the current ClusterRole (cluster-wide access to Secrets, Roles and RoleBindings).

The env var name and format match WATCH_NAMESPACE in cloudnative-pg. Unlike cloudnative-pg, this uses plain DefaultNamespaces rather than the custom multicache, since all operator-side reads use the Cluster's own namespace. A Cluster outside the watched namespaces will get an error from the Pre hook.

This is the Go side only. The namespaced RBAC and passing WATCH_NAMESPACE through the Deployment need a follow-up in cloudnative-pg/charts. Part of cloudnative-pg/charts#1056.

Context: https://cloud-native.slack.com/archives/C08MW1HKF40/p1791888507120499

Testing: unit tests for the namespace parsing. Not yet tested against a live cluster with namespaced-only RBAC.

@nickozilla
nickozilla requested a review from a team as a code owner October 20, 2026 09:21

This branch has not been deployed

No deployments
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.

1 participant