Skip to content

Add database layer for assigning an IP Pool to a service - #11109

Merged
bnaecker merged 3 commits into
mainfrom
ben/add-external-ip-pool-service-association-table
Aug 21, 2026
Merged

Add database layer for assigning an IP Pool to a service#11109
bnaecker merged 3 commits into
mainfrom
ben/add-external-ip-pool-service-association-table

Conversation

@bnaecker

Copy link
Copy Markdown
Collaborator
  • Add an enum for external networking services.
  • Add a join table for associating ip_pool records with specific services.
  • Add datastore methods for assigning / unassigning, with a bunch of tests.
  • The join table is empty and the datastore methods aren't consumed. This is all plumbing work, to support the planned Nexus API for operators and letting Reconfigurator read the pools it should use to plan external addresses for its zones.

@bnaecker
bnaecker marked this pull request as draft August 19, 2026 03:04
@bnaecker
bnaecker force-pushed the ben/add-external-ip-pool-service-association-table branch from ddf215e to 08178ba Compare August 19, 2026 20:26
- Add an enum for external networking services.
- Add a join table for associating `ip_pool` records with specific
  services.
- Add datastore methods for assigning / unassigning, with a bunch of
  tests.
- The join table is empty and the datastore methods aren't consumed.
  This is all plumbing work, to support the planned Nexus API for
  operators and letting Reconfigurator read the pools it should use to
  plan external addresses for its zones.
@bnaecker
bnaecker force-pushed the ben/add-external-ip-pool-service-association-table branch from 08178ba to 3f01ca3 Compare August 19, 2026 20:29
@bnaecker
bnaecker marked this pull request as ready for review August 19, 2026 20:29
@bnaecker
bnaecker requested a review from jgallagher August 19, 2026 20:29
Comment thread nexus/db-model/src/external_service_ip_pool.rs Outdated
Comment thread nexus/db-queries/src/db/datastore/ip_pool.rs
Comment thread nexus/db-queries/src/db/datastore/external_service_ip_pool.rs Outdated
Comment thread nexus/db-queries/src/db/datastore/external_service_ip_pool.rs Outdated
Comment thread nexus/db-queries/src/db/datastore/external_service_ip_pool.rs
Comment thread nexus/db-queries/src/db/datastore/external_service_ip_pool.rs Outdated
Comment thread nexus/db-model/src/external_service_ip_pool.rs Outdated
Comment thread schema/crdb/dbinit.sql Outdated
Comment thread schema/crdb/dbinit.sql
- use matches_sentinel in more places
- typed IP Pool kind
- ensure we can't reassign a pool to silos if it's assigned for a
  specific service like Nexus, and add regression test
- comment cleanup
@bnaecker
bnaecker requested a review from jgallagher August 20, 2026 22:33
@bnaecker
bnaecker enabled auto-merge (squash) August 21, 2026 16:05
@bnaecker
bnaecker merged commit 69361e9 into main Aug 21, 2026
19 checks passed
@bnaecker
bnaecker deleted the ben/add-external-ip-pool-service-association-table branch August 21, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants