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
Provider scaler should only check if a provider exists when matching scale requirements #106
Comments
I can grab this if time is not a constraint |
Sure thing! Just let us know if you start working on it and I'll mark it as reserved |
Starting on Monday, I feel Monday is a clean start. |
No longer going to be able to get to this one. Will be moving on to some other work and no longer have time. |
This PR contains a couple small changes I discovered while manually testing, but the large change is around the scaler algorithm for providers. Now a provider scaler will consider its job done if _any_ provider matching what it is expecting to be running. Closes wasmCloud#106 Signed-off-by: Taylor Thomas <taylor@cosmonic.com>
This PR contains a couple small changes I discovered while manually testing, but the large change is around the scaler algorithm for providers. Now a provider scaler will consider its job done if _any_ provider matching what it is expecting to be running. Closes wasmCloud#106 Signed-off-by: Taylor Thomas <taylor@cosmonic.com>
This PR contains a couple small changes I discovered while manually testing, but the large change is around the scaler algorithm for providers. Now a provider scaler will consider its job done if _any_ provider matching what it is expecting to be running. Closes wasmCloud#106 Signed-off-by: Taylor Thomas <taylor@cosmonic.com>
Reopening this one as it seems to still be an issue, but possibly only for newly created scalers. I've noticed that if I create an app that deploys a provider, say HTTPserver with link |
Closed by #167 |
There are going to be many times where a capability provider is "shared" between different applications (think something like the httpserver provider). Right now if one is already running, then every single reconcile will trigger a command that fails if some other application is running the provider.
To solve this I think the solution should be that the provider scaler should NOT match on annotations and only check if a provider with the correct linkname is running on hosts that match its spread requirements. It should also run a reconcile anytime it sees a provider stopped event. This is correct behavior because all that this is checking for is that a host has that capability, it doesn't matter what is running it. If for some reason that provider is deleted (by a user or by another application that has been deleted), then the scaler should make sure it is running again for the application
Please note that this isn't perfect. In the future I'd like to avoid the, albeit short, downtime of a provider stopping and then starting again, but that will require some sort of shared state between all of the different scalers
The text was updated successfully, but these errors were encountered: