cilium/cilium
By the numbers
Data collected on 2026-04-30 from git log against main at commit b2f2bf43dd.
Size
| Surface | Files |
|---|---|
| Go source files (excl. vendor) | ~4,065 |
| Go test files | ~876 |
BPF C source files (.c) |
~167 |
BPF C headers (.h) |
~187 |
Top-level packages under pkg/ |
~120 |
xychart-beta horizontal
title "Lines of Go (KB on disk, excl. vendor)"
x-axis ["pkg/", "operator/", "cilium-cli/", "hubble/", "daemon/"]
y-axis "Size (KB)" 0 --> 30000
bar [26456, 7448, 2996, 496, 436]xychart-beta horizontal
title "BPF dataplane size (KB on disk)"
x-axis ["bpf/"]
y-axis "Size (KB)" 0 --> 12000
bar [10172]The bulk of the codebase lives in pkg/, where each subdirectory is a focused package consumed by one or more binaries. The agent binary (daemon/) is intentionally thin — it only wires Hive cells from pkg/. The largest single Go binary by source surface is the operator (operator/), which embeds many cluster-wide controllers.
Activity
- Total commits since the project began (Dec 2015): 56,000+
- Commits per year (last six years):
| Year | Commits |
|---|---|
| 2020 | 4,504 |
| 2021 | 3,465 |
| 2022 | 3,998 |
| 2023 | 6,497 |
| 2024 | 5,768 |
| 2025 | 5,796 |
| 2026 (YTD, through April) | 1,431 |
- Commits in the last 90 days (as of 2026-04-30): ~1,160.
- Trend: activity has held steady at roughly 5,000–6,500 commits per year since 2023, the year the agent was migrated to Hive cells and the test infrastructure was modernised.
Bot-attributed commits
Approximately 9.9% of commits since 2024-01-01 were authored or co-authored by bots (renovate-bot, github-actions[bot], dependabot[bot], cilium-renovate[bot], ci-cilium, etc.). 1,529 of 15,384 commits since 2024-01-01 match a bot pattern. This is a lower bound — inline AI-assisted edits and CI-driven docs/CRD regeneration commits leave no bot trace in the author field.
Activity hotspots
Directories that change most frequently are the agent's startup wiring (daemon/cmd/), the policy engine (pkg/policy/), the BPF maps (pkg/maps/), and Helm values (install/kubernetes/cilium/values.yaml). The Documentation/ tree is also a churn hotspot because every CRD change requires a docs update enforced by CI checks under Documentation/check-*.sh.
Complexity
- Largest C dataplane file:
bpf/bpf_lxc.candbpf/bpf_host.care both multi-thousand line programs that embed many of the per-pod and per-host eBPF entry points. - Largest Helm values file:
Documentation/helm-values.rstis auto-generated and exceeds 200 KB. - Vendored modules: Cilium commits its full Go vendor tree (
vendor/) — about 20 sub-trees including Kubernetes client-go, Envoy go-control-plane, Hubble protobufs, gops, and statedb.
Test surface
- Go unit tests: ~876
_test.gofiles, run viamake unit-tests. - BPF unit tests: under
bpf/tests/andbpf/complexity-tests/, run viamake -C bpf unit-test. - Integration tests: privileged unit tests under various
pkg/*/directories, run viamake tests-privileged. - End-to-end tests: Ginkgo suite under
test/(legacy) and thecilium-cli connectivity testsuite (current). - CI workflows: dozens of GitHub Actions workflows under
.github/workflows/, including matrix runs across kernel versions and Kubernetes versions.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.