Skip to content

Make OmicronZoneNic dual-stack - #10972

Merged
bnaecker merged 6 commits into
mainfrom
ben/omicron-zone-nic-dual-stack
Aug 4, 2026
Merged

Make OmicronZoneNic dual-stack#10972
bnaecker merged 6 commits into
mainfrom
ben/omicron-zone-nic-dual-stack

Conversation

@bnaecker

@bnaecker bnaecker commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator
  • Add support for dual-stack NICs for Omicron zones in memory and blueprints
  • Add schema migration and update database model for dual-stack bp_omicron_zone records
  • Add some tests for the new conversions with the other NIC types
  • Closes OmicronZoneNic needs to be dual-stack #9314

@bnaecker
bnaecker force-pushed the ben/omicron-zone-nic-dual-stack branch from 4ad78c1 to 3c3e3f6 Compare August 1, 2026 22:57
- Add support for dual-stack NICs for Omicron zones in memory and
  blueprints
- Add schema migration and update database model for dual-stack
  `bp_omicron_zone` records
- Add some tests for the new conversions with the other NIC types, and
  serialization with database tables
- Closes #9314
@bnaecker
bnaecker force-pushed the ben/omicron-zone-nic-dual-stack branch from 3c3e3f6 to 7f2b26f Compare August 3, 2026 18:23
@bnaecker
bnaecker requested a review from jgallagher August 3, 2026 18:25
@bnaecker

bnaecker commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator Author

This hit #10959, I'm going to re-run and maybe merge in main to pick up the fix that ignores it.

@bnaecker

bnaecker commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator Author

Lots of weird failures in the helios / deploy job, e.g., here. I may have botched the merge with main, but I'll take a look tomorrow.

Comment thread nexus/db-model/src/deployment.rs Outdated
nic: &OmicronZoneNic,
) -> Result<(), AddNetworkResourceError> {
if let Some(OmicronZoneExternalIpEntry { ip, .. }) =
self.omicron_zone_external_ips.get1(zone_id)

@jgallagher jgallagher Aug 4, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a question for not-this-PR, but: is OmicronZoneNetworkResources assuming that every zone has 0 or 1 external IP, which means this data structure will need to change in a nontrivial way to support true dual stack? (Or I guess we could change the structure of OmicronZoneExternalIpEntry to be able to describe dual stack as an option, just like you've done with the NICs in this PR? That's probably already what you planned to do. 🤦)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really sure yet! I'm still planning the work to allocate dual-stack addresses. In general, yes there have been assumptions of at most one external address in many places. I'd expect this to change a lot, but I'm not sure how much yet.

@bnaecker
bnaecker merged commit 3e60be8 into main Aug 4, 2026
19 checks passed
@bnaecker
bnaecker deleted the ben/omicron-zone-nic-dual-stack branch August 4, 2026 23:43
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.

OmicronZoneNic needs to be dual-stack

2 participants