-
Notifications
You must be signed in to change notification settings - Fork 41
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
Addresses for propolis instances at SLED_PREFIX + 0xFFFF #4777
Conversation
Rather than allocating instance IPs starting at `sLED_PREFIX` + `RSS_RESERVED_ADDRESSES` + 1 where the `1` is the sled-agent allocated address of the GZ, we begin allocation from a larger block: `SLED_PREFIX` + `CP_SERVICES_RESERVED_ADDRESSES`. This gives us more room for nexus to allocate control plane services. Implements #4765 TODO: This is a wip, as a DB migration is needed to change `last_used_address` to start at the right value for existing DBs.
start at `SLED_PREFIX + 0xFFFF + 1`. This still requires testing
At a high-level, I see how this bumps up the To me, that issue implies that we basically have a "separate pool" for services and instance addresses. First off, I'd recommend the following:
But before we merge this:
|
The plan I've been working from (which is really just an idea we've talked about, plus an implementation in my branch, so still somewhat speculative) is that the store of record for IP addresses in use by Omicron is the current target blueprint. Thus in generating a new blueprint the planner can pick any addresses it wants as long as they don't overlap with each other. |
Gotcha, so this conflict resolution could all happen in-memory then, and we wouldn't need to do anything in the DB to help us do the allocation? That makes sense to me. |
@andrewjstone , if we can resolve these nits, this PR LGTM! |
These are great catches! I will fix them. Thank you very much for the thorough review! |
Rather than allocating instance IPs starting at
SLED_PREFIX
+RSS_RESERVED_ADDRESSES
+ 1 where the1
is the sled-agent allocated address of the GZ, we begin allocation from a larger block:SLED_PREFIX
+CP_SERVICES_RESERVED_ADDRESSES
. This gives us more room for nexus to allocate control plane services.Implements #4765