Skip to content

[feat] add support for reserved IPv4 range in NodeBalancer backend allocation - #632

Merged
AshleyDumaine merged 10 commits into
linode:mainfrom
vsilva-akamai:LKE-9993-nitro-networking
Sep 28, 2026
Merged

AshleyDumaine merged 10 commits into
linode:mainfrom
vsilva-akamai:LKE-9993-nitro-networking

Conversation

@vsilva-akamai

Copy link
Copy Markdown
Contributor

Summary

  • Adds --nodebalancer-backend-ipv4-reserved-range and the matching Helm value for reserving the highest /30 in a configured NodeBalancer backend subnet.
  • Allocates the first available /30 below the reserved range by reading the subnet's existing NodeBalancer assignments.
  • Rejects invalid reservations, existing assignments that use the reserved range, and service-provided backend ranges that overlap the reservation.
  • Adds unit coverage for allocation, validation, VPC option construction, and Helm rendering.

Rationale

Reserving the highest /30 prevents CCM-managed NodeBalancer backend allocation from consuming an address range that must remain available for networking.

Validation

  • go test ./cloud/linode -count=1
  • make helm-template

General

  • Have you removed all sensitive information, including but not limited to access keys and passwords?
  • Have you checked to ensure there aren't other open or closed Pull Requests for the same bug/feature/question?

Pull Request Guidelines

  1. Does your submission pass tests?
  2. Have you added tests?
  3. Are you addressing a single feature in this PR?
  4. Are your commits atomic, addressing one change per commit?
  5. Are you following the conventions of the language?
  6. Have you saved your large formatting changes for a different PR, so we can focus on your work?
  7. Have you explained your rationale for why this feature is needed?
  8. Have you linked your PR to an open issue

@github-actions github-actions Bot added the new-feature for new features in the changelog. label Sep 22, 2026
@codecov

codecov Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 60.15038% with 53 lines in your changes missing coverage. Please review.
✅ Project coverage is 75.17%. Comparing base (34ce86e) to head (2871942).

Files with missing lines Patch % Lines
cloud/linode/nodebalancer_backend_range.go 59.77% 18 Missing and 17 partials ⚠️
cloud/linode/loadbalancers.go 70.00% 6 Missing and 6 partials ⚠️
cloud/linode/cloud.go 0.00% 5 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #632      +/-   ##
==========================================
- Coverage   75.93%   75.17%   -0.77%     
==========================================
  Files          18       19       +1     
  Lines        2813     2940     +127     
==========================================
+ Hits         2136     2210      +74     
- Misses        464      493      +29     
- Partials      213      237      +24     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread deploy/chart/templates/daemonset.yaml Outdated
@AshleyDumaine

AshleyDumaine commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

Can you document the new feature on docs/configuration/environment.md and docs/configuration/loadbalancer.md as well?
I think we'll also want a new chainsaw e2e test for this.

@vsilva-akamai

Copy link
Copy Markdown
Contributor Author

Can you document the new feature on docs/configuration/environment.md and docs/configuration/loadbalancer.md as well? I think we'll also want a new chainsaw e2e test for this.

I updated the docs as requested, and now I'm working on getting the Chainsaw tests implemented and working.

@vsilva-akamai

Copy link
Copy Markdown
Contributor Author

Can you document the new feature on docs/configuration/environment.md and docs/configuration/loadbalancer.md as well? I think we'll also want a new chainsaw e2e test for this.

Tests implemented.

AshleyDumaine
AshleyDumaine previously approved these changes Sep 28, 2026
@AshleyDumaine
AshleyDumaine enabled auto-merge (squash) September 28, 2026 18:03
AshleyDumaine
AshleyDumaine approved these changes Sep 28, 2026 •
@AshleyDumaine
AshleyDumaine enabled auto-merge (squash) September 28, 2026 20:22
@AshleyDumaine
AshleyDumaine merged commit 7a71648 into linode:main Sep 28, 2026
12 of 14 checks passed
@vsilva-akamai
vsilva-akamai deleted the LKE-9993-nitro-networking branch September 28, 2026 20:39

This branch was successfully deployed

1 active deployment
prod-external — 2871942a Deployed Sep 28, 2026 by vsilva-akamai via codecov #2063
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-feature for new features in the changelog.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants