Skip to content

feat(cilium): stage eBPF host-routing prerequisites for pod BBR - #2680

Merged
devantler merged 2 commits into
mainfrom
claude/cilium-ebpf-host-routing-2609
Jul 17, 2026
Merged

devantler merged 2 commits into
mainfrom
claude/cilium-ebpf-host-routing-2609

Conversation

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Daily AI Engineer

Why

Pod-scope BBR (the point of the staged bandwidth-manager component) requires eBPF host routing, which today's datapath deliberately lacks — activating BBR without it would roll every Cilium agent for no benefit. This stages the missing prerequisite safely, without touching production.

What

Adds a second default-off Cilium staging component (BPF masquerade + eBPF host routing) next to the bandwidth-manager one, wired as a commented opt-in. Production and local renders are proven unchanged; a temporary opt-in render proves the complete pod-BBR prerequisite set composes. Activation stays a separate, reversible low-traffic change after its own live soak.

Fixes #2609. Part of #2029.

…d BBR

Default-off Hetzner component (bpf.masquerade + explicit
bpf.hostLegacyRouting: false) staging the smallest pod-BBR prerequisite
set per #2609. Unreferenced by default: both provider controllers
renders proven byte-identical to main; a temporary opt-in render proves
the complete prerequisite set composes with bandwidth-manager-bbr while
its bbrHostNamespaceOnly guard stays true. Compatibility with tunnel
WireGuard/strict mode/KPR documented in the component; activation and
rollback remain separate low-traffic changes. No netkit.

Fixes #2609. Part of #2029.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Daily AI Engineer

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3c52ca92ff

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

…ctivation blocker (codex P1)

With devices pinned to the private NICs, BPF masquerading would never
attach to the public default-route NICs while iptables masquerade is
disabled — external egress would break cluster-wide on activation. The
component and its opt-in reference now name #2610's extended device
selection as a hard precondition.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Daily AI Engineer

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: 9c237f446e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Daily AI Engineer

User-evaluation + self-promotion readiness record (head 9c237f4): the change's entire observable effect is in the render, and both directions were exercised — (1) default renders of BOTH provider controllers roots (k8s/providers/{hetzner,docker}/infrastructure/controllers/) proven byte-identical to main (the cluster-root comparison alone is vacuous — it renders only the Flux bootstrap layer); (2) a temporary opt-in render with BOTH staging components enabled shows the cilium HelmRelease values carrying the complete pod-BBR prerequisite set (bandwidthManager{enabled,bbr,bbrHostNamespaceOnly:true} + bpf{masquerade:true,hostLegacyRouting:false}); ksail workload validate green on both configs (543 files). Codex's P1 (public-NIC masquerade attachment) is encoded as a hard #2610-gated activation blocker, verified against the hetzner devices pin. Pentad clear: green CI, 0 threads, CLEAN, Codex clean at this exact head (premerge absent = Codex lane). Promoting and enqueuing — the component ships default-off; activation remains a separate gated change.

@devantler
devantler marked this pull request as ready for review July 17, 2026 11:13
@devantler
devantler added this pull request to the merge queue Jul 17, 2026
Merged via the queue into main with commit bfd1b11 Jul 17, 2026
19 checks passed
@devantler
devantler deleted the claude/cilium-ebpf-host-routing-2609 branch July 17, 2026 11:20
@github-project-automation github-project-automation Bot moved this from 🫴 Ready to ✅ Done in 🌊 Project Board Jul 17, 2026
@botantler-1

botantler-1 Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.119.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@botantler-1 botantler-1 Bot added the released label Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Stage eBPF host-routing prerequisites for pod BBR

1 participant