-
Notifications
You must be signed in to change notification settings - Fork 135
CORE#12191: Adds clarity on Maglev doc, surrounding NodePorts and type:LoadBalancer #2455
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for calico-docs-preview-next ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
❌ Deploy Preview for tigera failed. Why did it fail? →Built without sensitive environment variables
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR improves the Maglev load balancing documentation by clarifying NodePort limitations and adding guidance on using Maglev with LoadBalancer IPAM. The changes address confusion around when Maglev functionality is useful and how to properly configure services to leverage it.
Changes:
- Clarified that Maglev doesn't work with NodePorts specifically (not just NodePort-type services)
- Added new section explaining how to use Maglev with LoadBalancer IPAM and BGP advertisement
- Updated prerequisites to emphasize the need for external IP routing capability
| ## Use Maglev Alongside $[prodname] LoadBalancer IPAM | ||
|
|
||
| Maglev can be enabled on services with `type: LoadBalancer`, and $[prodname] can be configured to allocate | ||
| load balancer VIPs. See the guide to [enable LoadBalancer IPAM](networking/ipam/service-loadbalancer). |
Copilot
AI
Jan 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The relative link path is incorrect. Based on the file's location in calico-enterprise/networking/configuring/, this link should start with ../../ to navigate up to the root, or use an absolute path starting with /calico-enterprise/. The current path networking/ipam/service-loadbalancer will not resolve correctly from this file's location.
| load balancer VIPs. See the guide to [enable LoadBalancer IPAM](networking/ipam/service-loadbalancer). | |
| load balancer VIPs. See the guide to [enable LoadBalancer IPAM](../../networking/ipam/service-loadbalancer). |
| ## Prerequisites | ||
|
|
||
| * Your cluster uses the eBPF data plane with [direct server return mode](../../operations/ebpf/enabling-ebpf.mdx#try-out-direct-server-return-mode). | ||
| * Your cluster uses the eBPF data plane with [direct server return mode](../../../operations/ebpf/enabling-ebpf#try-out-direct-server-return-mode). |
Copilot
AI
Jan 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The relative link path appears incorrect. The file is in calico-enterprise/networking/configuring/, so the path ../../../operations/ebpf/enabling-ebpf would navigate too far up (3 levels up would go above the calico-enterprise directory). This should be ../../operations/ebpf/enabling-ebpf.mdx#try-out-direct-server-return-mode to correctly reference the file.
| * Your cluster uses the eBPF data plane with [direct server return mode](../../../operations/ebpf/enabling-ebpf#try-out-direct-server-return-mode). | |
| * Your cluster uses the eBPF data plane with [direct server return mode](../../operations/ebpf/enabling-ebpf.mdx#try-out-direct-server-return-mode). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ctauchen based on our chat, I think Copilot is wrong here, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I think the suggestion here is exactly right. If you're referring to the CE doc, you need to go up two levels, and the mdx file ref is preferred.
calico-enterprise/networking/configuring/add-maglev-load-balancing.mdx
Outdated
Show resolved
Hide resolved
calico-enterprise/networking/configuring/add-maglev-load-balancing.mdx
Outdated
Show resolved
Hide resolved
ffea0db to
9674b88
Compare
9674b88 to
13edc4f
Compare
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
c116ed5 to
7b632e0
Compare
|
Prior to merge, I'd also like to copy this doc to the OSS equivalent |
ctauchen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few nits, otherwise LGTM.
| description: Add Maglev load balancing to a Kubernetes service. | ||
| --- | ||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rm
| ## Prerequisites | ||
|
|
||
| * Your cluster uses the eBPF data plane with [direct server return mode](../../operations/ebpf/enabling-ebpf.mdx#try-out-direct-server-return-mode). | ||
| * Your cluster uses the eBPF data plane with [direct server return mode](../../../operations/ebpf/enabling-ebpf#try-out-direct-server-return-mode). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I think the suggestion here is exactly right. If you're referring to the CE doc, you need to go up two levels, and the mdx file ref is preferred.
| ## Prerequisites | ||
|
|
||
| * Your cluster uses the eBPF data plane with [direct server return mode](../../operations/ebpf/enabling-ebpf.mdx#try-out-direct-server-return-mode). | ||
| * Your cluster uses the eBPF data plane with [direct server return mode](../../../operations/ebpf/enabling-ebpf#try-out-direct-server-return-mode). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * Your cluster uses the eBPF data plane with [direct server return mode](../../../operations/ebpf/enabling-ebpf#try-out-direct-server-return-mode). | |
| * Your cluster uses the eBPF data plane with [direct server return mode](../../operations/ebpf/enabling-ebpf.mdx#try-out-direct-server-return-mode). |
|
|
||
|
|
||
| To verify that $[prodname] has configured Maglev load balancing for the service, check the logs from any `calico-node` pod for the string `Wrote Maglev` in reference to your service. | ||
| ## Optional: Verify that $[prodname] has configured Maglev load balancing for the service |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd leave out the optional. Verification is always optional, but we never say it.
| ```bash title='Example log query' | ||
| kubectl -n calico-system logs calico-node-7kltn | grep --ignore-case 'Wrote Maglev' | ||
| ```bash title='Example NAT table dump' | ||
| kubectl -n calico-system exec <pod name> -- calico-node -bpf nat dump |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| kubectl -n calico-system exec <pod name> -- calico-node -bpf nat dump | |
| kubectl -n calico-system exec <pod-name> -- calico-node -bpf nat dump |
|
|
||
| ```bash title='Example output' | ||
| 2025-10-28 15:30:53.091 [INFO][75] felix/syncer.go 893: Wrote Maglev service backends to LUT service=default/svc:maglev-port | ||
| Replace `<pod name>` with the name of any calico-node pod. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Replace `<pod name>` with the name of any calico-node pod. | |
| Replace `<pod-name>` with the name of any calico-node pod. |
Product Version(s):
OSS and EE next
Issue
Link to docs preview:
SME review:
DOCS review:
Additional information:
Merge checklist: