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

Remove hard requirement of cluster-wide secret list/watch privileges #2403

Closed
jessesuen opened this issue Jan 10, 2023 · 0 comments · Fixed by #2411
Closed

Remove hard requirement of cluster-wide secret list/watch privileges #2403

jessesuen opened this issue Jan 10, 2023 · 0 comments · Fixed by #2411
Assignees
Labels
enhancement New feature or request security

Comments

@jessesuen
Copy link
Member

jessesuen commented Jan 10, 2023

Argo Events, when installed in a cluster-scoped mode, currently require cluster-wide list/watch/get on Secrets. The controller will simply not start if the RBAC is removed and the controller can't start the watch. This issue is to remove this hard requirement for cluster-wide secret list/watch/get.

Describe the solution you'd like

The reason argo-events watches secrets, is because it re-queues the parent EventBus object for whenever its child Secret changes. But since the child secret is controlled by the controller (not by admins), this is largely unnecessary. Also, it will eventually be recreated/updated during normal resync periods of EventBus objects.

I think Argo Events can improve its security by removing this watch requirement, and allowing administrators to allow list/get Secret calls at a namespace granularity.

This is how both Argo Workflows and Argo Rollouts are implemented. See:

Describe alternatives you've considered

Tried patching the RBAC manually but the way the code is implemented is impossible. Currently, the only way to run argo-events in a locked-down cluster is to run multiple instances of it. But this is an expensive and heavy-handed workaround which also does not allow config reuse.

Additional context

Chatted with @whynowy about this and he agrees this is something that can be accomplished.


Message from the maintainers:

If you wish to see this enhancement implemented please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment