-
Notifications
You must be signed in to change notification settings - Fork 36
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 internet gateways #6475
base: main
Are you sure you want to change the base?
Conversation
rcgoodfellow
commented
Aug 29, 2024
•
edited
Loading
edited
- fixes Implement the Internet Gateway concept #2154
- depends on Support for omicron internet gateway model opte#588
Something I'm not too sure about with this PR is how it needs to interact with the reconfigurator. If any services move around, we need to trigger the |
// I think we should move decisions around change | ||
// propagation to be based on actual delta | ||
// calculation, rather than trying to manually | ||
// maintain a signal. |
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.
Calling this comment out as something to discuss in this PR. CC @FelixMcFelix
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.
Yeah, I had maybe overlooked the scope of things that could change in connection with an Internet Gateway. That's a big surface area to keep an eye on...
I'm not really sure how we would want to work around this, however. The motivation for using router versions was more for performance rather than correctness. My intent was to prevent each Nexus's copy of the background task from querying every Project's/VPC's/Subnet's state on a minute-by-minute (and per-wakeup) basis, since there are a lot of tables which are referenced during route resolution. This partly stems from the granularity of background task wakeups, which don't AFAIK allow a selective wakeup. So my initial feeling is that having Nexus store resolved tables and then send deltas is orthogonal to that?
It could also, in practice, not be too expensive to just rebuild VPC routing tables periodically! In which case, the places where we perform version bumps and/or background task wakeups would keep the system responsive rather than be crucial for correctness. If cost remains a concern, I wonder if we can just use modified
timestamps in connected tables to drive the route update process (which would, I hope, be less error-prone).
Maybe! The bit of reconfigurator that can actually move services around is also an RPW (
|