LKE-9994: add networking configuration for LKE clusters with VXLAN support - #1048
vsilva-akamai wants to merge 9 commits into
Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Add IPv6 dual-stack request fields and comprehensive request-body serialization assertions.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
What changed in this PR
Adds v4beta Enterprise LKE networking configuration, VXLAN support, and a networking retrieval endpoint.
Changes:
- Adds networking request/response types and create options.
- Adds
GetLKEClusterNetworking. - Adds fixtures and unit coverage.
| File | Summary |
|---|---|
test/unit/lke_clusters_test.go |
Tests networking serialization and response decoding. |
test/unit/fixtures/lke_cluster_networking_get.json |
Adds networking endpoint response fixture. |
test/unit/fixtures/lke_cluster_create.json |
Adds networking create response data. |
lke_clusters.go |
Adds networking models, options, and API endpoint. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
e127ff3 to
efc846a
Compare
rpotla-akam
left a comment
There was a problem hiding this comment.
LGTM, please change the title appropriately :)
| type LKEClusterNetworkingOptions struct { | ||
| RoutingMode *LKEClusterRoutingMode `json:"routing_mode,omitzero"` | ||
| ClusterCIDRIPv4 *string `json:"cluster_cidr_ipv4,omitzero"` | ||
| NodeCIDRMaskSizeIPv4 *int `json:"node_cidr_mask_size_ipv4,omitzero"` | ||
| ServiceClusterIPRangeIPv4 *string `json:"service_cluster_ip_range_ipv4,omitzero"` | ||
| MaxPods *int `json:"max_pods,omitzero"` | ||
| NodeBalancerBackendPrefixLength *int `json:"nodebalancer_backend_prefix_length,omitzero"` |
There was a problem hiding this comment.
Is this only available for create LKE not update? If so can you name it as LKEClusterNetworkingCreateOptions
There was a problem hiding this comment.
Yes, it's create only. Updated the type name.
… 1.26 (linode#1043) * build(deps): bump golang.org/x/text from 0.41.0 to 0.42.0 Bumps [golang.org/x/text](https://github.com/golang/text) from 0.41.0 to 0.42.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](golang/text@v0.41.0...v0.42.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-version: 0.42.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Upgrade go to 1.26 in go.work * fix lint --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Zhiwei Liang <zliang@akamai.com>
) Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.35.7 to 0.37.0. - [Commits](kubernetes/apimachinery@v0.35.7...v0.37.0) --- updated-dependencies: - dependency-name: k8s.io/apimachinery dependency-version: 0.37.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…Balancers (linode#1035) * Add support for Backend Connectivity and more types in NodeBalancers * Add CapabilityPremiumNodeBalancer * docs: clarify NBTypeCommon description as legacy default plan * test: add nil checks for BackendConnectivity in NodeBalancer_Create test * test common type; remove basic type; remove broken get region call * Rename test
) Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.36.0 to 0.37.0. - [Commits](golang/oauth2@v0.36.0...v0.37.0) --- updated-dependencies: - dependency-name: golang.org/x/oauth2 dependency-version: 0.37.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.58.0 to 0.59.0. - [Commits](golang/net@v0.58.0...v0.59.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-version: 0.59.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.35.7 to 0.37.1. - [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md) - [Commits](kubernetes/client-go@v0.35.7...v0.37.1) --- updated-dependencies: - dependency-name: k8s.io/client-go dependency-version: 0.37.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

📝 Description
What does this PR do and why is this change necessary?
LKEClusterCreateOptions.GetLKEClusterNetworkingfor retrieving theeffective cluster networking configuration.
serialization and response decoding.
✔️ How to Test
What are the steps to reproduce the issue or verify the changes?
Deploy the matching v4beta LKE API, CAPI CRDs/webhooks/controller, and APINext
route/schema support before releasing this client. Create an Enterprise LKE
cluster with the new networking options and call
GetLKEClusterNetworking.Verify the request contains the expected routing-mode and CIDR fields and that
the response decodes the effective networking configuration. Cover IPv4 VXLAN
and dual-stack VXLAN when the matching server release is available.
How do I run the relevant unit/integration tests?
go test ./test/unit