contribution/compass
cilium/cilium

Cilium

166 signals · 203 observation events

Open repository ↗

eBPF-based Networking, Security, and Observability

24.9K stars4.0K forksGoApache-2.0bpfcncfcnicontainersebpfk8skernelkuberneteskeyword: Cilium
PROJECT NEWS

Release, roadmap, and discussion

All news →
cilium/cilium

Cilium

Platform / Networking / Runtime Infrastructure
Latest stable

1.20.0

v1.20.0
  • ⛩️ Gateway API
  • 🚀 Gateway API v1.6.1: Cilium moves from Gateway API v1.4 to v1.6.1, bringing support for capabilities that graduated across both upstream releases. (cilium/cilium#45251, @youngnick; cilium/cilium#46827, cilium/cilium#47274, @arybolovlev)
  • 👥 Delegate Gateway Listeners: ListenerSets let application teams attach and manage their own listeners while the platform team retains ownership of the shared Gateway. (cilium/cilium#46303, cilium/cilium#46785, @asauber)
  • 🔏 Encrypt Traffic to Backends: Gateway API BackendTLSPolicy support lets operators configure TLS and backend certificate validation for traffic between the gateway and application services. (cilium/cilium#43045, @youngnick)
  • 🔀 TCPRoute and UDPRoute: Databases, DNS servers, game servers and other non-HTTP services can now be managed through the same Gateway API model as HTTP and gRPC traffic. (cilium/cilium#46184, cilium/cilium#46970, @eminaktas; cilium/cilium#4
Original release notes ↗

Publicly indicated next

Prereleases and milestones indicate public plans; they are not delivery commitments.

Observation trail

  1. changedupdatedAt
  2. changedupdatedAt
  3. changedupdatedAt
  4. changedupdatedAt, metrics
  5. changedmetrics
  6. changedupdatedAt
  7. changedupdatedAt, metrics
  8. changedupdatedAt
  9. changedupdatedAt, metrics
  10. changedupdatedAt, metrics
  11. changedupdatedAt
  12. changedtext, updatedAt
  13. changedupdatedAt, metrics, labels
  14. changedupdatedAt, labels
  15. changedupdatedAt
  16. changedupdatedAt
  17. changedupdatedAt
  18. discoveredinitial snapshot
  19. discoveredinitial snapshot
  20. changedupdatedAt
  21. changedupdatedAt, labels, state
  22. changedupdatedAt, metrics, labels, state
  23. changedupdatedAt, state
  24. changedupdatedAt, labels
  25. discoveredinitial snapshot
  26. changedtext, updatedAt
  27. discoveredinitial snapshot
  28. changedupdatedAt, metrics
  29. discoveredinitial snapshot
  30. changedupdatedAt, labels, state
50 shown
pull request

.github: skip embedded proxy CI for non-functional changes

Please ensure your pull request adheres to the following guidelines: - [ ] For first time contributors, read [Submitting a pull request] - [ ] All code is covered by unit and/or runtime tests where feasible. - [x] All commits contain a well written commit description including a title, description and a `Fixes: #XXX` line if the commit addresses a particular

importance 7@AkashKumar7902opendont-merge/needs-release-note-labelkind/community-contributiondont-merge/needs-ci-validationOriginal evidence ↗
pull request

operator: continue identity GC after update races

Please ensure your pull request adheres to the following guidelines: - [x] For first time contributors, read [Submitting a pull request](https://docs.cilium.io/en/stable/contributing/development/contributing_guide/#submitting-a-pull-request) - [x] All code is covered by unit and/or runtime tests where feasible. - [x] All commits contain a well written commit

importance 7@hbagdiopendont-merge/needs-release-note-labelkind/community-contributionOriginal evidence ↗
pull request

egressgateway: react to local device/address changes

Please ensure your pull request adheres to the following guidelines: - [x] For first time contributors, read [Submitting a pull request] - [x] All code is covered by unit and/or runtime tests where feasible. - [x] All commits contain a well written commit description including a title, description and a `Fixes: #XXX` line if the commit addresses a particular

importance 7@farthinderopenrelease-note/minorkind/community-contributionOriginal evidence ↗
pull request

Revert "gha: don't install LLVM and Clang in integration tests workflow"

This reverts commit c215742d866ef342303dcf224db69b29565c8885. The reverted commit removed the installation of LLVM and Clang from the integration tests workflow, under the assumption that they are not needed to run the Go based integration tests. However, it turns out that the TestObjectCache{,Parallel} tests actually invoke the compilation of a BPF program.

importance 7@giorio94closedrelease-note/cibackport-done/1.18backport-done/1.19backport-done/1.20Original evidence ↗
pull request

ces: fix shutdown deadlock

Integration test runs timed out due to a deadlock on shutting down the hive. When both queues are empty _and shutting down_ a `getQueue` call could get stuck waiting on the condition variable which was never broadcasted. AIL:2 - AI investigated CI logs and pointed towards the problem, I wrote the code. ```release-note Fix a deadlock in the shutdown of Cilium

importance 7@bimmlerdclosedkind/bugrelease-note/bugready-to-mergefeature/cesaffects/v1.18Original evidence ↗
pull request

clustermesh: fix service export sync on missing CRDs

The service export sync logic incorrectly finish the syncing process early when we weren't able to find the CRDs which could affect both CRD upgrade when the clustermesh-apiserver new version start before the cilium-operator had a chance to finish upgrading the CRDs or when enabling MCS-API on a running cluster with a similar configuration. This commit fixes

importance 7@MrFreezeexclosedrelease-note/bugready-to-mergearea/clustermeshaffects/v1.18affects/v1.19Original evidence ↗
pull request

policy: fix bug causing policies using label selectors of long namespace labels being dropped

This PR ensures we correctly calculate the length of label selectors when doing validation, ensuring we support all valid kubernetes labels. See commit messages for more information. Also add a test to catch a potential regression. Fixes: #47817 ```release-note Fix bug causing policies using label selectors of long namespace labels being dropped ``` AIL 2/3:

importance 7@odinugeopenrelease-note/bugsig/policyOriginal evidence ↗
pull request

images: update cilium-envoy

Bumping cilium Envoy image to include the "ADS policy map lifetime fix" from [cilium/proxy#1982](https://github.com/cilium/proxy/pull/1982) for cilium 1.20 that fixes https://github.com/cilium/cilium/issues/47624

importance 7@nezdolikopenkind/backportsdont-merge/needs-rebasebackport/1.20Original evidence ↗
pull request

clustermesh/endpointslices: explicitly limit maximum decoder memory

Explicitly configure a limit for the zstd decoder used to decode the ClusterEndpointSlice entries received over Cluster Mesh, to prevent the risk of unbounded memory usage in case of crafted payloads. I've marked the PR as `release-note/misc` because the logic ingesting ClusterEndpointSlices is incomplete and disabled behind a feature flag in v1.20. Reported

importance 7@giorio94closedready-to-mergearea/clustermeshrelease-note/miscneeds-backport/1.20Original evidence ↗
issue

With Gateway API, the 3-way handshake fails when Envoy and the Backend Pod are running on the same Node.

### Is there an existing issue for this? - https://github.com/cilium/cilium/issues/42325 ### Version equal or higher than v1.20.0 and lower than v1.21.0 ### What happened? It is structured as follows. When the backend Pod and the assigned Envoy are on the same Node, the 3-way handshake between the Envoy and the Pod fails. As a result, the Envoy returns a 503

importance 6@chattytakopenkind/bugneed-more-infoneeds/triagekind/community-reportfeature/k8s-gateway-apiOriginal evidence ↗
issue

Label Filters don't treat prefix as a regex when loaded from file

### Is there an existing issue for this? - [x] I have searched the existing issues ### Version equal or higher than v1.19.6 and lower than v1.20.0 ### What happened? When loading identity-related label filters via `label-prefix-file` the label can only be provided as a string prefix and not as a regex. [The documentation](https://docs.cilium.io/en/latest/ope

importance 6@AverageMarcusopenkind/bugkind/community-reportarea/agentOriginal evidence ↗
issue

Hubble Relay does not terminate, gRPC health server remains running

### Is there an existing issue for this? - [x] I have searched the existing issues ### Version equal or higher than v1.20.0 and lower than v1.21.0 ### What happened? Hubble Relay does not fully terminate after receiving SIGTERM. The Relay server shuts down and the log reports Server stopped, but the Relay process remains running until the Kubernetes terminat

importance 6@xandauopenkind/bugneeds/triagekind/community-reportOriginal evidence ↗
pull request

k8s: Use upstream controller-tools

We have been using a fork of `sigs.k8s.io/controller-tools` ever since we've been using controller-tools to generate our CRDs (#11607). The upstream project has evolved a lot in the last 5 years and now supports all the features we need, meaning we no longer need to use our forked version. See the following table for details of every single commit from our f

importance 6@HadrienPatteopenarea/k8srelease-note/minorsig/policyOriginal evidence ↗
pull request

endpoint: gracefully degrade policy map overflow

Please ensure your pull request adheres to the following guidelines: - [x] For first time contributors, read [Submitting a pull request] - [x] All code is covered by unit and/or runtime tests where feasible. - [x] All commits contain a well written commit description including a title, description and a `Fixes: #XXX` line if the commit addresses a particular

importance 6@MdSaifAliMollaopenrelease-note/minorstalekind/community-contributiondont-merge/discussionOriginal evidence ↗
pull request

Hubble observer server hardening

This change does not implement compile time cost limit for flow filter CEL Expressions. Currently the [flow proto types](https://github.com/fristonio/cilium/blob/0906ee16c4f4c01d98297cc520d0d5a821b6b085/api/v1/flow/flow.proto#L14) are not annotated with validation descriptors, so the size of strings/map/list are not known at compile time causing cost estimat

importance 6@fristonioopenrelease-note/minorstalearea/hubbleOriginal evidence ↗
pull request

ipam: Added ReservedRange To CiliumPodIPPool

Please ensure your pull request adheres to the following guidelines: - [x] For first time contributors, read [Submitting a pull request] - [x] All code is covered by unit and/or runtime tests where feasible. - [x] All commits contain a well written commit description including a title, description and a `Fixes: #XXX` line if the commit addresses a particular

importance 6@kyounghoonJangopenrelease-note/minorkind/community-contributioncilium-cliOriginal evidence ↗
pull request

BPF Runtime Stats CLI

Implementation of BPF runtime statistics reporting CLI under `cilium-dbg bpf stats report`. Enabling and disabling BPF stats collection in the kernel is done through the daemon configuration option `enable-bpf-stats`. Statistics collection is performed by querying active BPF programs attached to endpoints (mapped to Kubernetes pods), native devices, and the

importance 6@amchelapurath2023openarea/datapathrelease-note/minorkind/community-contributionOriginal evidence ↗
pull request

fix: Prevent Installation Failures When Hubble TLS Uses External Certificate Volumes

PR #46688 introduces disableDefaultVolumes=true to let `extraVolumes/extraVolumeMounts` provide TLS certificates. Since Cilium’s built-in certificates are no longer used, administrators do not need to configure `.Values.hubble.relay.tls.client.cert` and `.Values.hubble.relay.tls.client.key` Although these built-in secrets are no longer mounted into pod, thei

importance 6@weizhoublueclosedkind/bugrelease-note/bugready-to-mergearea/helmkind/community-contributionOriginal evidence ↗
pull request

docs: warn that Ingress TLS termination does not support ALPN for gRPC

Motivation: The Ingress TLS termination example does not configure ALPN protocol negotiation in the generated Envoy CiliumEnvoyConfig. gRPC requires ALPN to select the h2 protocol during the TLS handshake, so gRPC clients that correctly enforce ALPN (per the gRPC spec) fail to connect through a TLS-terminating Ingress with errors such as "missing selected AL

importance 6@pujitha24openrelease-note/misckind/community-contributionneeds-backport/1.20Original evidence ↗
pull request

test(bpf): parallelize eBPF test compilation

This PR contains some enhancements to the eBPF compilation step to help improve the eBPF test suite build time in CI (related conversation in #45133). This change updates the BPF Checks workflow step to utilize all available CPU cores in the Github Actions runner to reduce build times for eBPF test targets in CI. AI Level: 1 Fixes: nobug [AI Influence Level]

importance 6@lconneryclosedarea/datapathrelease-note/cikind/community-contributionneeds-backport/1.20Original evidence ↗
pull request

helm: reflect Socket LB override for kubeProxyReplacement

### Description When `kubeProxyReplacement=true`, the runtime unconditionally enables Socket LB in `pkg/kpr/kpr.go`. However, the Helm chart currently renders `bpf-lb-sock` directly from `socketLB.enabled`, which defaults to `false`. As a result, the generated `cilium-config` ConfigMap can report: ```yaml bpf-lb-sock: "false" ``` even though Socket LB is ena

importance 6@Valley-15opendont-merge/needs-release-note-labelkind/community-contributionOriginal evidence ↗
pull request

docs: clarify GAMMA DROP_EP_NOT_READY events

During workload churn, Hubble may report `DROP_EP_NOT_READY` when Envoy upstream TCP connections outlive the source endpoint. The behavioral change submitted in https://github.com/cilium/cilium/pull/46508 would likely add too much complexity for a somewhat cosmetic issue. This PR instead adds a note to the GAMMA docs to mention this caveat. Related to: #4197

importance 6@thorn3rclosedarea/documentationready-to-mergerelease-note/miscarea/servicemeshfeature/k8s-gateway-apiOriginal evidence ↗
pull request

gateway-api: filter CEC controls from infrastructure metadata

Gateway and GAMMA infrastructure annotations originate from user-controlled resources and are propagated to generated CiliumEnvoyConfig metadata. This allowed those resources to set reserved cec.cilium.io controls that affect proxy and policy behavior. Filter the complete CEC annotation namespace while decorating generated CECs. Preserve internally generated

importance 6@nezdolikopenrelease-note/bugready-to-mergefeature/k8s-gateway-apiOriginal evidence ↗
pull request

ci: replace unsupported LLVM installation action

Replace the unsupported LLVM installer action in the lint and integration test workflows with a local Bash composite action. The local action preserves: - LLVM 19.1.7 installation - X64 and ARM64 archive selection - LLVM path and library environment exports - installed Clang version verification After #47780 restored LLVM and Clang installation in `integrati

importance 6@bogdankraskoopenrelease-note/cikind/community-contributionaffects/v1.17needs-backport/1.18needs-backport/1.19Original evidence ↗
pull request

chore(deps): update all github action dependencies (main)

This PR contains the following updates: | Package | Type | Update | Change | Pending | |---|---|---|---|---| | [cert-manager/cert-manager](https://redirect.github.com/cert-manager/cert-manager) | | patch | `v1.21.0` → `v1.21.1` | | | [cilium/cilium](https://redirect.github.com/cilium/cilium) | action | minor | `v1.19` → `v1.20.0` | | | [cilium/cilium](https:

importance 6@cilium-renovate[bot]openkind/enhancementrelease-note/misckind/community-contributionrenovate/stop-updatingarea/renovateOriginal evidence ↗
pull request

operator: prevent CNPs with nodeSelector from silently enforcing nothing

<!-- Description of change --> The Rule struct is shared by both CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, and its NodeSelector field can only be used in CiliumClusterwideNetworkPolicies. ``` // https://github.com/cilium/cilium/blob/main/pkg/policy/api/rule.go#L76 type Rule struct { ... // NodeSelector selects all nodes which should be subject

importance 6@weizhoublueopenrelease-note/bugkind/community-contributionOriginal evidence ↗
pull request

hubble: Add Kubernetes Pod UID to flow endpoints

Hubble currently identifies a Pod mainly by cluster, namespace, and name. Kubernetes permits a deleted object’s name to be reused, while its UID uniquely identifies that specific object lifetime. This matters especially for StatefulSet Pods, but applies to any recreated Pod. Adding the UID to endpoints permits correct flow attribution and lets consumers dist

importance 6@devodevopenrelease-note/minorsig/policyarea/hubbleOriginal evidence ↗
pull request

kvstore: let [UserEnforcePresence] additionally revoke stale roles

The [UserEnforcePresence] function is responsible for creating the target user in etcd, if not present, and granting the specified roles. Let's extend it to additionally revoke any possible roles that had been previously granted to that user, and are not present in the list of roles anymore. While being there, let's also cover this logic with a dedicated uni

importance 6@giorio94openkind/bugrelease-note/bugarea/clustermesharea/kvstoreneeds-backport/1.18Original evidence ↗
issue

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more. ## Repository Problems Renovate tried to run on this repository, but found these problems. - ⚠️ WARN: Some release(s) did not have a releaseTimestamp, but as we're running with minimumReleaseAg

importance 5@cilium-renovate[bot]openarea/datapatharea/miscpinnedarea/agentOriginal evidence ↗
issue

CFP: Use LoadBalancer Service external IP as backend pod egress source IP

### Is your proposed feature related to a problem? ## Cilium Feature Proposal Design discussion doc: [Google-Doc](https://docs.google.com/document/d/1jzi3plui0wd4-dI8FnumtDLJJ-Mno7dJI7uiGmTIxxE/edit?usp=sharing) ### Summary This CFP proposes an opt-in way for backend pods of a Kubernetes `LoadBalancer` Service to use that Service's external LoadBalancer IP a

importance 5@Ayush-Rathorclosedkind/featurestalekind/cfpOriginal evidence ↗
issue

Host datapath BPF programs leak on every device change, exhausting kernel executable memory

### Is there an existing issue for this? - [x] I have searched the existing issues ### Version equal or higher than v1.20.0 and lower than v1.21.0 ### What happened? A bonded interface on the node was being torn down and recreated every ~34s (unrelated host misconfiguration). The bond carries three VLAN sub-interfaces, so each cycle removes and re-adds three

importance 5@haosbopenkind/bugarea/loaderarea/datapathneeds/triagekind/community-reportOriginal evidence ↗
issue

Potential issue with usePrimaryAddress on a t3.small

### Is there an existing issue for this? - [x] I have searched the existing issues ### Version equal or higher than v1.19.6 and lower than v1.20.0 ### What happened? ## Potential issue with usePrimaryAddress ### Cilium v1.19.6, AWS `t3.small` On a `t3.small` instance using AWS ENI IPAM mode with `use-primary-address: true`, Cilium seems to cap max IPs at 9 w

importance 5@joe-smopenkind/bugkind/community-reportarea/eniinfo-completedOriginal evidence ↗
pull request

bpf: update CT entry when source security identity changes

Please ensure your pull request adheres to the following guidelines: - [x] For first time contributors, read [Submitting a pull request](https://docs.cilium.io/en/stable/contributing/development/contributing_guide/#submitting-a-pull-request) - [x] All code is covered by unit and/or runtime tests where feasible. - [x] All commits contain a well written commit

importance 5@alimehrabikoshkiopenrelease-note/bugdont-merge/needs-rebasestalekind/community-contributionaffects/v1.19Original evidence ↗
pull request

[41867] Part 5: bpf: nat: skip SNAT for same subnet traffic in hybrid overlay mode

# Description This PR implements Part 5 of the hybrid routing mode feature ([CFP-32810](https://github.com/cilium/design-cfps/blob/main/cilium/CFP-32810-hybrid-routing-mode.md)). It skips SNAT for same-subnet pod-to-remote-node traffic in hybrid overlay mode. ## Context In overlay mode, pod-to-remote-node traffic is normally masqueraded before leaving the ho

importance 5@OneSizeFitsQuorumopenrelease-note/misckind/community-contributionOriginal evidence ↗
pull request

migrate IPV4_SNAT_CIDR/CIDR_length to runtime config

**bpf: Migrate IPv4 SNAT exclusion destination CIDR and length to runtime config** Related: #38370 Signed-off-by: Anshul Chelapurath [achelapurath@google.com](mailto:achelapurath@google.com)

importance 5@amchelapurath2023openstaledont-merge/needs-release-note-labelkind/community-contributionOriginal evidence ↗
pull request

bpf: Migrate IPv6_SNAT_* to runtime config

**bpf: Migrate IPv6 SNAT exclusion destination CIDR, CIDR mask, and CIDR length to runtime config** Related: #38370 Signed-off-by: Anshul Chelapurath [achelapurath@google.com](mailto:achelapurath@google.com)

importance 5@amchelapurath2023openstaledont-merge/needs-release-note-labelkind/community-contributionOriginal evidence ↗
pull request

bpf: Migrate SNAT retries to runtime config

**bpf: Migrate SNAT collision retry to runtime config** Related: #38370 Signed-off-by: Anshul Chelapurath [achelapurath@google.com](mailto:achelapurath@google.com)

importance 5@amchelapurath2023openstaledont-merge/needs-release-note-labelkind/community-contributionOriginal evidence ↗
pull request

datapath: add a probe for numeric iterators

Add a probe for numeric iterators and define the HAVE_BPF_ITER_NUM macro in features.h if the corresponding kfuncs are supported by the kernel. (This macro will be used by future patches.)

importance 5@aspskopenstalerelease-note/miscOriginal evidence ↗
pull request

gatewayapi: always populate listener supportedKinds in status

## Description `validateListener` left the listener status `supportedKinds` field nil for listeners using an unsupported protocol. The Gateway API `ListenerStatus.SupportedKinds` field is serialized with `omitzero`, so a nil slice is dropped from the status entirely — the listener ended up with no `supportedKinds` key at all. The `allowedRoutes` and TLS-term

importance 5@Adel-Ayoubopenstaledont-merge/needs-release-note-labelkind/community-contributionfeature/k8s-gateway-apiOriginal evidence ↗
pull request

RFC: bpf: dsr: carry DSR info on mid-flow packets that create the CT entry

## Summary In DSR mode with Geneve dispatch, the Geneve option carrying the service VIP:port is attached only to the **SYN** of a TCP connection. A mid-flow packet that is re-routed to a **different LB node** (e.g. after an ECMP rehash on the upstream router when a BGP next-hop is added/removed) does `CT_NEW` on that new node, selects a backend via Maglev, a

importance 5@Olichousopenstaledont-merge/needs-release-note-labelkind/community-contributionOriginal evidence ↗
pull request

envoy: Support Delta ADS callbacks

This is initial PR to add Delta ADS support in cilium proxy. Followup PR will wire up config option with delta-ads mode, update docs and helm charts and exercise new mode in ci. Forward Delta request and response callbacks through the callback chain and correlate responses by stream, type URL, and nonce. Use that state to resolve the correct pending completi

importance 5@nezdolikopenrelease-note/majorstaleOriginal evidence ↗
pull request

Fix 5-tuple collision in conformance kind proxy embedded

Fix test flake due to 5-tuple collision. The flake happens in `l7-lb` test that intentionally accesses the same backend via both L7-LB service and normal L3/4 load balancer service when the pod happens to use the same source port for both: 1. Access via L7-LB service works, Envoy keeps the upstream connection open on the 5-tuple with the source pod IP/port a

importance 5@jrajahalmeopenarea/CIarea/proxyrelease-note/cici/flakearea/loadbalancingOriginal evidence ↗
pull request

Add zone locality info to envoy endpoints if service EndPointSlices have zone information.

Please ensure your pull request adheres to the following guidelines: - [x] For first time contributors, read [Submitting a pull request] - [x] All code is covered by unit and/or runtime tests where feasible. - [x] All commits contain a well written commit description including a title, description and a `Fixes: #XXX` line if the commit addresses a particular

importance 5@aristotelhs-mdopendont-merge/needs-release-note-labelkind/community-contributionOriginal evidence ↗
pull request

bpf: dsr: re-use TCP SYN flag from CT lookup in remote-backend path

When forwarding a DSR request to a remote backend, each egress path currently needs to have its own logic to extract the TCP flags and check for the SYN flag. But we already obtain the flag during the CT lookup. So let's just forward a "need_dsr_info" indication over the tailcall boundary, mixing it into the free part of the CB_PORT slot.

importance 5@julianwiedmannclosedrelease-note/miscarea/loadbalancingfeature/dsrarea/kprbackport-done/1.20Original evidence ↗
pull request

bpf: dsr: only require DSR-info on SYN packet

``` The DSR ingress path on a remote node currently expects DSR-info on both the SYN *and* the SYN-ACK. And clears the connection's DSR status if either of those packets doesn't carry DSR info. But it should actually be fine for the LB node to only send the DSR info on the SYN packet. So let's relax this check accordingly, and not require DSR info on the SYN

importance 5@julianwiedmannclosedarea/datapathrelease-note/miscfeature/dsrarea/kprbackport-done/1.20Original evidence ↗
pull request

bpf: dsr: fix CT update in remote note's ingress path

When a DSR-enabled node receives a TCP packet with SYN flag but *without* DSR info, it updates the connection's DSR status to 'false'. This addresses scenarios where a connection is re-opened by the same client, but this time directly towards the backend (without a service inbetween). But since we're using a CT tuple that hasn't been used for a CT lookup, it

importance 5@julianwiedmannclosedkind/bugarea/datapathrelease-note/bugready-to-mergebackport/authorOriginal evidence ↗
pull request

pkg/mtu: Add fallback to MTU of 1500 and identify the primary ENI by device index

In ENI IPAM mode the MTU auto detection excludes the secondary ENIs, which are managed by Cilium, and derives the base MTU from the primary ENI only. The primary ENI was told apart from the secondary ones by comparing ENI.IP with the first NodeInternalIP of the CiliumNode. ENI.IP is the primary private IPv4 address of the ENI, as reported by the EC2 API, so

importance 5@41ksopenrelease-note/bugOriginal evidence ↗
pull request

fix: allow setting endpointPolicyUpdateTimeoutDuration in helm

In helm, `endpointPolicyUpdateTimeoutDuration` defaulted to null , so the generated values.schema.json typed it as "null" only. Helm validates --set /values input against this schema before rendering, so any real duration string (e.g. "30s" ) was rejected on install/upgrade. so, widen the schema to string so an explicit duration reaches the ConfigMap templat

importance 5@weizhoublueclosedrelease-note/bugready-to-mergearea/helmkind/community-contributionbackport-done/1.20Original evidence ↗