Skip to content

Stage eBPF host-routing prerequisites for pod BBR #2609

Description

@devantler

🤖 Generated by the Daily AI Engineer

Summary

Stage the datapath prerequisites that let Cilium BBR apply to ordinary pod network namespaces, while keeping the current production render unchanged by default.

Motivation

The default-off bandwidth-manager slice in #2608 can safely use bandwidthManager.bbrHostNamespaceOnly: true, but Cilium's documented pod-BBR path additionally requires eBPF host routing. The current Hetzner topology uses tunnel routing and intentionally leaves bpf.masquerade disabled, so removing the host-only guard before those prerequisites are proven would roll every Cilium agent without delivering pod BBR.

Proposed solution

Add a separate default-off Hetzner component for the smallest compatible eBPF host-routing / masquerade configuration. Validate it with the existing kube-proxy replacement, WireGuard tunnel, strict-mode, and private-NIC settings before any production activation.

Acceptance criteria

  • Current committed local and production renders remain unchanged.
  • A temporary opt-in render proves the complete pod-BBR prerequisite set.
  • Compatibility with tunnel-mode WireGuard, strict mode, kube-proxy replacement, and existing device selection is documented and statically validated.
  • bandwidthManager.bbrHostNamespaceOnly remains true until this prerequisite has merged and passed a separate live soak.
  • Activation and rollback are separate, low-traffic-window changes with Cilium status and Hubble verification.
  • No netkit migration is included.

Alternatives considered

  • Enable pod BBR directly in feat(cilium): stage bandwidth manager with BBR #2608: rejected because the current datapath does not meet the documented prerequisites.
  • Bundle the prerequisite with activation: rejected because it would combine multiple production-wide datapath changes in one roll.

Part of #2029. Blocks pod-scope activation of #2608. Rough size: medium.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions