Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create namespaced role instead of using cluster role #786

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

FxKu
Copy link
Member

@FxKu FxKu commented Jan 9, 2020

In each namespace operator currently creates an additional ServiceAccount and binds it to the postgres-pod ClusterRole. This PR adds code to create a Role instead and let the RoleBinding reference it.

Next to pod_service_account_definition and pod_service_account_role_binding_definition, a third configuration parameter is added to allow users to configure the role definition as well.

Yet, this PR has now sync strategy for roles. What if you want to change the role's privileges? With one ClusterRole it's easy. Just edit it. But how to sync all roles the operator would create?

docs/administrator.md Outdated Show resolved Hide resolved
@FxKu
Copy link
Member Author

FxKu commented Jan 14, 2020

Please tell, if the default name postgres-operator-patroni for ServiceAccount, RoleBinding and Role is fine for you. I could also think of postgres-operator-db-pods, postgres-operator-spilo ...

EDIT: postgres-pod it is now

@FxKu FxKu force-pushed the spilo-service-account branch 3 times, most recently from 9b3dcc8 to e40f714 Compare January 20, 2020 10:18
changed the default name, updated helm chart and docs
allow role to use privileged podsecurtitypolicies
@FxKu FxKu changed the title improve RBAC setup for postgres pods create namespaced role instead of using cluster role Feb 18, 2020
@FxKu FxKu mentioned this pull request Feb 18, 2020
@FxKu FxKu removed this from the 1.4 milestone Feb 18, 2020
@machine424
Copy link
Contributor

machine424 commented Jan 18, 2021

We're really interested in this feature.

Can I help somehow?

@FxKu
Copy link
Member Author

FxKu commented Jan 26, 2021

@machine424 thanks for your interest. I've rebased the branch now, so that you can continue working on it. The big open TODO here is the syncing part. What if you want to change the role? How are the existing roles updated then? That's why we went with another clusterrole instead, because it's one edit there and you are done. At some point we should also revisit the hard coded definitions for service account, role bindings (and roles what this PR adds).

@machine424
Copy link
Contributor

Ok, I'll give it a try, thanks.

@caniko
Copy link

caniko commented Nov 24, 2022

I really need this, it won't happen any time soon, right?

However, I am guessing that it is not possible to use the enable_cross_namespace_secret feature in this mode, correct? RBAC is a nightmare sometimes 🏃‍♂️

@rgarcia89
Copy link

rgarcia89 commented Jan 23, 2024

I would be interested in a namespaced deployment way too. I do have some use-cases where I do not have permission to create clusterroles due to policy. Roles and RoleBindings however would work to at least deploy the clusters into the same cluster or the namespace.

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.

6 participants