Skip to content

feat: Add the network load balancer API - #624

Open
scotwells wants to merge 1 commit into
mainfrom
codex/nlb-api-foundation
Open

scotwells wants to merge 1 commit into
mainfrom
codex/nlb-api-foundation

Conversation

@scotwells

@scotwells scotwells commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This adds the resource customers use to create a network load balancer. It covers TCP and UDP listeners, the backend services that receive traffic, health check settings, and a status that shows each location's address and hostname. Options the platform can't serve yet, such as IPv4, TLS and multiple backends on one listener, are part of the API but refused with a clear message when used. Nothing serves traffic yet.

Test plan

  • API validation and admission tests pass
  • Generated API schema and reference docs are up to date

First in the load balancer stack: #624, #712, #713, #714, #715, #716. Related to #611 and datum-cloud/enhancements#884

@scotwells scotwells changed the title Add network load balancer API foundation feat: Add network load balancer API foundation Oct 12, 2026
@scotwells scotwells changed the title feat: Add network load balancer API foundation feat: Add the network load balancer API Oct 23, 2026
@scotwells
scotwells requested review from ecv and kevwilliams October 23, 2026 14:55
@scotwells
scotwells marked this pull request as ready for review October 23, 2026 14:55
@scotwells
scotwells requested a review from a team as a code owner October 23, 2026 14:55

@kevwilliams kevwilliams 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.

Diff exceeds auto-review threshold (3654 lines). Flagging for human review.

@scotwells
scotwells force-pushed the codex/nlb-api-foundation branch 2 times, most recently from f801336 to 8140d76 Compare October 23, 2026 15:41
@cla-assistant

cla-assistant Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@scotwells
scotwells added this pull request to stack #717 October 23, 2026 15:58
Add the resource customers use to create a network load balancer: TCP and
UDP listeners, the backend services that receive traffic, health check
settings, and per-location address and hostname status.

Key changes:
- Add NetworkLoadBalancer and NetworkLoadBalancerRoute types and CRDs
- Refuse options the platform cannot serve yet (IPv4, TLS, multiple
  backends, cross-namespace references) with a clear admission message
- Regenerate CRDs and API reference docs

@ecv ecv 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.

Approve.
Ran at 3d56f6e: go vet and the api, webhook, manager, agent and networkagent tests pass.
Ran TestNetworkLoadBalancerAdmission against envtest 1.31.0 and all 11 admission cases pass, so the CEL rules compile and enforce under a real apiserver.
CRD generation, kustomize validation and the generated-files check are green.
Nit: api/v1alpha/networkloadbalancerroute_types.go and the webhook treat a parentRef by listener name and a parentRef by port as different keys, so internal/webhook/v1alpha/networkloadbalancerroute_webhook.go:58-66 does not flag two refs that resolve to the same listener.
Fix in #713 by deduplicating on the resolved listener, since the route controller already collapses them in status.
Nit: config/quota adds registrations and claim policies but no grant, so projects get no allowance until a grant lands in infra.
Link the infra change before this reaches production.
Stack: first of #624, #712, #713, #714, #715, #716, each based on the previous branch, so merge in that order.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants