-
Notifications
You must be signed in to change notification settings - Fork 333
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
fix(kuma-cp): reserve VIPs from all meshes before allocating a new one #3949
Conversation
Signed-off-by: Jakub Dyszkiewicz <jakub.dyszkiewicz@gmail.com>
Signed-off-by: Jakub Dyszkiewicz <jakub.dyszkiewicz@gmail.com>
Signed-off-by: Jakub Dyszkiewicz <jakub.dyszkiewicz@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Codecov Report
@@ Coverage Diff @@
## master #3949 +/- ##
==========================================
- Coverage 55.83% 55.83% -0.01%
==========================================
Files 916 916
Lines 54526 54531 +5
==========================================
- Hits 30447 30445 -2
- Misses 21636 21642 +6
- Partials 2443 2444 +1
Continue to review full report at Codecov.
|
I actually want to argue the other way round :) The only reason why the global view exists is cp dns which should go away so the global view should disappear. The reason for removing global state:
This in-itself doesn't mean we shouldn't merge this. I only argue that the global state should be removed soon so maybe this wasn't worth it. |
Those are good points that I agree with. However, I think it's slightly better to have consistency introduced in this PR for the current state of Kuma. |
But if we prioritize removing CP DNS (so removing GlobalView), then I guess this PR becomes obsolete? |
then question is when we do it and if we just remove DNS server of keep it still for smooth deprecation. Refactor is still relevant |
after talking with @lahabana offline, we want to merge it as it's a minor improvement, but we probably get rid of DNS server in the end sooner or later. |
kumahq#3949) Signed-off-by: Jakub Dyszkiewicz <jakub.dyszkiewicz@gmail.com> Signed-off-by: Sally Blich <sally.blich@walkme.com>
Summary
createOrUpdateVIPConfigs
executed with single mesh only reserved existing addresses based on this one mesh instead of all meshes.When allocating a new address, we were allocating an IP that was already issued for a service in a different mesh. I think that technically it's not a problem,
frontend.mesh
frommesh-1
can receive240.0.0.1
andbackend.mesh
frommesh-2
can resolve to240.0.0.1
as well and it will work because there is no cross mesh communication. I'd argue that it's better to try to keep separate VIPs becauseCreateOrUpdateVIPConfigs()
and thencreateOrUpdateVIPConfigs(mesh)
with all the meshes. They never overlap in that scenarioReview commit by commit.
Issues resolved
No issues reported.
Documentation
No docs.
Testing
Backwards compatibility
- [ ] UpdateUPGRADE.md
with any steps users will need to take when upgrading.- [ ] Addbackport-to-stable
label if the code follows our backporting policy