The Cilium project announced version 1.20, building on its networking capabilities for Kubernetes. Engineers Nico Vibert and Donia Chaihloudj described Gateway API as 'a much broader traffic management layer' in this release, which moves from Gateway API 1.4 to 1.6. New features include ExternalAuth for HTTP authentication against external services, ListenerSets to allow application teams to manage listeners without platform team intervention, CORS filtering, and support for TCPRoute and UDPRoute for non-HTTP traffic such as databases and DNS.
Platform engineer Mohamed Salem BEN ATAIA praised ListenerSets on LinkedIn, saying, 'It removes a platform bottleneck.' The direction aligns with broader Kubernetes community recommendations as organisations move away from the retired Ingress NGINX controller. AWS has similarly reached GA for Gateway API support in its Load Balancer Controller, though Cilium differs by offering CNI, service networking, and gateway functions from a single project.
The second major change opens Cilium's eBPF datapath to third-party plugins, allowing cloud providers to implement custom instrumentation or networking behaviour without maintaining a fork. Plugins run as separate processes, communicating via gRPC, and can be versioned independently. Vibert and Chaihloudj noted, 'Datapath plugins, developed by Google, make Cilium less like a sealed networking appliance and more like a network operating system.' The plugin mechanism remains beta and is not intended for general use, as it can break Cilium or weaken security.
Cilium 1.20 also introduces automatic selection of the pod datapath. Setting "bpf.datapathMode=auto" makes each agent test its host at startup, using netkit on compatible kernels (Linux 6.8 or later) and falling back to traditional veth pairs elsewhere. The default remains veth, so existing installations are unaffected unless operators opt in.
Finally, version 1.20 adds improvements to ztunnel, the per-node proxy for sidecarless mutual TLS. Operators can now choose between an internal certificate authority and SPIRE-issued workload identities, with Prometheus metrics for monitoring. Ztunnel establishes TLS 1.3 over an HBONE tunnel to avoid first-packet loss, encrypting supported TCP traffic between pods on the same node. It remains beta, while the older Mutual Authentication feature is deprecated. Users upgrading should consult the release notes for breaking changes.