Skip to content

Support for rdma settings on lke nodepools - #1063

Open
awalker125-akamai wants to merge 5 commits into
linode:mainfrom
awalker125-akamai:support-for-rdma-settings-on-lke-nodepools
Open

awalker125-akamai wants to merge 5 commits into
linode:mainfrom
awalker125-akamai:support-for-rdma-settings-on-lke-nodepools

Conversation

@awalker125-akamai

Copy link
Copy Markdown

📝 Description

What does this PR do and why is this change necessary?

Adds networking field support to LKE node pools, enabling callers to configure the ordered set of VPC-backed interfaces (including RDMA interfaces) attached to nodes in an LKE Enterprise pool.

New types:

  • LKENodePoolInterfaceType — string enum with values vpc and rdma_vpc
  • LKENodePoolInterface — a single interface entry (type, vpc_id, subnet_id)
  • LKENodePoolNetworking — wraps an ordered interfaces slice

Changed structs:

  • LKENodePool — adds Networking *LKENodePoolNetworking
  • LKENodePoolCreateOptions — adds Networking *LKENodePoolNetworking (accepted at creation time only, v4beta)
  • LKENodePoolUpdateOptions — deliberately unchanged; the API returns HTTP 400 if networking is supplied on PUT, so there is no field to send
  • GetCreateOptions() — updated to copy Networking from pool to create options

Notes:

  • The first interface must always be type: vpc and references the cluster's primary VPC — this is enforced server-side, not in the client
  • Networking is immutable after creation; attempting to include it in a PUT request will be rejected by the API

✔️ How to Test

What are the steps to reproduce the issue or verify the changes?

  1. Create a node pool on an LKE Enterprise cluster with an RDMA-capable plan, supplying Networking in the create options — confirm the field round-trips correctly in the response
  2. GET or LIST node pools on that cluster — confirm networking.interfaces is populated in the response

How do I run the relevant unit/integration tests?

go test ./test/unit/... -run "TestLKENodePoolRDMA"

Two new unit tests cover create and get:

  • TestLKENodePoolRDMA_Create — verifies networking.interfaces serial deserializes correctly from the response
  • TestLKENodePoolRDMA_Get — verifies networking.interfaces deserializes correctly on GET, including interface types and IDs

@awalker125-akamai
awalker125-akamai requested review from a team as code owners October 26, 2026 13:53
@awalker125-akamai
awalker125-akamai requested review from lgarber-akamai and mawilk90 and a balanced review from Copilot and removed request for a team October 26, 2026 13:53

Copilot AI left a comment

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.

🟢 Approval recommended

The additive changes have no identified blocking issues; outgoing request-serialization coverage remains a non-blocking improvement.

1 open issue
What changed in this PR

Adds creation-time networking support to LKE Enterprise node pools, allowing callers to configure ordered VPC and RDMA interfaces through the Go client.

Changes:

  • Adds interface types and networking models to node pool responses and create options.
  • Preserves networking in GetCreateOptions() while leaving update options unchanged.
  • Adds create/get response tests and JSON fixtures.
File Description
test/​unit/​lke_node_pools_test.go Adds RDMA node pool create/get tests.
test/​unit/​fixtures/​lke_node_pool_rdma_get.json Supplies a GET response with ordered interfaces.
test/​unit/​fixtures/​lke_node_pool_rdma_create.json Supplies a create response with ordered interfaces.
lke_node_pools.go Adds networking models, fields, and create-option copying.

Review effort: Balanced

Comment thread lke_node_pools.go
// Networking configures the ordered set of VPC-backed interfaces for LKE Enterprise node pools.
// Accepted only at creation time; immutable after the pool is created.
// NOTE: Networking may not currently be available to all users and can only be used with v4beta.
Networking *LKENodePoolNetworking `json:"networking,omitzero"`
@zliang-akamai zliang-akamai added the community-contribution contributions from the community. label Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community-contribution contributions from the community.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants