-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Support for controllers spanning across clusters #745
Comments
This is already possible by using multiple managers and injecting the correct cache into |
I was made aware of #650 as well (after opening this one). It describes what is probably the best option currently available. However, as managers drive the lifecycle of controllers (and other parts of the controller-runtime), I would hesitate to call it a solution. Do you think a multi-cluster setup as first-class citizen of the controller-runtime is a viable and feasible option? |
/kind design |
@vincepri: Please ensure the request meets the requirements listed here. If this request no longer meets these requirements, the label can be removed In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
A project with which I am involved is doing this. I will share the design here once I figure out what I am allowed to share. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
xref POC on how this could look like: #950 |
JFYI: I forked controller-runtime back in November 2018 and built this: https://github.com/admiraltyio/multicluster-controller Merging it back would be a breaking change to controller-runtime's API though. The folks at Orange use admiraltyio/multicluster-controller for their multi-cluster Cassandra operator: https://github.com/Orange-OpenSource/casskop/blob/master/multi-casskop/Readme.md I use it in https://github.com/admiraltyio/multicluster-scheduler, but I also write sample-controller-like multi-cluster controllers, as explained here: https://youtu.be/Fv2PKKDgjIQ (KubeCon Barcelona talk) @alvaroaleman I'll have a look at your POC #950. Back when I started multicluster-controller, controller-runtime's "dependency injection" was coupling packages quite tightly (Java-style vs. idiomatic), which is why I had to fork more than I wanted, but things may have changed. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/reopen with #950 there is an existing design for. I think we should keep this open. |
/reopen |
@alvaroaleman: Reopened this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/assign |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
The design did get implemented, so having it closed is fine I think. |
Hi @alvaroaleman, the design proposal you mentioned here https://github.com/kubernetes-sigs/controller-runtime/blob/main/designs/move-cluster-specific-code-out-of-manager.md already implemented? I have a multi-cluster controller with very hacky code (having multiple managers) from 3 years ago and planning to upgrade if controller-runtime supports it out of box. Thanks! |
We have a use case for a controller responsible for a (custom) resource
A
in one cluster that kind of owns another (custom) resourceB
in another cluster. I say "kind of owns" because there are of course no owner references that span clusters, but it can be imitated with labels and a mapping event handler rather easily.The problem is that there is no easy way to configure the controller to watch for
B
s in that there client.B
s in the wrong cluster.Not sure if that would really work though, we would have a controller that prepends to reconcile
B
s and we would need a dummy reconciler. Feels like a hack.Could we instead have a manager that can have n clients and way that kind watches can specify which client to use?
The text was updated successfully, but these errors were encountered: