Skip to main content
Cilium at Ten: Community Scale, Survey Signals, and the 1.19 Technical Thread
  1. Posts/

Cilium at Ten: Community Scale, Survey Signals, and the 1.19 Technical Thread

·1382 words·7 mins
NeatGuyCoding
Author
NeatGuyCoding

Cilium at Ten: Community Scale, Survey Signals, and the 1.19 Technical Thread
#

What This Episode Is Worth Keeping
#

This is not a feature launch; it is a founder roundtable + community survey reveal + AMA. If you care why Cilium went from a single .gitignore in 2015 to a top-tier CNCF project today, or want to cross-check spoken roadmap against published 1.19 docs, the episode still has archival value: on-screen milestone numbers, LinkedIn survey top answers, and Daniel Borkmann on Big TCP / BBR and Thomas Graf on ztunnel, L7, and 2.0 make a useful entry for reading “community narrative” alongside official documentation. Side stories such as an NGINX strategy typo or benchmarking NodePort with Quake 3 cannot be verified on their own, but they help explain how maintainers think about data-plane evolution. There was no live terminal demo in this session; commands below come from official docs and can be reproduced on your own cluster.


A Ten-Year Scale: From First Commit to CNCF Scale
#

On December 16, 2015, Thomas Graf pushed Cilium’s initial commit on GitHub (7fa3c60, including .gitignore and LICENSE). The CNCF project page records Cilium joining as an Incubating project on 2021-10-13 and graduating on 2023-10-11.

On-screen milestones in the show (point-in-time snapshots, not live APIs) included: 1,000+ contributors (slides once showed 1,012), second in CNCF by total contributions, 45k+ GitHub stars, 546,000+ total contributions since joining CNCF (up 142% since 2021), 50,000+ PRs across the repo, and contributors in 82 countries. Host Liz Rice also noted some figures may already be stale—consistent with GitHub stars and contributor counts drifting over time; cite a statistics date when writing. “Second in CNCF contributions,” “546k / 82 countries / 50k PRs,” and similar figures were not independently re-exported from DevStats in this write-up; for rigorous citations see Cilium DevStats.

Figure: slide Milestones — first commit December 2015, 1,000+ contributors, second in CNCF contributions, 45k+ GitHub stars (on-screen text).

Figure: slide Milestones (cont’d) — Total Contributions 546,000+, Total PRs 50,000+, Global Reach 82 countries (on-screen text).

Resources


What the Community Survey Said (Guessing Results, Not Official Adoption Rates)
#

The show used a “Survey says…” format to reveal answers collected beforehand on LinkedIn and social media. Rankings below are from that community survey readout; do not present them as official product statistics or adoption rates.

QuestionTop directions revealed on screen
What Cilium replacedOther CNI → kube-proxy → Service mesh / Ingress
Most-used features in productionNetworking (generalized CNI) → Network policy → Hubble UI → kube-proxy replacement
“Biggest problem” solvedNetwork policies that work → Observability → Performance → Service mesh complexity
How people first heard of itBlog/article → Conference → … → YouTube and eCHO

The enterprise name-guessing segment showed Adobe, Microsoft, OpenAI on screen; USERS.md can be checked for self-reported users (including Adobe, Microsoft, etc.). OpenAI does not appear on that list (as of the public USERS.md). Anecdotally, founders mentioned replacing Calico, kube-proxy, Ingress, standalone service meshes, and more—aligned with survey directions but still presenter/community narrative.

Figure: Survey says — Network policies that work, Observability/visibility, Performance issues, Service mesh complexity (on-screen text).

Resources


Big TCP, the eBPF Path, and What Landed in 1.19
#

In the AMA, @eBPFCilium asked about eBPF’s role in Big TCP; Daniel Borkmann explained that Big TCP relies on the kernel aggregating larger packets; if traffic still goes through the traditional host stack, socket association can be “orphaned” and TCP backpressure breaks—you need paths such as eBPF Host-Routing to get the performance gains described in the docs. He said Cilium’s side is on the order of 256K packets; current stable docs list GSO/GRO limits as 192k—treat the documentation as authoritative and note 256K as spoken, not aligned with docs.

Cilium 1.19 (spoken as “around early February”) aligns with v1.19.0 release (2026-02-04), including Ztunnel Beta, Gateway API improvements, and Helm charts published via OCI. Spoken “enhanced mutual TLS” maps in release notes to new ztunnel paths; legacy Mutual Authentication is off by default—read release notes for migration; do not read it simply as “the old SPIRE flow, strengthened.”

Figure: audience question — what role eBPF plays in Big TCP and which eBPF programs are used (chat text).

When enabling Big TCP with Host-Routing, docs require (Cilium 1.19.x stable) kernel: IPv6 BIG TCP ≥ 5.19, IPv4 BIG TCP ≥ 6.3.

# Helm example (from performance tuning doc pattern; adjust values for your environment)
helm upgrade cilium oci://quay.io/cilium/charts/cilium \
  --namespace kube-system \
  --reuse-values \
  --set kubeProxyReplacement=true \
  --set bpf.masquerade=true \
  --set routingMode=native \
  --set enableIPv4BIGTCP=true \
  --set enableIPv6BIGTCP=true

kubectl -n kube-system exec ds/cilium -- cilium-dbg status
# Look for Host Routing: BPF, IPv4/IPv6 BIG TCP: enabled, etc.

Resources


ztunnel, Encryption, and IPv6 Design History
#

Thomas Graf described ztunnel (encryption.type=ztunnel): transparent L4 mTLS on the node, with the control plane coordinated by the agent and local ztunnel; avoid mixing Cilium ztunnel nodes with Istio Ambient ztunnel nodes in one cluster—engineering judgment; public docs do not literally say “do not mix,” but Istio integration stresses avoiding conflicting configs. Important conflict: he mentioned propagating ztunnel identity via Cluster Mesh; ztunnel documentation states Cluster Mesh is incompatible with ztunnel (do not enable Cluster Mesh before install). For operations, treat them as mutually exclusive per docs.

helm install cilium oci://quay.io/cilium/charts/cilium \
  --namespace kube-system \
  --set encryption.enabled=true \
  --set encryption.type=ztunnel

kubectl label namespace <your-ns> io.cilium/mtls-enabled=true

On IPv6: presenter view — early versions leaned IPv6-only (container scale and address-planning motivation), then IPv4 was strengthened under user pressure; “using IPv6 to address memory” reads more like a vision; Daniel Borkmann said DMA and similar paths are more common today—no known production-grade “IPv6 for memory addressing” scheme could be verified.

Resources


BBR, BGP, and Implementation Choices
#

BBR: Daniel mentioned fixing lost TCP timestamps on the pod→host path; Bandwidth Manager documents similar issues on older kernels at netns transitions and requires eBPF Host-Routing with bandwidthManager.bbr=true. KubeCon Cubic vs BBR streaming comparisons are demo anecdotes.

kubectl -n kube-system exec ds/cilium -- cilium-dbg status | grep -i bandwidth

BGP: In chat, Tony Norlin described Cilium BGP letting components outside the CNI VXLAN fabric (e.g. external k8s control plane) communicate; BGP Control Plane advertises Pod/Service routes to routers—specific topology is the user’s scenario; no demo in this episode.

# Helm values snippet
bgpControlPlane:
  enabled: true

Go: Thomas and André explained that Kubernetes ecosystem clients were mostly Go back then and kernel developers picked it up quickly; fine-grained agent memory control was hard, early CI used bash—all presenter views.

Resources


L7 Capability Boundaries and When “2.0” Might Appear
#

Thomas Graf drew two lines: open source L7 network policy goes through node-side Envoy proxy (see Layer 7 Policies); Isovalent Enterprise eBPF L7 parsers (passive HTTP/DNS observability, low overhead) cannot replace a full proxy (no retry; L7 LB and similar need termination/flow control)—Enterprise product lines on docs.cilium.io have no open-source page that literally matches “L7 eBPF parser”; capability boundaries marked presenter view. Data-plane maturity notes (e.g. races only at very large scale) are maintainer experience with no standalone CVE.

On Cilium 2.0: no timeline; motivations include technical debt from long “seamless upgrades” and new Kubernetes needs for virtualization; no 2.0/10.0 branding for marketing alone—presenter view. Liz previewed future eCHO episodes may cover 1.19 features and cloud-native outlook—that is show scheduling, not a release commitment.

Resources


Unverified Boundaries (Read With Care)
#

  • Full community survey rankings, on-screen enterprise list vs real adoption rates
  • Exact definitions behind P02 figures: 546k contributions, 82 countries, 50k PRs, CNCF “second”
  • Big TCP 256K vs docs 192k; ztunnel + Cluster Mesh spoken vs docs mutual exclusion
  • Enterprise L7 eBPF parser, Cilium 2.0 timing and motivations, Quake3/Datadog/Android anecdotes
  • Complete timeline of IPv6-only early releases

If you only care about paths you can verify hands-on: install 1.19 via OCI → cilium-dbg status for Host Routing / BIG TCP / BandwidthManager → enable ztunnel or BGP as needed, and use the table above to separate “documentation” from “what was said on this show.”

Related

AI-Powered Search: When RAG, Agents, and Classic IR Get Rewired

·2081 words·10 mins
AI-Powered Search: When RAG, agents, and classic IR get rewired—retrieval quality vs. agent loops, long context vs. searchable history, leaderboard embeddings vs. domain corpora, with Doug Turnbull and Trey Grainger on what ships.