-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Channel Source is borked due to stop channel injection #103
Comments
@DirectXMan12 any news about this? |
no, unfortunately I became busy with some other stuff, and it's going to take a bit of thinking about how to refactor the internals to make it work. I'll take another stab at it next week. |
One solution is to add a |
fixes kubernetes-sigs#103 Creates a stop channel for the manager in New(), which will get passed to any source.Channel instances that are added. When the manager's start method is called and a new stop channel is passed in, that channel will be joined in a goroutine with the manager's existing channel so that if the newer channel gets closed, so will the manager's.
This is backward-incompatible. The manager accepts Context instead of a stop channel, which helps simplify cancellation workflow and is more in line with the direction related projects are moving. This pattern can be expanded in a similar way to controllers, the cache, and so on if people like it. fixes kubernetes-sigs#103
fixes kubernetes-sigs#103 Creates a stop channel for the manager in New(), which will get passed to any source.Channel instances that are added. When the manager's start method is called and a new stop channel is passed in, that channel will be joined in a goroutine with the manager's existing channel so that if the newer channel gets closed, so will the manager's.
fixes kubernetes-sigs#103 Creates a stop channel for the manager in New(), which will get passed to any source.Channel instances that are added. When the manager's start method is called and a new stop channel is passed in, that channel will be joined in a goroutine with the manager's existing channel so that if the newer channel gets closed, so will the manager's.
fixes kubernetes-sigs#103 Creates a stop channel for the manager in New(), which will get passed to any source.Channel instances that are added. When the manager's start method is called and a new stop channel is passed in, that channel will be joined in a goroutine with the manager's existing channel so that if the newer channel gets closed, so will the manager's.
Bump cmd versions of kube dependencies to kubernetes-1.10.1
The Channel source expects the stop channel to be injected before calling
Start
, but the stop channel on the controller manager will be nil untilControllerManager#Start
is called. Since most people will probably callController#Watch
beforeControllerManager#Start
, this breaks the channel source.I've got a patch to fix it in the works, but wanted to file this so that I don't forget.
The text was updated successfully, but these errors were encountered: