What cilium/cilium shipped
Written by FoxPlug from the repository's own releases; not affiliated with Cilium. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/cilium/cilium; Cilium did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- NewNodeHandler now receives the real IPsec config instead of a zero-value fake, restoring the effect of --use-cilium-internal-ip-for-ipsec. Pull request #49827
- The IPsec config fix was backported to v1.19. Pull request #49839
- The IPsec config fix was backported to v1.20. Pull request #49838
- An iptables hairpin SNAT rule was added for BPF masquerade with kube-proxy so pods can reach eTP=Local LB VIPs and NodePorts on their own node. Pull request #49066
- ENABLE_NODEPORT was reapplied as runtime config, with two optimizations added to reduce overhead. Pull request #49820
- A new EndpointSliceSync controller was added for ClusterEndpointSlice based on the new ClusterEndpointSlices data. Pull request #49705
- IPAM multi-pool gained per-pool IP and CIDR-block metrics. Pull request #48005
- A Pod's reserved physical RX queue is now leased as a second receive queue, queue 1, on its normal eth0 when the sandbox starts. Pull request #49867
- Ethtool ntuple rules now steer a Pod's TCP and UDP traffic over IPv4 and IPv6 to its reserved physical queue. Pull request #49876
- A fix prevents incorrect CiliumEndpoint deletion during endpoint replacement. Pull request #49573
Why it matters
This week brings several datapath changes that affect how traffic is handled: the IPsec internal IP option works again, BPF masquerade with kube-proxy can reverse DNAT for hairpin traffic, and ENABLE_NODEPORT is back as runtime config after a revert. Operators also get per-pool IPAM metrics and new clustermesh EndpointSlice sync logic, while the RX queue work continues toward steering Pod traffic to reserved hardware queues.
Changelog entry
- Pass the real IPsec config to the node handler so --use-cilium-internal-ip-for-ipsec is honored. Pull request #49827
- Backport the IPsec config fix to v1.20. Pull request #49838
- Backport the IPsec config fix to v1.19. Pull request #49839
- Add an iptables hairpin SNAT rule for BPF masquerade with kube-proxy to fix eTP=Local VIP and NodePort reachability from pods on the same node. Pull request #49066
- Reapply the ENABLE_NODEPORT runtime config conversion with optimizations. Pull request #49820
- Add an EndpointSliceSync controller for ClusterEndpointSlice in clustermesh. Pull request #49705
- Validate Name, Namespace and Service name on MCSAPIServiceSpec and ClusterEndpointSlice received from remote clusters. Pull request #49845
- Add per-pool IP and CIDR-block metrics to IPAM multi-pool. Pull request #48005
- Lease a Pod's reserved physical RX queue as queue 1 on eth0 when the sandbox starts. Pull request #49867
- Program RX queue flow steering rules with ethtool ntuple for TCP and UDP over IPv4 and IPv6. Pull request #49876
- Fix incorrect CiliumEndpoint deletion during endpoint replacement. Pull request #49573
- Discover available Gateway API versions in sysdump instead of using fixed ones. Pull request #49840
This week: the IPsec internal IP flag works again after passing the real config to the node handler, the ENABLE_NODEPORT runtime config work was reapplied, and a hairpin SNAT rule fixes eTP=Local and NodePort reachability with BPF masquerade and kube-proxy. Also: per-pool IPAM me
A busy week in the Cilium datapath and control plane. NewNodeHandler was passing a zero-value fake IPsec config, so --use-cilium-internal-ip-for-ipsec was silently ignored; it now gets the real config, and the fix is backported to v1.19 and v1.20. The ENABLE_NODEPORT runtime config change was reapplied with optimizations, and an iptables hairpin SNAT rule lets pods reach eTP=Local LB VIPs and NodePorts on their own node when using BPF masquerade with kube-proxy. Elsewhere, multi-pool IPAM gained per-pool IP and CIDR-block metrics, clustermesh gained an EndpointSliceSync controller for ClusterEndpointSlice, and RX queue work now lets a Pod lease its reserved queue on eth0 as a second receive queue.
Week of October 26, 2026
What shipped
- Cilium-agent now reuses compiled endpoint templates and base BPF programs across restarts when the build and configuration are unchanged, instead of recompiling every BPF object at each start. Pull request #49087
- BGP unnumbered peering using RFC 5549 and ENHE is supported in the BGP control plane. Pull request #47394
- Policy computation results are now dropped for identities removed mid-computation, and the processRequests flow was reworked to merge retries of failed computations. Pull request #49484
- Policy computation no longer leaks superseded policies, and the UpdatePolicy benchmark now selects every identity and reports mean ns per update, regenerations and memory. Pull request #49639
- The CIDR_IDENTITY_RANGE_END value is aligned with MaxLocalIdentity so CIDR identities above the previous limit are recognized by identity_is_cidr_range() and identity_is_world(). Pull request #49715
- Endpoints now refresh DNS redirect rules after identity changes so DNS requests to newly selected identities are no longer denied by a stale proxy policy snapshot. Pull request #49699
- An egress rule combining toServices with toPorts no longer becomes an L3 wildcard allow on those ports when the referenced Service does not exist or is selector-less with no backends. Pull request #49430
- Loading IPsec keys now explicitly checks the field count and reports the two supported formats, instead of a misleading decoding error or an out-of-range access. Pull request #49709
- A new cilium-operator flag, --ces-empty-before-delete-threshold, makes the operator empty a CiliumEndpointSlice before deleting it when it holds at least the threshold number of endpoints. Pull request #49215
- ENABLE_HOST_FIREWALL is now a runtime config option rather than a compile-time macro. Pull request #49494
Why it matters
This week's changes touch datapath startup cost, policy correctness and several connectivity features. Restarting the agent can now skip repeated BPF compilation, policy computation handles concurrent identity removal more carefully, and DNS proxy rules follow identity changes. BGP unnumbered peering and runtime host firewall configuration also expand what operators can enable without rebuilding.
Changelog entry
- Loader: reuse compiled endpoint templates and base BPF programs across agent restarts when build and configuration are unchanged Pull request #49087
- Bgp: support BGP unnumbered peering (RFC 5549 / ENHE) Pull request #47394
- Policy/compute: drop results for identities removed mid-computation and merge retries of failed computations Pull request #49484
- Policy/compute: ensure superseded policies are not leaked Pull request #49639
- Policy: treat unresolved toServices as selecting nothing instead of an L3 wildcard allow Pull request #49430
- Bpf: align CIDR_IDENTITY_RANGE_END with MaxLocalIdentity Pull request #49715
- Endpoint: refresh DNS redirects after identity changes Pull request #49699
- Ipsec: improve invalid key format error in loadIPSecKeys and check field count Pull request #49709
- Operator: add --ces-empty-before-delete-threshold to empty a CiliumEndpointSlice before deletion Pull request #49215
- Bpf: turn ENABLE_HOST_FIREWALL into runtime config Pull request #49494
- Bpf: continue migrating ENABLE_IPV4 to runtime config in wireguard, xdp and overlay programs Pull request #49661
- Cilium-cli: apply standard scheduling parameters to all connectivity test pods Pull request #49113
This week: agent reuses compiled BPF objects across restarts, BGP unnumbered peering lands, policy computation drops results for identities removed mid-run, CIDR identity range aligned with MaxLocalIdentity, and DNS redirects refresh after identity changes.
This week in Cilium: the agent now reuses compiled endpoint templates and base BPF programs across restarts when build and configuration are unchanged, avoiding recompilation on every start. BGP unnumbered peering (RFC 5549) is supported. Policy computation drops results for identities removed mid-computation and avoids leaking superseded policies. CIDR identity range is aligned with MaxLocalIdentity, DNS redirect rules refresh after identity changes, and IPsec key loading reports clearer format errors. ENABLE_HOST_FIREWALL is now runtime configurable, and a new operator flag empties CiliumEndpointSlices before deletion.
Week of October 19, 2026
What shipped
- Released 1.20.4 as an out-of-band security patch that upgrades Go to 1.26.10 so compromised eMudhra intermediate CA certificates are no longer trusted, alongside dependency patch updates. Release
- Released 1.19.10 with the same Go upgrade to 1.26.10 and dependency updates for the security fix. Release
- Released 1.18.16 with the same Go upgrade to 1.26.10 and dependency updates for the security fix. Release
- Enabled BPF masquerading by default, a second attempt that aligns behavior on cloud providers after the earlier attempt was reverted. Pull request #49411
- Turned the ENABLE_ROUTING config macro into runtime config named
enable_bpf_routingand renamed the endpoint datapath field to RequireBPFRouting. Pull request #49487 - Fixed multi-pool IPAM release so that allocator ordering is preserved when freeing excess CIDRs. Pull request #49418
- Stopped the operator from expanding delegated prefixes into individual ENI addresses, since ENI agents use the multi-pool allocator and read prefixes directly. Pull request #49311
- Prevented full cloud resyncs from overwriting cache updates that land after the resync snapshot is read. Pull request #49008
- Changed daemon startup to warn instead of error for BPF masquerade on upgrades when unsupported masquerade options are set. Pull request #49537
- Added initial Gateway API listener TLS options cilium.io/tls-min-version and cilium.io/tls-max-version supporting 1.2 and 1.3. Pull request #49063
Why it matters
This week includes out-of-band security patch releases for 1.20, 1.19 and 1.18 that remove trust in compromised intermediate CA certificates, so users should plan upgrades. Several fixes address correctness in IPAM, endpoint policy, cloud resync and Gateway API behavior. BPF masquerading is enabled by default again, and routing configuration moves to runtime config, both of which change upgrade behavior.
Changelog entry
- Release 1.20.4: security patch upgrading Go to 1.26.10 and updating dependencies. Release
- Release 1.19.10: security patch upgrading Go to 1.26.10 and updating dependencies. Release
- Release 1.18.16: security patch upgrading Go to 1.26.10 and updating dependencies. Release
- Enable BPF masquerading by default. Pull request #49411
- Make ENABLE_ROUTING a runtime config named
enable_bpf_routing. Pull request #49487 - Preserve multi-pool IPAM allocator ordering on release. Pull request #49418
- Stop expanding AWS delegated prefixes into ENI addresses. Pull request #49311
- Prevent full cloud resyncs from overwriting cache updates. Pull request #49008
- Warn instead of error for unsupported BPF masquerade options on upgrades. Pull request #49537
- Add Gateway API listener TLS min and max version options. Pull request #49063
- Skip revDNAT through stale NodePort conntrack entries. Pull request #47641
- Close hook program file descriptors in plugins. Pull request #49521
Security patch releases 1.20.4, 1.19.10 and 1.18.16 are out with Go 1.26.10 to stop trusting compromised eMudhra intermediates. Also this week: BPF masquerading enabled by default, multi-pool IPAM ordering fixed, and Gateway API listener TLS min/max options added.
Out-of-band security patch releases 1.20.4, 1.19.10 and 1.18.16 are available. They upgrade Go to 1.26.10 so compromised eMudhra intermediate CA certificates are no longer trusted, and update dependencies to their latest patch versions. Other changes this week: BPF masquerading is enabled by default after the earlier attempt was reverted; multi-pool IPAM release now preserves allocator ordering; the operator no longer expands delegated prefixes into ENI addresses; full cloud resyncs no longer overwrite cache updates; the ENABLE_ROUTING macro became runtime config enable_bpf_routing; and Gateway API listeners gain TLS min and max version options.
Week of October 12, 2026
What shipped
- Traffic to node InternalIP addresses is no longer always masqueraded when enable-remote-node-masquerade is set. Pull request #49344
- Wildcard CIDR NetworkPolicy selectors now match correctly when policy-cidr-match-mode is set to nodes. Pull request #47828
- Terminating backends stay selected under topology-aware routing instead of being evicted during the pod grace period. Pull request #48349
- The ENI IPAM operator no longer sizes IPv4 pools for nodes that have IPv4 disabled. Pull request #49107
- Gateway API policy now supports GEP-91 frontend client certificate validation with default and per-port settings. Pull request #48587
- The datapath no longer panics converting the NAT46x64 gateway prefix while building node config. Pull request #49177
- The ipcache BPF map is now provided and managed by its own cell in the hive framework. Pull request #49351
- The agent now supports Multi Pool Resource IPAM through the network driver. Pull request #49222
- The CiliumResourceIPPool CRD is now installed in the cluster automatically. Pull request #49365
- Hybrid routing mode now handles WireGuard IPCache subscriptions using native routing requirements. Pull request #49268
Why it matters
This week brings several behavior fixes that people running Cilium will notice: masquerade handling for node InternalIP addresses changed, wildcard CIDR policies work with node match mode, and terminating backends stay selected under topology-aware routing. Gateway API client certificate validation and multi pool resource IPAM in the agent add new capability. Three stable patch releases also shipped bugfixes for conntrack garbage collection and endpoint restore.
Changelog entry
- Nat: stop masquerading node InternalIP addresses when enable-remote-node-masquerade is set. Pull request #49344
- Policy: fix wildcard CIDR selector matching with policy-cidr-match-mode=nodes. Pull request #47828
- Loadbalancer: keep terminating backends selected under topology-aware routing. Pull request #48349
- IPAM ENI: stop allocating IPv4 addresses to nodes with IPv4 disabled. Pull request #49107
- Gateway-api: implement GEP-91 frontend client certificate validation. Pull request #48587
- Datapath: fix NAT46x64 gateway prefix conversion panic in node config. Pull request #49177
- Ipcache: provide the BPF map from its own cell and recreate it on start. Pull request #49351
- Network-driver: support Multi Pool Resource IPAM in the agent. Pull request #49222
- K8s: automatically install the CiliumResourceIPPool CRD in the cluster. Pull request #49365
- WireGuard: subscribe to IPCache updates in hybrid routing mode. Pull request #49268
- Bpf: switch ENABLE_MASQUERADE_IPV4 to runtime config. Pull request #49355
- Datapath: turn ENABLE_NODEPORT_ACCELERATION into runtime config. Pull request #49308
This week: node InternalIP masquerade behavior changed, wildcard CIDR policy fixed for node match mode, terminating backends stay selected under topology-aware routing, and Gateway API client certificate validation landed. Patch releases 1.20.3, 1.19.9 and 1.18.15 shipped.
This week in Cilium: traffic to node InternalIP addresses is no longer always masqueraded when enable-remote-node-masquerade is set, wildcard CIDR NetworkPolicy selectors now match correctly with policy-cidr-match-mode set to nodes, and terminating backends stay selected during pod grace periods under topology-aware routing. Engineering work continued on IPAM: the ENI operator no longer sizes IPv4 pools for nodes with IPv4 disabled, and the agent gained support for Multi Pool Resource IPAM through the network driver, with the CiliumResourceIPPool CRD now installed automatically. Gateway API client certificate validation per GEP-91 was implemented. Patch releases 1.20.3, 1.19.9 and 1.18.15 shipped.
Week of October 5, 2026
What shipped
- AWS ENI handling now configures each secondary ENI's own IPv6 address on the link, so host-forwarded traffic from secondary ENIs is no longer dropped by the source/destination check. Pull request #48652
- BackendTLSPolicy in the Gateway API now supports system CA certificates for backend validation. Pull request #48895
- Azure IPAM skips network interfaces that the API returns without a MAC address, avoiding empty entries in CiliumNode status that could not be matched to a node link. Pull request #48648
- Dual-stack clusters now get the missing IPv6 health endpoint rules set up. Pull request #49188
- ENABLE_NAT_46X64 became a runtime config variable set at object level when NodePort NAT46/64 translation is enabled. Pull request #49183
- ENABLE_IP_MASQ_AGENT_IPV6 became a node-level runtime config variable enabled when BPF masquerading, IPv6 masquerading and the ip-masq-agent are all on. Pull request #49174
- The DEBUG BPF macro is now a runtime config option. Pull request #49193
- Renaming an ip6tables chain no longer silently drops the ip6tables error during iptables rule reconciliation. Pull request #49024
- Hubble cert-manager certificates no longer duplicate the privateKey block, so user-specified private key algorithm, size and encoding values are honored instead of silently falling back to RSA 2048. Pull request #49114
- The load balancer writer gained a SetFrontendSourceRangesFunc hook to override SourceRanges and allow/deny policy for a service frontend. Pull request #49068
Why it matters
This week brings several fixes that affect real deployments: AWS ENI IPv6 addressing on secondary interfaces, Azure IPAM interfaces still provisioning, and dual-stack health endpoint rules. It also continues converting datapath BPF macros such as DEBUG, ENABLE_NAT_46X64 and ENABLE_IP_MASQ_AGENT_IPV6 into runtime configuration, which makes these behaviors configurable without rebuilding.
Changelog entry
- Aws: configure each ENI's own IPv6 address on the link Pull request #48652
- Azure/ipam: skip interfaces without a MAC address Pull request #48648
- Gateway-api: support system CA certificates in BackendTLSPolicy Pull request #48895
- Dual stack: set up missing health endpoint IPv6 rules Pull request #49188
- Bpf: switch ENABLE_NAT_46X64 to runtime config Pull request #49183
- Bpf: switch ENABLE_IP_MASQ_AGENT_IPV6 to runtime config Pull request #49174
- Bpf: turn DEBUG into runtime config Pull request #49193
- Options: remove unused POLICY_DEBUG macro Pull request #49185
- Iptables: return the ip6tables error when renaming a chain Pull request #49024
- Helm: fix duplicate privateKey in Hubble cert-manager certificates Pull request #49114
- Loadbalancer/writer: add support for SetFrontendSourceRangesFunc Pull request #49068
- Ci: add support for OIDC Pull request #49007
This week: AWS ENIs get their own IPv6 addresses, Azure IPAM skips interfaces without a MAC, dual-stack health endpoint IPv6 rules are set up, and BPF DEBUG, NAT46/64 and IPv6 masquerading-agent settings move to runtime config.
This week Cilium shipped fixes across cloud IPAM and the datapath. On AWS, each secondary ENI now gets its own IPv6 address configured on the link, so host-forwarded traffic from those interfaces is no longer dropped by the source/destination check. Azure IPAM now skips interfaces still provisioning without a MAC address, avoiding unusable entries in CiliumNode status. Dual-stack clusters get the missing IPv6 health endpoint rules. The datapath work continues turning BPF compile-time macros into runtime configuration: DEBUG, ENABLE_NAT_46X64 and ENABLE_IP_MASQ_AGENT_IPV6 are now runtime config variables. Smaller fixes cover ip6tables chain rename errors, Gateway API BackendTLSPolicy system CA certificates, and duplicate privateKey blocks in Hubble cert-manager certificates.
Week of September 28, 2026
What shipped
- Release 1.21.0-pre.3 includes LB IPAM annotation support for sharing IPs between services with externalTrafficPolicy=Local that select different pods. Release
- DROP_NOTIFY converted to runtime config variable, allowing per-endpoint control of drop notifications. Pull request #48956
- BPF code updated to use DSR_ENCAP_MODE instead of ENABLE_DSR in preparation for runtime configuration. Pull request #48981
- Host endpoint drop notifications can now be toggled through the API for endpoints with reserved labels. Pull request #49117
- Fixed mapstate lookup prefix order to correctly determine policy map entries for flow matching. Pull request #49086
- Node-init now waits for the kubelet wrapper to finish before writing the bootstrap file on GKE. Pull request #48739
- On-demand standalone Envoy is now properly stopped during xDS shutdown to prevent socket collisions. Pull request #49118
- Node Address.IP migrated from net.IP to netip for improved type safety. Pull request #48663
- Prometheus container port names are now configurable via Helm values while preserving existing defaults. Pull request #48955
- IP-masq-agent moved to its own cell and removed from the IPAM path after cleanup. Pull request #48949
Why it matters
Release 1.21.0-pre.3 brings important load balancing and configuration improvements. Runtime configuration for drop notifications and DSR mode provides better operational flexibility. Bug fixes in policy matching and node initialization improve reliability in production environments.
Changelog entry
- LB IPAM: introduce lbipam.cilium.io/sharing-permit-different-pods annotation for IP sharing between services Release
- DROP_NOTIFY converted to runtime config for per-endpoint control via cilium-dbg endpoint config Pull request #48956
- Host endpoint drop notifications can now be toggled through the API Pull request #49117
- Fixed mapstate lookup prefix order for correct policy map entry determination Pull request #49086
- Node-init waits for kubelet wrapper completion before bootstrap file write on GKE Pull request #48739
- On-demand Envoy properly stopped during xDS shutdown Pull request #49118
- Node Address.IP migrated from net.IP to netip Pull request #48663
- Prometheus container port names now configurable via Helm Pull request #48955
- BPF updated to use DSR_ENCAP_MODE instead of ENABLE_DSR Pull request #48981
- Fixed typo in hubble --port-forward flag description Pull request #49126
Cilium 1.21.0-pre.3 is out with LB IPAM IP-sharing support, runtime-configurable drop notifications, and fixes for policy matching and node initialization.
Cilium 1.21.0-pre.3 release includes new LB IPAM capabilities for sharing IPs between services, runtime-configurable drop notifications for finer operational control, and important fixes for policy enforcement accuracy and node initialization reliability. These improvements enhance both functionality and operational flexibility for Cilium deployments.
Week of September 21, 2026
What shipped
- Fixed Envoy xDS listener handling bugs that prevented restoration from completing, preserved dynamically allocated proxy ports during address changes, and scoped ADS rollback correctly. Pull request #48897
- Fixed incorrect endpoint manager garbage collection handling that could delete new endpoints when reusing IDs from previously garbage-collected endpoints. Pull request #48905
- Fixed cilium-cli validation to respect --ip-families flag, preventing setup timeouts when validating unreachable IPv6 NodePort addresses on IPv4-only clusters. Pull request #45325
- Reduced Envoy network policy update memory allocations by approximately 40% and overall memory consumption by 10-20%. Pull request #48925
- Fixed UDP connection handling in load balancing to prevent draining terminating backends, which was causing UDP datagrams to be incorrectly routed after backend termination. Pull request #48715
- Migrated IPAMStatus.AssignedStaticIP field and related functions to netip types for better type safety. Pull request #48971
- Moved echo-b connectivity check service from NodePort 31414 to 30014 to avoid conflicts with Kubernetes automatic port allocation. Pull request #48926
- Fixed node neighbor discovery delete queries to use consistent owner ID format, preventing stale forwardable-ip entries from leaking when nodes are deleted. Pull request #48871
- Exposed Hubble Relay startup as reusable building blocks for downstream binaries to construct custom Relay deployments. Pull request #48461
- Optimized FQDN zombie name storage from O(n²) slice-based operations to set-based operations for better performance with large name collections. Pull request #48360
Why it matters
This week includes critical fixes for endpoint management, load balancing edge cases, and network policy performance. Multiple backports ensure stability across recent release branches, while infrastructure improvements address flaky tests and resource constraints in CI.
Changelog entry
- Fixed Envoy xDS listener handling bugs that blocked restoration and lost dynamically allocated proxy ports during address changes Pull request #48897
- Fixed endpoint manager garbage collection race that could delete new endpoints when reusing IDs Pull request #48905
- Fixed cilium-cli to respect --ip-families flag in validation checks Pull request #45325
- Reduced Envoy network policy update memory allocations by ~40% Pull request #48925
- Fixed UDP load balancing to not drain terminating backends Pull request #48715
- Migrated IPAM to use netip.Addr types for better type safety Pull request #48971
- Moved echo-b connectivity check service to avoid NodePort conflicts Pull request #48926
- Fixed node neighbor discovery delete queries to prevent stale entries Pull request #48871
This week: fixed endpoint GC bugs, improved Envoy listener handling, reduced policy update memory by 40%, fixed UDP draining in load balancing, and optimized FQDN operations.
Cilium shipped important fixes this week: corrected endpoint garbage collection to prevent accidental deletion of reused endpoint IDs, fixed Envoy xDS listener restoration and port preservation during address changes, reduced network policy update memory usage by 40%, fixed UDP load balancing to prevent incorrect draining of terminating backends, and optimized FQDN zombie name handling. Multiple stability backports ensure consistency across release branches.
Week of September 14, 2026
What shipped
- Released version 1.20.2 with a fix for AWS IPAM operator trying to release prefix IPs as individual IPs when still in use, and added node label selector support for gateway-api when hostNetwork is enabled. Release
- Released version 1.19.8 with fixes for AWS IPAM prefix delegation on subnets that ran out of prefixes and agent crashes when dumping map events. Release
- Released version 1.18.14 with fixes for AWS IPAM prefix delegation allocation failures and agent crashes when dumping map events. Release
- Fixed unloading DNS policies on shutdown where endpoints would timeout waiting for policy computation that was never requested. Pull request #48747
- Fixed cilium-operator metrics list to support both IPv4 and IPv6 loopback addresses, allowing it to work in IPv6-only mode on dual-stack nodes. Pull request #48780
- Fixed restoration of terminating load-balancing backends on restart to properly distinguish between quarantine states from termination versus health-check failures. Pull request #48763
- Fixed MCS EndpointSlice mirroring to handle service names that exceed 63 characters. Pull request #48783
- Fixed operator to shut down when the controller-runtime manager fails instead of silently continuing. Pull request #48385
- Fixed Envoy policy tier rendering to correctly include port-specific Pass rules when a tier contains a wildcard port rule. Pull request #48854
- Fixed validation of LocalRedirectPolicy to reject policies with empty redirectBackend.toPorts array to prevent agent panic. Pull request #48491
Why it matters
Three patch releases were published addressing AWS IPAM issues affecting production deployments, along with critical fixes for DNS policy handling, operator reliability, and networking edge cases. These fixes improve stability in dual-stack environments and cloud deployments where Cilium is commonly used.
Changelog entry
- Gateway-api: node label selector for when hostNetwork is enabled Release
- Aws/ipam: Fixed operator trying to release prefix IPs as individual IPs when in use Release
- Aws/ipam: Fixed operator failing to allocate IPs on subnets that ran out of prefixes with prefix delegation enabled Release
- Bpf: Fixed agent crash when dumping map events Release
- Daemon: Fixed unloading DNS policies on shutdown to properly request policy computation Pull request #48747
- Operator: Fixed metrics list to try both IPv4 and IPv6 loopback addresses Pull request #48780
- Loadbalancer: Fixed restoration of terminating backends on restart Pull request #48763
- K8s: Fixed MCS EndpointSlice mirroring with service names exceeding 63 characters Pull request #48783
- Operator: Fixed shutdown when controller-runtime manager fails Pull request #48385
- Envoy: Fixed policy tier rendering for port-specific Pass rules Pull request #48854
- K8s: Added validation to reject LocalRedirectPolicy with empty redirectBackend.toPorts Pull request #48491
V1.20.2, v1.19.8, and v1.18.14 released. Fixes for AWS IPAM prefix delegation, DNS policy shutdown, operator crashes, IPv6-only mode support, and Envoy policy tiers.
Cilium releases v1.20.2, v1.19.8, and v1.18.14 now available. Key fixes include: AWS IPAM prefix delegation on exhausted subnets, DNS policy unloading on shutdown, operator reliability improvements, IPv6-only mode support for dual-stack nodes, and Envoy policy tier rendering with port-specific rules. These updates address stability issues in production cloud deployments and improve dual-stack networking support.