-
Notifications
You must be signed in to change notification settings - Fork 64
[epic] Ensure no two ClusterExtensions can manage the same underlying object #736
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
Comments
I spent a little time hacking on this in the Rukpak repo and came up with:
It will need to be adapted to change "core.rukpak.io/owner-name" to whatever label we decide to inject from the ClusterExtension API, but other than that my manual tests seemed to do the right thing. I noticed that testing this in "real" scenarios may be difficult because Helm has its own logic to implement a single-owner policy. Perhaps we could write a test that tries to make concurrent changes to see if we can make if flaky with respect to the race conditions we expect, and then add this policy and check that the flakes disappear. In addition, I think we can also just have some direct envtest-based tests that go around helm and try to make label changes directly so that we mimic helm but avoid its single-owner logic. That way, we can implement assertion logic based on what we expect this policy to do. |
Uh oh!
There was an error while loading. Please reload this page.
For v1.0.0 it was decided that utilizing the underlying Helm management when concurrent reconciliations is set to a value of
1
is sufficient. While the underlying implementation details may change to prevent race conditions when scaling concurrent reconciliations > 1, the behavior that no twoClusterExtension
s should be able to manage the same underlying objects needs to be documented.Documentation should be contributed to the
docs/drafts/
directoryIssues:
The text was updated successfully, but these errors were encountered: