Skip to content

Conversation

@bnaecker
Copy link
Collaborator

  • Move IP traits and config types to common modules so they can be used in the public API
  • Add private IP stack types to external API, used when fetching NICs
  • Add new IpConfig type to the parameters for creating NICs. This gives a more flexible scheme for selecting an IP address automatically or explicitly, and independently for each IP stack.
  • Add a new version of the external API for the new types, and implement conversions from the previous

@bnaecker bnaecker marked this pull request as draft December 12, 2025 06:44
@bnaecker bnaecker force-pushed the external-api-for-dual-stack-instances branch 8 times, most recently from cd0803a to b276b93 Compare December 18, 2025 17:27
@bnaecker
Copy link
Collaborator Author

I'm working on the NIC-update APIs, but need to get #9542 to make that work. That'll let us update a NIC's transit IPs on a per-stack basis, rather than some RMW with the DB.

@bnaecker bnaecker force-pushed the external-api-for-dual-stack-instances branch from b276b93 to bc3f12c Compare December 19, 2025 16:29
@rcgoodfellow rcgoodfellow added this to the 18 milestone Dec 26, 2025
@bnaecker bnaecker force-pushed the external-api-for-dual-stack-instances branch 3 times, most recently from 2df5da9 to a54fdb0 Compare December 30, 2025 07:19
- Move IP traits and config types to common modules so they can be used
  in the public API
- Add private IP stack types to external API, used when fetching NICs
- Add new `IpConfig` type to the parameters for creating NICs. This
  gives a more flexible scheme for selecting an IP address automatically
  or explicitly, and independently for each IP stack.
- Add a new version of the external API for the new types, and implement
  conversions from the previous
- Ensure external IPs are allocated for NICs with a corresponding private
  IP stack, checking at both IP creation and attachment.
- Check that candidate secondary NICs have an IP stack for every
  external IP when setting them to a new primary
@bnaecker bnaecker force-pushed the external-api-for-dual-stack-instances branch from a54fdb0 to 342aee5 Compare December 30, 2025 20:29
@bnaecker
Copy link
Collaborator Author

There are a few tests that will fail until I rebase on @zeeshanlakhani's changes in #9452 once that merges. This is ready for a review now though.

@bnaecker bnaecker marked this pull request as ready for review December 30, 2025 20:29
@bnaecker
Copy link
Collaborator Author

This will close #8891, #9248, and #1464. It also opens the door for IPv6 IP pool and range operations, since we can now do something useful with them.

Copy link
Contributor

@rcgoodfellow rcgoodfellow left a comment

Choose a reason for hiding this comment

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

Thanks for pulling all this together @bnaecker! Lots of details to line up and some hairy database work.

I've been rebasing my ipv6/all-the-things onto this branch and things are working e2e for IPv6 comms with probes.

A few minor comments/questions follow.

@bnaecker
Copy link
Collaborator Author

bnaecker commented Jan 2, 2026

Alright, I've integrated this with the updated handling of default pools, and have now gotten all the tests to pass and my own TODOs addressed. @rcgoodfellow thanks for your feedback, I'd love another pass when you get a minute.

@bnaecker bnaecker requested a review from rcgoodfellow January 2, 2026 08:28
@bnaecker
Copy link
Collaborator Author

bnaecker commented Jan 3, 2026

Still need to resolve another conflict with main.

Copy link
Contributor

@rcgoodfellow rcgoodfellow left a comment

Choose a reason for hiding this comment

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

LGTM. All my comments have been addressed.

@bnaecker
Copy link
Collaborator Author

bnaecker commented Jan 3, 2026

The multicast failure looks like a flake. There's a timeout we're exceeding, but it passes locally quite quickly. I'll fixup the API check test now.

@bnaecker bnaecker enabled auto-merge (squash) January 3, 2026 22:37
@bnaecker bnaecker merged commit 078f636 into main Jan 4, 2026
17 checks passed
@bnaecker bnaecker deleted the external-api-for-dual-stack-instances branch January 4, 2026 05:32
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.

3 participants