Skip to content

felix: support anycast failover for LoadBalancer VIPs#13138

Open
Subhom1 wants to merge 1 commit into
projectcalico:masterfrom
Subhom1:fix-anycast-failover-13136
Open

felix: support anycast failover for LoadBalancer VIPs#13138
Subhom1 wants to merge 1 commit into
projectcalico:masterfrom
Subhom1:fix-anycast-failover-13136

Conversation

@Subhom1

@Subhom1 Subhom1 commented Jul 4, 2026

Copy link
Copy Markdown

Description

Adds opt-in anycast failover for LoadBalancer VIPs using:

projectcalico.org/anycast: "true"

When no local endpoint is available:

  • iptables traffic accepted by Calico policy bypasses kube-proxy’s no-endpoint rejection and follows normal routing.
  • The BPF dataplane falls through to routing instead of returning ICMP unreachable.
  • Rules are limited to the Service’s LoadBalancer VIPs, protocols, and ports.

Fixes #13136.

Testing

  • go test ./felix/rules
  • go test ./felix/calc
  • go test ./felix/bpf/proxy
  • Linux dataplane compile-only test
  • Linux dataplane suite: 982 passed; 12 unrelated failures due to missing generated XDP fixtures

Release note

Support opt-in anycast failover for LoadBalancer VIPs when local endpoints are unavailable.

@Subhom1 Subhom1 requested a review from a team as a code owner July 4, 2026 17:57
@marvin-tigera marvin-tigera added this to the Calico v3.33.0 milestone Jul 4, 2026
@marvin-tigera marvin-tigera added release-note-required Change has user-facing impact (no matter how small) docs-pr-required Change is not yet documented labels Jul 4, 2026
@CLAassistant

CLAassistant commented Jul 4, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@fasaxc

fasaxc commented Jul 7, 2026

Copy link
Copy Markdown
Member

Haven't reviewed the code itself, but API-wise, I'm not sure anycast is the right framing; it's your use case, but it doesn't really explain what the flag does. This should be something like lb.projectcalico.org/no-endpoints-action: Drop | Forward. We already use the lb.projectcalico.org for Maglev annotations.

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

Labels

docs-pr-required Change is not yet documented release-note-required Change has user-facing impact (no matter how small)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support anycast failover for LoadBalancer VIPs when local endpoints are unavailable

4 participants