TPT-4463: Support RDMA VPC interfaces #988
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds first-class support for GPUDirect RDMA VPCs by introducing a VPC type enum, surfacing vpc_type on VPC/subnet responses and VPC create requests, and enabling RDMA VPC interface configuration via instance-create and interface update endpoints.
Changes:
- Add
VPCType(regular/rdma) and plumbvpc_typethrough VPC and subnet models + VPC create options. - Add RDMA VPC interface models/options (
rdma_vpc) and support specifying RDMA interfaces during instance creation via a newLinodeInstanceInterfacesfield. - Add unit tests + fixtures covering RDMA VPCs and RDMA interfaces.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
vpc.go |
Introduces VPCType and adds vpc_type to VPC + VPC create options. |
vpc_subnet.go |
Adds vpc_type to VPCSubnet model for responses. |
regions.go |
Adds a new region capability constant for GPUDirect RDMA. |
interfaces.go |
Adds rdma_vpc to interface models and adds RDMA create/update option structs. |
instances.go |
Adds LinodeInstanceInterfaces and extends marshaling conflict checks to support RDMA interface creation on instance create. |
test/unit/rdma_vpc_test.go |
Adds unit tests for RDMA VPCs and RDMA interface behavior, including instance-create marshaling. |
test/unit/fixtures/*.json |
Adds fixtures for RDMA VPC/interface unit tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if i.Interfaces != nil && i.LinodeInstanceInterfaces != nil { | ||
| return nil, fmt.Errorf("fields Interfaces and LinodeInstanceInterfaces cannot be specified together") | ||
| } |
There was a problem hiding this comment.
The comment here is because we compare Interfaces and LinodeInstanceInterfaces are set at the same time.
There was a problem hiding this comment.
@yec-akamai, I think that Copilot's comment was referring to lines 259-261 because it is not updated - currently the function compares 3 values (Interfaces, LinodeInterfaces, LinodeInstanceInterfaces), instead of previous 2 (Interfaces, LinodeInterfaces)
📝 Description
Add support to specify VPC type and RDMA VPC. Allow to create the RDMA intercase with the instance creation. Allow to update and delete the RDMA interface with the standalone interface endpoints.
✔️ How to Test