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.
| return nil, err | ||
| } | ||
|
|
||
| return response.Interfaces, nil |
There was a problem hiding this comment.
Shouldn't we keep filtering of the results here (then opts would be used, now it is not)?
There was a problem hiding this comment.
The result is not paginated, and API does not seem to accept filter either.
jriddle-linode
left a comment
There was a problem hiding this comment.
LGTM, works locally.
📝 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.
Also fixed the interfaces list endpoint.
✔️ How to Test