upcoming: [M3-10597] – Add VPC IPv6 support in Linode Create flow - #12885
Conversation
2fa85f2 to
fbda2de
Compare
…elected (when user explicitly chooses them while the Linode Interfaces flag is on, or when Linode Interfaces flag is off and flow uses legacy interfaces)
…ange in E2E and unit tests related to Linode Create and networking flows
| errors.linodeInterfaces?.[index]?.vpc?.ipv6?.slaac?.[0] | ||
| ?.range?.message | ||
| } | ||
| helperText={generateVPCIPv6InputHelperText( |
There was a problem hiding this comment.
The helper text doesn't seem to be updating when switching selected subnets
Screen.Recording.2025-09-22.at.4.13.01.PM.mov
There was a problem hiding this comment.
Nice catch, I've made a note of it -- the UI for that field and helper text will be changing with a forthcoming PR in the next few days, so we can bundle a fix with that (if the helper text is retained in the updated design)
Cloud Manager UI test results🎉 813 passing tests on test run #11 ↗︎
|
hana-akamai
left a comment
There was a problem hiding this comment.
Functionality LGTM!
One thing I noticed is that when the feature flag is off, creating a Linode with a dual-stack VPC still results in an IPv6 address assigned even though the IPv6 options are hidden from the UI and not present in the payload. Not sure if this is expected behavior.
I believe the back-end logic will still auto-assign one if the user has the Dual Stack account capability |
mjac0bs
left a comment
There was a problem hiding this comment.
Thanks for the clear explanation of the various flows.
Things looked good overall when toggling various flags, single vs. dual stack VPCs, and settings. I noticed one discrepancy between the testing instructions and the API payloads:
Linode Interfaces --> enabled flag off...
VPC IPv6 flag on
Allow public IPv6 access checkbox
checked: interfaces[0].ipv6.is_public should be true ✅
unchecked: interfaces[0].ipv6.is_public should be false ❓ <-- The interfaces[0].ipv6.is_public field appears to just not show up in the payload at all when it is false. Just wanted to confirm whether that was intentional.
Good find 🔍 Not intentional, but the API's default value for that field is |



Description 📝
Add VPC IPv6 support in the Linode Create flow. This encompasses three sub-flows:
enabledflag OFF (legacy configs used)enabledflag ONChanges 🔄
Assign a public IPv4 address for this Linode-->Allow public IPv4 access (1:1 NAT)Auto-assign a VPC IPv4 address for this Linode in the VPC-->Auto-assign VPC IPv4 addressgetLegacyInterfaceFromLinodeInterface()to account for whether Dual Stack is enabled or notAuto-assign VPC IPv6 addresscheckbox & VPC IPv6 input field addedAllow public IPv6 accesscheckbox addedAdd IPv6 Rangebutton addedScope 🚢
Upon production release, changes in this PR will be visible to:
Target release date 🗓️
9/23/25
Preview 📷
How to test 🧪
Prerequisites
Ensure the
vpc-ipv6tag is on your account and the VPC IPv6 feature flag is enabled in our Dev Tool. You can point to DevCloud or prod (in which case you should use the Oslo region).Verification steps
Note
In addition to the conditions outlined below, IPv6 fields should only show if the selected VPC/subnet are Dual Stack.
Linode Interfaces -->
enabledflag off...Auto-assign VPC IPv6 addresscheckboxinterfaces[0].ipv6.slaac[0].rangein payload should be"auto"interfaces[0].ipv6.slaac[0].rangein payload should be set to what you input into the VPC IPv6 fieldAllow public IPv6 accesscheckboxinterfaces[0].ipv6.is_publicshould betrueinterfaces[0].ipv6.is_publicshould befalseAssign IPv6 Rangeinterfaces[0].ipv6.rangesarray should consist of{ range: '...' }objects consisting of what you input into the IPv6 Range fields (empty array if you included none)Linodes Interfaces -->
enabledflag on...Configuration Profile Interfaces (Legacy)selectedLinode Interfaces -->enabledflag off...-->VPC IPv6 flag onsection aboveLinode Interfacesselectedinterfaces[0].vpc.ipv6.is_public,interfaces[0].vpc.ipv6.ranges, andinterfaces[0].vpc.ipv6.slaac[0].rangeshould have values matching what you'd expect per the previous sectionAuthor Checklists
As an Author, to speed up the review process, I considered 🤔
👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support
As an Author, before moving this PR from Draft to Open, I confirmed ✅