Skip to content

v1.20 Backports 2026-08-03 - #47690

Merged
mhofstetter merged 35 commits into
v1.20from
pr/v1.20-backport-2026-08-03-10-01
Aug 7, 2026
Merged

v1.20 Backports 2026-08-03#47690
mhofstetter merged 35 commits into
v1.20from
pr/v1.20-backport-2026-08-03-10-01

Conversation

@viktor-kurchenko

@viktor-kurchenko viktor-kurchenko commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Once this PR is merged, a GitHub action will update the labels of these PRs:

 47424 47295 47457 47446 47552 47535 46670 47569 47579 46116 47581 47449 47583 47466 47455 47534 47600 47612 47605 47625 46696 46842 47470 47599 47627

HadrienPatte and others added 30 commits August 3, 2026 10:01
[ upstream commit b2a2970 ]

`reflect.DeepEqual` produces unhelpful output on failure: it reports only
that two values differ, not which fields. This PR replaces it with
testify's `assert.Equal` in operator test code, which prints a field-level
diff.

Two cases that didn't map to `assert.Equal`:
* `operator/api/metrics_test.go`: `testMetric` is an error-returning helper
  comparing `map[string]string`, so I used the reflect-free `maps.Equal`.
* `operator/auth/spire/client_test.go`: one call compared error strings, so
  a plain != was enough.

Part of #40562

Signed-off-by: Hadrien Patte <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 5ccdd87 ]

In ENI IPAM mode the operator creates ENIs asynchronously, so at agent
startup the datapath can query netlink for the ifindex of the interface
owning a given MAC before that ENI's netlink interface has materialized.
Commit 60faea1 added waitForENI() precisely to defeat that race, but
it was only wired into the router path (reallocateRouterIPs). The ingress
path (allocateIngressIPs) calls RoutingInfo.Configure() with no such
guard, so when the ingress IP lives on a secondary ENI that has not shown
up yet, retrieveIfIndexFromMAC fails with "interface with MAC <mac> not
found". Unlike the router path, the ingress path only warns and swallows
the error, and there is no reconciler to retry it, so the missed route is
never reinstalled and the stray warning turns check-log-errors red.

Mirror the router guard into the ingress path: thread ctx into
allocateIngressIPs and, in the IPv4 ENI branch immediately before
Configure(), poll waitForENI on the ENI's PrimaryMAC. This is not
masking. If the ENI genuinely never appears, waitForENI returns after the
same bounded backoff, Configure() still fails, and the warning still
fires. Only the transient sub-8s async-creation window is absorbed, which
is exactly the window 60faea1 was written to close.

The Configure() call also runs in AlibabaCloud ENI mode, and waitForENI
just polls netlink for the MAC, so gate the wait on ENI or AlibabaCloud
rather than ENI alone, and do the same on the router path so the two stay
consistent. Raise the "interface not found" message from warn to error on
both paths, since it precedes a route configuration that is about to fail.

AIL:3
Signed-off-by: André Martins <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 4a357c8 ]

Use an interceptor function to restore type meta for objects populated
using the fake client. Do not populate type meta for CECs.

Remove all points in the Gateway API and GAMMA tests which manually
restore the TypeMeta information for the fake client objects.

Signed-off-by: Andrew Sauber <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 22a018d ]

Refactor resolveAllowedListeners into a collection of smaller functions
which perform the following operations.

* Query for ListenerSets attached to a Gateway
* Filter to the allowed ListenerSets for the Gateway
* Merge a collection of direct and ListenerSet listeners
* Filter out conflicted listeners from a set of listeners
* Distinguish between same-source and cross-source conflicts
* Filter out invalid Listeners using the existing validateListener

This allows us to compose calls that prevent both Gateway-direct
listeners and ListenerSet listeners which conflict with each other from
reaching the ingestion phase.

This handles both "same source" conflicts, where both listeners should
be rejected, and "cross source" conflicts, where only the less precedent
listener should be rejected.

Note that one of the most important things that this commit introduces
is the use of r.validateListener to filter out invalid listeners before
ingestion. This is a pre-existing validation function which was not yet
used to prevent listeners from reaching ingestion. This filters out the
following types of invalid listeners:

* Listeners with unsupported protocols
* Listeners with invalid route kinds
* Listeners with invalid certificates
* Listeners with invalid secret references

All of these cases previously had correct status-writing, but the
listener objects were still allowed to reach the ingestion phase. This
is no longer the case. The gateway-modify-listeners test case needed
corrections after this more strict validation was implemented. The
gateway-remove-listener Gateway correctly reported InvalidCertificateRef
in status. However, the output CEC still contained the HTTPS filter
chain. So, the CEC fixture was modified to remove the HTTPS filter
chain.

A test case was added which confirms that both the resulting ListenerSet
status and CEC correctly reflect a listener with a TLS/HTTPS protocol
conflict.

Signed-off-by: Andrew Sauber <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 8176a93 ]

Use the existing conflict detection listener aggregation to drive
status writing. This helps to match listener liveness with reported
status.

Signed-off-by: Andrew Sauber <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit d376efb ]

This commit updates the Gateway API installation guide:

- Move CRDs installation steps from prerequisites to the installation section.
- Remove Gateway CRDs from prerequisites as they are covered below.
- Add --server-side option for CRDs installation.
- Move Cilium CLI installation under Helm and Cilium CLI tabs to align with other guides.
- Replace TLS Route warning with a reference to the upgrade guide.

Signed-off-by: Aleksandr Rybolovlev <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit a9efce4 ]

The HostNetwork pods briefly enter Pending Phase but do not consume IPs.Counting
them inflated surgeAllocate and caused unnecessary IP pre-allocation.

Signed-off-by: Hao Zhang <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 60c1985 ]

When BPF unit tests fail, `trace_diff_pkts.py` fails as it's
invoked by `go test` in the context of the Github runner, and the
runner doesn't have Scapy installed.

Install python3-scapy.

Signed-off-by: Marc Suñé <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit b38239d ]

Extract duplicated route-to-listener parentRef matching into
`parentRefsMatchListener`.

HTTP and L4 routes already considered both sectionName and port, while
GRPC and TLS routes only checked sectionName. Use the shared helper for
HTTP, GRPC, TLS, TCP, and UDP routes so all route types consistently
filter listener matches by both fields.

Add test coverage for the shared helper and TLS parentRef port filtering.

Signed-off-by: Aleksandr Rybolovlev <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 07d350a ]

Pull requests run a single EKS entry, the one marked default, and that entry
enabled prefix delegation. Prefix delegation is not the default ENI behaviour:
eni.awsEnablePrefixDelegation defaults to false in the Helm chart, so an ENI
IPAM user gets it only by explicitly opting in. Every EKS cluster a pull
request tested was therefore running an opt-in configuration, and the one
users get out of the box was only exercised hours later by the scheduled full
matrix.

The difference is not cosmetic. Prefix delegation raises a single ENI's
capacity sixteenfold, so at CI pod density every pod fits on the primary ENI.
Without it pods spread across secondary ENIs, which is what brings in the
allocation and datapath paths that depend on which ENI owns a pod IP, such as
picking the masquerade source address and the ENI return path. Two recent
issues that only reproduce without prefix delegation reached main because no
pull request leg ran that way.

Drop prefix delegation from the default entry so pull requests test the
default ENI behaviour. Prefix delegation stays covered by a non-default entry
that the scheduled and stable-branch full matrix runs, and the number of
clusters per pull request is unchanged.

AIL:3
Signed-off-by: André Martins <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 48b4dd1 ]

The L2 announcer decides whether a Service should participate in L2
announcement based on both the Service object and its associated
frontend entries. In particular, LoadBalancer and ExternalIP
announcement depends on the presence of the corresponding frontends.

Before this change, the announcer only reacted to Service table changes.
If a Service was observed before its LoadBalancer frontend had been
written, it was ignored and never reconsidered. This could leave the
service present in the load-balancer maps but missing from L2
announcement.

Fix this by watching frontend changes as well and re-running service
selection for the owning Service whenever a frontend is added, updated,
or removed.

Signed-off-by: Marco Hofstetter <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 2f929e9 ]

This commit refactors the l2 announcement logic to reuse
the same statedb readtransaction and pass it to the places that
need it.

Signed-off-by: Marco Hofstetter <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit f4cabcc ]

Add installation guide covering how to run Cilium in chaining mode
on OKE with VCN-Native Pod Networking using cni.chainingTarget=oci.
Cilium auto-discovers the existing oci conflist and injects itself
via generic-veth without requiring a custom CNI ConfigMap.

Tested on OKE with Oracle Linux 8.10, kernel 5.15.0 UEK,
Kubernetes 1.36.0, Cilium 1.19.4.

Signed-off-by: Amaan Ul Haq Siddiqui <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 06ed94a ]

Signed-off-by: Amaan Ul Haq Siddiqui <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 9f20d12 ]

Cilium writes 05-cilium.conflist, not 10-oci.conflist. Remove kernel
version requirements and version-bound values from the JSON example
to keep the doc stable across OKE releases.

Signed-off-by: Amaan Ul Haq Siddiqui <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit c1cf61c ]

helm uninstall does not remove host path files written by the Cilium
DaemonSet. The 05-cilium.conflist file remains on each node and blocks
new pod creation with a cilium.sock connection error. Document the
manual cleanup step required after uninstall.

Signed-off-by: Amaan Ul Haq Siddiqui <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 2128600 ]

These terms appear in the OKE CNI chaining guide and are valid
technical words: ARP (Address Resolution Protocol), VCN (Oracle
Virtual Cloud Network), and conflist (CNI configuration list file).

Signed-off-by: Amaan Ul Haq Siddiqui <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 89520cb ]

Signed-off-by: Aleksandr Rybolovlev <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit e4abdef ]

PopulateStatusFields builds Status.Azure.Interfaces from ForeachInterface,
which iterates a map, so the order changed on every sync and the operator
rewrote /status even when nothing had changed.

Sort the interfaces by ID and their addresses by IP.

Signed-off-by: Jared Ledvina <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit b8546ec ]

The resource group, VMSS name and VM ID were cached in unexported json:"-"
fields, so an interface built from the Azure API never matched the copy
read back from the apiserver and the operator rewrote /status on every sync.

Derive them from ID on demand instead. SetID() then only assigns ID, so
remove it.

[ Backporter notes:
  - resolved conflicts in: pkg/azure/types/types.go
  - run: make generate-k8s-api
]

Signed-off-by: Jared Ledvina <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 3c27bc4 ]

The route level idle_timeout on the L7 policy HTTP connection manager is
built from xdsServerConfig.httpIdleTimeout, which cell.go was filling
from ProxyIdleTimeoutSeconds instead of HTTPIdleTimeout. Every other
field in that literal pairs with its same named config value, and
HTTPIdleTimeout was left declared but read nowhere.

Before c4bd58d the route idle_timeout came from
option.Config.HTTPIdleTimeout, whose flag defaults to 0, so the timeout
was disabled unless an operator asked for it. Moving the config into the
hive cell swapped the source to proxy-idle-timeout-seconds, which
defaults to 60, so the effective default silently became 60s.

The two flags do not mean the same thing. proxy-idle-timeout-seconds is
documented as an upstream HTTP idle connection timeout that does not
apply to connections with pending requests, and it still feeds the
bootstrap cluster commonHttpProtocolOptions.idleTimeout, where that
description holds. A route level idle_timeout is not that: it bounds a
request that is waiting for a response and it overrides the connection
manager stream_idle_timeout, so when it expires on a fully received
request Envoy answers 504 with a "stream timeout" body. Lowering
proxy-idle-timeout-seconds to reap idle upstream connections therefore
also caps how long any single L7 proxied request may take, which is not
what the flag advertises.

Point httpIdleTimeout back at HTTPIdleTimeout. This revives the
documented http-idle-timeout knob, restores the disabled by default
behaviour, and leaves proxy-idle-timeout-seconds doing only what it
claims to do.

Deployments that came to rely on the 60s route idle timeout introduced
by c4bd58d need to set http-idle-timeout explicitly.

Fixes: c4bd58d ("envoy: move config values from global config into hive cell")

AIL:3
Signed-off-by: André Martins <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 03d1726 ]

Convert the remaining net.IP usage in the Gateway API operator to
netip.Addr, as part of the tree-wide migration tracked in #24246.

In setAddressStatus, the NodePort branch now parses node addresses
with netip.ParseAddr and sorts them with netip.Addr.Compare. Nodes
whose first status address is not an IP address (e.g. a Hostname
entry) are now skipped instead of being appended as a nil net.IP,
which previously rendered as a bogus "<nil>" address in the Gateway
status. Parsed addresses are Unmap()-ed so IPv4-mapped IPv6 inputs
keep rendering in dotted-quad form as before. Note that mixed IPv4
and IPv6 addresses now sort IPv4-first instead of interleaving the
IPv4-mapped form within the IPv6 space; the sort only exists to keep
the assigned addresses deterministic, which is preserved.

In verifyGatewayStaticAddresses, netip.ParseAddr replaces the
net.ParseIP nil check. Parsing semantics are unchanged for valid
IPv4/IPv6 literals; zoned IPv6 literals are additionally accepted.

The nodeport testdata gains a node whose only status address is a
Hostname entry, locking in the new skip behavior.

Related: #24246
Signed-off-by: Dean Chen <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit d891a5f ]

The TestWatchRemoteKVStore test is currently affected by a potential
source of flakiness because it directly asserts that the cache is
synchronized after validating that it has been registered. However,
the two operations are performed independently, and the on-sync
callback handler is invoked after having released the lock, which
implies that it may not have been invoked at check time. Let's get
this fixed by wrapping the check with Eventually.

Signed-off-by: Marco Iorio <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 2035d6b ]

The tests that cannot pass on the EKS legs without prefix delegation were
skipped outright there, which loses all signal on those legs, and each one was
handled by its own hand written block. As more tests get quarantined that
pattern grows a block, a run step and a warning step per test.

Collect them in a QUARANTINED_TESTS list instead. The job variables step walks
the list to exclude them from the gating connectivity run and exports the same
list as an output, and a single tolerated continue-on-error step re-runs
exactly those tests, so they keep running and uploading a JUnit report while
their failures do not fail the workflow. One warning step reports it. Adding a
test to the quarantine is now a single line, and re-arming one is deleting that
line.

Both currently affected tests are listed: north-south-loadbalancing-with-l7-policy,
whose outside-to-nodeport reply egresses a secondary ENI while carrying the
primary ENI's source IP so the VPC source/destination check drops it (issue
47391), and egress-gateway-excluded-cidrs, which asserts the node HostIP while
excluded-CIDR traffic is correctly masqueraded to the owning secondary ENI's
primary IP (issue 47530).

The prefix-delegation legs keep pod IPs on the primary ENI, so they run and
gate on both tests as usual and the tolerated step is skipped there. Every
other test keeps gating everywhere, so nothing else is masked.

[ Backporter notes:
  - resolved conflicts in: .github/workflows/conformance-eks.yaml
]

AIL:3
Signed-off-by: André Martins <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 8172728 ]

semver returns None (not '') for VersionInfo.prerelease when a
version has no prerelease component, so `relinfo.prerelease != ''`
was always true and CURRENT_RELEASE always resolved to the previous
minor release instead of the actual one.

Signed-off-by: Alex Melhem <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 71ebbc4 ]

The operator emits two klog level=error lines from one event when a
transient apiserver blip cancels a leader election lock read. The lock
line, "Error retrieving lease lock", is already allowlisted. Its sibling,
client-go's "Unexpected error when reading response body" carrying
"request canceled (Client.Timeout or context cancellation while reading
body)", never was on the Ginkgo path, so a K8sDatapathLRPTests AfterEach
still fails on it even though the operator recovers on the next retry
period and stays 1/1 Ready.

The same pair was allowlisted for cilium-cli's NoErrorsInLogs in commit
cce18c0, which used a regex narrowed to the read-body message. The
Ginkgo allowlist matches plain substrings on single lines, so match on the
cause rather than the generic message: a genuine EOF, unmarshal error or
connection reset while reading a body still fails the check, and so does a
Client.Timeout in any other phase.

This commit was prepared with AIL:3.

Signed-off-by: André Martins <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 5331262 ]

This change fixes the way we are filtering out markdown files when
checking for file changes in lint-bpf-checks.

Previously, `!**/*.md` matched all files anywhere in the repo, which
caused unnecessary runs on PRs with changes that had nothing to do with
our bpf code.

Signed-off-by: Maciej Kwiek <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit f1754f1 ]

The endpoint BPF program watchdog periodically walks the endpoints and,
for each one in StateReady, asks netlink whether its host device still
has Cilium's BPF programs attached. If any endpoint comes back without
them, the watchdog warns that another application removed the BPF
programs and reinitializes the datapath.

The state check and the probe are not atomic. GetState releases the
endpoint mutex on return and DeviceHasSKBProgramLoaded takes no endpoint
lock, so an endpoint that was StateReady when the loop began can be
deleted before it is probed. Endpoint deletion detaches the BPF programs
while the host device still exists, which the probe cannot tell apart
from another application removing them. This is what makes
check-log-errors flake in the conn-disrupt tests, where the fixture's
pods are torn down while the watchdog is running.

Check IsAlive before recording the endpoint. Delete holds the endpoint
mutex across both setState(StateDisconnecting) and the detach, so the
check either blocks until the deletion completes or observes
StateDisconnecting, neither of which can transition back to StateReady.
When another application is the one removing the BPF programs, the
endpoint stays alive and the watchdog still warns and reloads as before.

Fixes: #47564
Fixes: #44078

Signed-off-by: Chris Tarazi <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 0690ca2 ]

GetMatchKey sorts headers and query params in place, mutating the model
during key calculation. Instead, use copies and sort Envoy matchers so
that translation is still deterministic without relying on a side effect.

Signed-off-by: Tim Horner <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>
[ upstream commit 18ee098 ]

Previously, HTTPRoute rules with identical match criteria were merged
into one weighted route during translation.

This change adds source rule identity during ingestion when
multiple rules produce an indentical match in the same HTTPRoute. When
present, this identity is used as the key for backend aggregation and duplicate
rules are emitted as separate Envoy routes with ordering preserved, so
that Gateway API rule ordering is honored.

Fixes: #42964

Signed-off-by: Tim Horner <[email protected]>
Signed-off-by: viktor-kurchenko <[email protected]>

@giorio94 giorio94 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My commit looks good, thanks!

@viktor-kurchenko
viktor-kurchenko marked this pull request as ready for review August 3, 2026 08:42
@viktor-kurchenko
viktor-kurchenko requested review from a team as code owners August 3, 2026 08:42
@viktor-kurchenko

Copy link
Copy Markdown
Contributor Author

/test

@mhofstetter mhofstetter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Viktor! 🚀

@jaredledvina

Copy link
Copy Markdown
Contributor

Thanks, my change looks good too

@amaanx86

amaanx86 commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

My change looks fine! 🚀

Thanks @viktor-kurchenko

@pidreher

pidreher commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

#46842 looks fine, thank you @viktor-kurchenko :)

@msune

msune commented Aug 3, 2026

Copy link
Copy Markdown
Member

@viktor-kurchenko

Copy link
Copy Markdown
Contributor Author

@asauber kind ping)

@maintainer-s-little-helper maintainer-s-little-helper Bot added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label Aug 7, 2026
@mhofstetter
mhofstetter added this pull request to the merge queue Aug 7, 2026
Merged via the queue into v1.20 with commit 3957318 Aug 7, 2026
580 of 587 checks passed
@mhofstetter
mhofstetter deleted the pr/v1.20-backport-2026-08-03-10-01 branch August 7, 2026 07:36
gabrielcosi pushed a commit to gabrielcosi/home-ops that referenced this pull request Aug 18, 2026
….20.1) (#430)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [quay.io/cilium/charts/cilium](https://cilium.io/) ([source](https://github.com/cilium/cilium)) | patch | `1.20.0` → `1.20.1` |

---

### Release Notes

<details>
<summary>cilium/cilium (quay.io/cilium/charts/cilium)</summary>

### [`v1.20.1`](https://github.com/cilium/cilium/releases/tag/v1.20.1): 1.20.1

[Compare Source](cilium/cilium@1.20.0...1.20.1)

## Summary of Changes

**Major Changes:**

- docs/clustermesh: overhaul Cluster Mesh documentation with a new introduction, improved load-balancing guidance, and Helm-first setup and certificate configuration instructions (Backport PR [#&#8203;47615](cilium/cilium#47615), Upstream PR [#&#8203;47351](cilium/cilium#47351), [@&#8203;MrFreezeex](https://github.com/MrFreezeex))

**Minor Changes:**

- envoy: demote stale ADS endpoint warning (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47148](cilium/cilium#47148), [@&#8203;nezdolik](https://github.com/nezdolik))
- Speed up recovery time for disrupted TCP connections that access a DSR-enabled Service. (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47529](cilium/cilium#47529), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))

**Bugfixes:**

- azure: Stop issuing redundant CiliumNode status updates on every IPAM sync when the node's Azure interfaces are unchanged. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47449](cilium/cilium#47449), [@&#8203;jaredledvina](https://github.com/jaredledvina))
- bpf: dsr: don't look for TCP header on fragmented packets (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47640](cilium/cilium#47640), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- bpf: hostfw: tolerate unknown CT protocols and rely on policies (Backport PR [#&#8203;47621](cilium/cilium#47621), Upstream PR [#&#8203;47343](cilium/cilium#47343), [@&#8203;smagnani96](https://github.com/smagnani96))
- clustermesh: fix MCS-API CRD install/upgrade when clustermesh-apiserver is started before the CRD version is actually installed (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47824](cilium/cilium#47824), [@&#8203;MrFreezeex](https://github.com/MrFreezeex))
- datapath: turn ARP off on the base devices before bringing them up (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47838](cilium/cilium#47838), [@&#8203;aanm](https://github.com/aanm))
- endpoint/watchdog: Avoid warning about endpoints being deleted (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47625](cilium/cilium#47625), [@&#8203;christarazi](https://github.com/christarazi))
- endpoint: Fix silent CIDR policy bypass and traffic drops after agent restart (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47880](cilium/cilium#47880), [@&#8203;weizhoublue](https://github.com/weizhoublue))
- envoy.httpUpstreamLingerTimeout accepts `0` as a chart value and templates into configmap. (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47741](cilium/cilium#47741), [@&#8203;jdw6359](https://github.com/jdw6359))
- envoy: restore http-idle-timeout as the route idle timeout source (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47583](cilium/cilium#47583), [@&#8203;aanm](https://github.com/aanm))
- Fix a BPF verifier reject on pre-v5.12 kernels, when IPv6 is enabled. (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47765](cilium/cilium#47765), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- Fix a deadlock in the shutdown of Cilium operator related to CiliumEndpointSlices. (Backport PR [#&#8203;47967](cilium/cilium#47967), Upstream PR [#&#8203;47802](cilium/cilium#47802), [@&#8203;bimmlerd](https://github.com/bimmlerd))
- Fix a NetworkPolicy update being ignored for up to two minutes when it arrived while an endpoint was waiting for its security identity to be resolved after a pod relabel. (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47727](cilium/cilium#47727), [@&#8203;aanm](https://github.com/aanm))
- Fix a spurious "unable to find ifindex for interface MAC" agent warning on EKS ENI IPAM by waiting for the ENI netlink interface before configuring ingress routes and rules. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47295](cilium/cilium#47295), [@&#8203;aanm](https://github.com/aanm))
- Fix abnormal ip allocation caused by hostnetwork pod (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47552](cilium/cilium#47552), [@&#8203;haozhangami](https://github.com/haozhangami))
- Fix unintended RevDNAT for client-to-pod TCP connections, when an identical connection was previously established through a DSR Service. (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47593](cilium/cilium#47593), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- fix: allow setting endpointPolicyUpdateTimeoutDuration in helm (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47754](cilium/cilium#47754), [@&#8203;weizhoublue](https://github.com/weizhoublue))
- Fixed an issue where an HTTPRoute referencing a Gateway with mixed listener protocols (e.g. HTTP and TCP) was incorrectly rejected with `NotAllowedByListeners` when the TCP listener had an explicit `AllowedRoutes.Kinds` restriction. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;46842](cilium/cilium#46842), [@&#8203;pidreher](https://github.com/pidreher))
- gateway-api/gamma: refresh CEC owner refs on route recreation (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47840](cilium/cilium#47840), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: mark unresolved backend service ports in route status (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47766](cilium/cilium#47766), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: preserve duplicate HTTPRoute rule precedence (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;46696](cilium/cilium#46696), [@&#8203;thorn3r](https://github.com/thorn3r))
- gateway-api: prevent conflicted listeners from reaching ingestion (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47457](cilium/cilium#47457), [@&#8203;asauber](https://github.com/asauber))
- gateway-api: requeue L4/TLS routes on ServiceImport updates (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47702](cilium/cilium#47702), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: sync ListenerSet TLS secrets on ListenerSet events (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47627](cilium/cilium#47627), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- ipcache: fix CIDR reference counter to use canonical prefixes (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47208](cilium/cilium#47208), [@&#8203;iwanhae](https://github.com/iwanhae))
- l2announcer: re-evaluate services on frontend changes (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47579](cilium/cilium#47579), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- Log the correct route kind when the Gateway API operator fails to list TLSRoutes for a backend Service (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47826](cilium/cilium#47826), [@&#8203;mehrdadbn9](https://github.com/mehrdadbn9))
- operator: Emit startup logs in the configured log format (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47890](cilium/cilium#47890), [@&#8203;HadrienPatte](https://github.com/HadrienPatte))
- Resolve a endpoint manager crash for restored endpoints with verbose policy logging enabled. (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47844](cilium/cilium#47844), [@&#8203;bimmlerd](https://github.com/bimmlerd))
- standalone-dns-proxy: return an error when no endpoint is found (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47791](cilium/cilium#47791), [@&#8203;vipul-21](https://github.com/vipul-21))
- wireguard: Unsubscribe node handler on shutdown (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47614](cilium/cilium#47614), [@&#8203;HadrienPatte](https://github.com/HadrienPatte))

**CI Changes:**

- .github: add python3-scapy for BPF unit tests (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47535](cilium/cilium#47535), [@&#8203;msune](https://github.com/msune))
- .github: run all quarantined EKS tests in a single tolerated step (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47534](cilium/cilium#47534), [@&#8203;aanm](https://github.com/aanm))
- .github: Run envoy image check against PR content (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47792](cilium/cilium#47792), [@&#8203;joestringer](https://github.com/joestringer))
- .github: Simplify permissions for image linter workflow (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47753](cilium/cilium#47753), [@&#8203;joestringer](https://github.com/joestringer))
- .github: suppress spurious encryption leak reports for node-to-pod DNS requests going through proxy (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47470](cilium/cilium#47470), [@&#8203;atykhyy](https://github.com/atykhyy))
- .github: test the default ENI behaviour on the EKS pull request leg (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47569](cilium/cilium#47569), [@&#8203;aanm](https://github.com/aanm))
- ariane: move kind-proxy-embedded and kubespray workflows to /test (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47743](cilium/cilium#47743), [@&#8203;giorio94](https://github.com/giorio94))
- bpf/complexity-tests: Cover L7 LB (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47060](cilium/cilium#47060), [@&#8203;pchaigno](https://github.com/pchaigno))
- ci: build race images on push events so conformance-race works on stable branches (Backport PR [#&#8203;47609](cilium/cilium#47609), Upstream PR [#&#8203;47608](cilium/cilium#47608), [@&#8203;aanm](https://github.com/aanm))
- ci: build race images on push in the stable image builders (Backport PR [#&#8203;47609](cilium/cilium#47609), Upstream PR [#&#8203;47616](cilium/cilium#47616), [@&#8203;aanm](https://github.com/aanm))
- ci: draft renovate PRs until ciliumbot auto-approval (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47364](cilium/cilium#47364), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- ci: fix filtering out md files in bpf checks (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47605](cilium/cilium#47605), [@&#8203;nebril](https://github.com/nebril))
- ci: migrate set-commit-status to cilium/actions (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47771](cilium/cilium#47771), [@&#8203;bogdankrasko](https://github.com/bogdankrasko))
- ci: skip etcd log fetch when kvstore was never started (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47801](cilium/cilium#47801), [@&#8203;aanm](https://github.com/aanm))
- Fix missing `events_map_rate_limit` complexity coverage (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47691](cilium/cilium#47691), [@&#8203;pchaigno](https://github.com/pchaigno))
- gha/kubespray: run on schedule, rather than on every push (Backport PR [#&#8203;47731](cilium/cilium#47731), Upstream PR [#&#8203;47719](cilium/cilium#47719), [@&#8203;giorio94](https://github.com/giorio94))
- gha/lvh-kind: respect Kind image version also when config is provided (Backport PR [#&#8203;47731](cilium/cilium#47731), Upstream PR [#&#8203;47703](cilium/cilium#47703), [@&#8203;giorio94](https://github.com/giorio94))
- gha: don't install LLVM and Clang in integration tests workflow (Backport PR [#&#8203;47731](cilium/cilium#47731), Upstream PR [#&#8203;47717](cilium/cilium#47717), [@&#8203;giorio94](https://github.com/giorio94))
- gha: fix checkout of trusted branch in smoke and k8s-kind workflows (Backport PR [#&#8203;47731](cilium/cilium#47731), Upstream PR [#&#8203;47724](cilium/cilium#47724), [@&#8203;giorio94](https://github.com/giorio94))
- images/scripts: Validate Envoy image vars against sed injection (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47205](cilium/cilium#47205), [@&#8203;MasloMaslane](https://github.com/MasloMaslane))
- Revert "gha: don't install LLVM and Clang in integration tests workflow" (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47780](cilium/cilium#47780), [@&#8203;giorio94](https://github.com/giorio94))
- test(bpf): parallelize eBPF test compilation (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47426](cilium/cilium#47426), [@&#8203;lconnery](https://github.com/lconnery))
- test/cyclonus: log the JUnit XML instead of copying it from a dead pod (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47725](cilium/cilium#47725), [@&#8203;aanm](https://github.com/aanm))
- test: allowlist the leader election read timeout in ginkgo log check (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47612](cilium/cilium#47612), [@&#8203;aanm](https://github.com/aanm))

**Misc Changes:**

- Added documentation for running Cilium in CNI chaining mode on Oracle Kubernetes Engine (OKE) with VCN-Native Pod Networking. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;46116](cilium/cilium#46116), [@&#8203;amaanx86](https://github.com/amaanx86))
- allocator: fix flake in TestWatchRemoteKVStore (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47455](cilium/cilium#47455), [@&#8203;giorio94](https://github.com/giorio94))
- bpf/nat: Move IPv6 nat entry to map (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47762](cilium/cilium#47762), [@&#8203;pchaigno](https://github.com/pchaigno))
- bpf: conntrack: Reduce stack usage of `ct_create{4,6}` (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47582](cilium/cilium#47582), [@&#8203;dylandreimerink](https://github.com/dylandreimerink))
- bpf: dsr: only require DSR-info on SYN packet (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47592](cilium/cilium#47592), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- bpf: dsr: re-use TCP SYN flag from CT lookup in remote-backend path (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47388](cilium/cilium#47388), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- bpf: lb: use dedicated new\_backend bool (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47841](cilium/cilium#47841), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- chore(deps): update all github action dependencies (v1.20) ([#&#8203;47991](cilium/cilium#47991), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update all github action dependencies (v1.20) ([#&#8203;48008](cilium/cilium#48008), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update all-dependencies (v1.20) ([#&#8203;47678](cilium/cilium#47678), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update dependency cilium/cilium-cli to v0.19.7 (v1.20) ([#&#8203;47576](cilium/cilium#47576), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update dependency protocolbuffers/protobuf-go to v1.36.12 (v1.20) ([#&#8203;47988](cilium/cilium#47988), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update docker.io/library/golang:1.26.5 docker digest to [`705e964`](cilium/cilium@705e964) (v1.20) ([#&#8203;47949](cilium/cilium#47949), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update docker.io/library/golang:1.26.5 docker digest to [`7caba52`](cilium/cilium@7caba52) (v1.20) ([#&#8203;47864](cilium/cilium#47864), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update quay.io/cilium/cilium-envoy docker tag to v1.37.5-1786449955-8e46c97d1cecc0ba6af6c0c7018a8f18ec93e70d (v1.20) ([#&#8203;47899](cilium/cilium#47899), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update quay.io/cilium/cilium-envoy docker tag to v1.37.5-1786810558-766ccfb37260a43e9d228837aa84ce3faf9f64e7 (v1.20) ([#&#8203;47989](cilium/cilium#47989), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update stable lvh-images (v1.20) (patch) ([#&#8203;47865](cilium/cilium#47865), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update stable lvh-images (v1.20) (patch) ([#&#8203;47990](cilium/cilium#47990), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- clustermesh/endpointslices: explicitly limit maximum decoder memory (Backport PR [#&#8203;47962](cilium/cilium#47962), Upstream PR [#&#8203;47932](cilium/cilium#47932), [@&#8203;giorio94](https://github.com/giorio94))
- docs: clarify GAMMA DROP\_EP\_NOT\_READY events (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47587](cilium/cilium#47587), [@&#8203;thorn3r](https://github.com/thorn3r))
- docs: Fix a bug that caused all versions to be treated as pre-release and rendering previous releases in the upgrade guide. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47600](cilium/cilium#47600), [@&#8203;41ks](https://github.com/41ks))
- docs: Remove "not stable" installation instructions (Backport PR [#&#8203;47798](cilium/cilium#47798), Upstream PR [#&#8203;47646](cilium/cilium#47646), [@&#8203;joestringer](https://github.com/joestringer))
- docs: update Gateway API conformance badge (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47581](cilium/cilium#47581), [@&#8203;arybolovlev](https://github.com/arybolovlev))
- docs: Update Gateway API installation guide (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47446](cilium/cilium#47446), [@&#8203;arybolovlev](https://github.com/arybolovlev))
- Gateway API: the Gateway address status no longer reports a bogus "<nil>" address when a Node's first status address is not an IP literal (e.g. a Hostname entry). (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47466](cilium/cilium#47466), [@&#8203;locker95](https://github.com/locker95))
- gateway-api: remove unnecessary TLSRoute support checks (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47758](cilium/cilium#47758), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: report invalid HTTPRoute header modifiers in status (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47599](cilium/cilium#47599), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: return route check errors directly (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47607](cilium/cilium#47607), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: unify Gateway API listener parentRef matching (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;46670](cilium/cilium#46670), [@&#8203;arybolovlev](https://github.com/arybolovlev))
- gateway-api: validate gRPCRoute header modifiers in status (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47606](cilium/cilium#47606), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- operator: Replace `reflect.DeepEqual` with `assert.Equal` in tests (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47424](cilium/cilium#47424), [@&#8203;HadrienPatte](https://github.com/HadrienPatte))
- Update all github action dependencies (v1.20) ([#&#8203;47656](cilium/cilium#47656), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update all github action dependencies (v1.20) ([#&#8203;47675](cilium/cilium#47675), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update docker.io/library/busybox:1.38.0 Docker digest to [`dc2d74b`](cilium/cilium@dc2d74b) (v1.20) ([#&#8203;47655](cilium/cilium#47655), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update documentation dependencies (Backport PR [#&#8203;47798](cilium/cilium#47798), Upstream PR [#&#8203;47750](cilium/cilium#47750), [@&#8203;joestringer](https://github.com/joestringer))
- Update quay.io/cilium/certgen Docker tag to v0.4.9 (v1.20) ([#&#8203;47657](cilium/cilium#47657), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update quay.io/cilium/image-tester Docker tag to v1785158849 (v1.20) ([#&#8203;47659](cilium/cilium#47659), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update quay.io/lvh-images/kind Docker tag to v6.18-20260720.023802 (v1.20) ([#&#8203;47658](cilium/cilium#47658), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])

**Other Changes:**

- install: Update image digests for v1.20.0 ([#&#8203;47584](cilium/cilium#47584), [@&#8203;cilium-release-bot](https://github.com/cilium-release-bot)\[bot])

#### Docker Manifests

##### cilium

`quay.io/cilium/cilium:v1.20.1@sha256:ae9ea21f7427fe24bc6ea7247eb552157a1b0a431744045d3f641545ca71d11b`
`quay.io/cilium/cilium:stable@sha256:ae9ea21f7427fe24bc6ea7247eb552157a1b0a431744045d3f641545ca71d11b`

##### clustermesh-apiserver

`quay.io/cilium/clustermesh-apiserver:v1.20.1@sha256:d905d614a332b2058cb81c193e481d1f460902b903f4eb57cc9764640b750fb5`
`quay.io/cilium/clustermesh-apiserver:stable@sha256:d905d614a332b2058cb81c193e481d1f460902b903f4eb57cc9764640b750fb5`

##### hubble-relay

`quay.io/cilium/hubble-relay:v1.20.1@sha256:59be0ae7d475ab9011a5e954618c0f27b5778b17140381425b308b55ba4917f4`
`quay.io/cilium/hubble-relay:stable@sha256:59be0ae7d475ab9011a5e954618c0f27b5778b17140381425b308b55ba4917f4`

##### operator-alibabacloud

`quay.io/cilium/operator-alibabacloud:v1.20.1@sha256:2af5dd3d85649ea36d365363b8eca82ad06116c6259c4aace700a7c036348e4c`
`quay.io/cilium/operator-alibabacloud:stable@sha256:2af5dd3d85649ea36d365363b8eca82ad06116c6259c4aace700a7c036348e4c`

##### operator-aws

`quay.io/cilium/operator-aws:v1.20.1@sha256:7cf0cb0e6584f72ca8de951a1be03829f69fcaeba69dc6c7856fc4470545acd7`
`quay.io/cilium/operator-aws:stable@sha256:7cf0cb0e6584f72ca8de951a1be03829f69fcaeba69dc6c7856fc4470545acd7`

##### operator-azure

`quay.io/cilium/operator-azure:v1.20.1@sha256:13746a479ca60395df8d83580b49464c6c975cca6fdb21ba4791a076ab01b031`
`quay.io/cilium/operator-azure:stable@sha256:13746a479ca60395df8d83580b49464c6c975cca6fdb21ba4791a076ab01b031`

##### operator-generic

`quay.io/cilium/operator-generic:v1.20.1@sha256:6c3885fc7b629099fdbe2a5c87869c86feb825fa18fae299eac0f61918d16ecf`
`quay.io/cilium/operator-generic:stable@sha256:6c3885fc7b629099fdbe2a5c87869c86feb825fa18fae299eac0f61918d16ecf`

##### operator

`quay.io/cilium/operator:v1.20.1@sha256:67adaf5575902dcce31dc36ba5b5acad397a8b40ec986b55696c94f80b6d861d`
`quay.io/cilium/operator:stable@sha256:67adaf5575902dcce31dc36ba5b5acad397a8b40ec986b55696c94f80b6d861d`

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Berlin)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMC4zIiwidXBkYXRlZEluVmVyIjoiNDQuMzAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->

Reviewed-on: https://git.xcd.dev/gabrielcosi/home-ops/pulls/430
doonga pushed a commit to greyrock-labs/home-ops that referenced this pull request Aug 18, 2026
….20.1) (#349)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [quay.io/cilium/charts/cilium](https://cilium.io/) ([source](https://github.com/cilium/cilium)) | patch | `1.20.0` → `1.20.1` |

---

### Release Notes

<details>
<summary>cilium/cilium (quay.io/cilium/charts/cilium)</summary>

### [`v1.20.1`](https://github.com/cilium/cilium/releases/tag/v1.20.1): 1.20.1

[Compare Source](cilium/cilium@1.20.0...1.20.1)

## Summary of Changes

**Major Changes:**

- docs/clustermesh: overhaul Cluster Mesh documentation with a new introduction, improved load-balancing guidance, and Helm-first setup and certificate configuration instructions (Backport PR [#&#8203;47615](cilium/cilium#47615), Upstream PR [#&#8203;47351](cilium/cilium#47351), [@&#8203;MrFreezeex](https://github.com/MrFreezeex))

**Minor Changes:**

- envoy: demote stale ADS endpoint warning (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47148](cilium/cilium#47148), [@&#8203;nezdolik](https://github.com/nezdolik))
- Speed up recovery time for disrupted TCP connections that access a DSR-enabled Service. (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47529](cilium/cilium#47529), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))

**Bugfixes:**

- azure: Stop issuing redundant CiliumNode status updates on every IPAM sync when the node's Azure interfaces are unchanged. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47449](cilium/cilium#47449), [@&#8203;jaredledvina](https://github.com/jaredledvina))
- bpf: dsr: don't look for TCP header on fragmented packets (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47640](cilium/cilium#47640), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- bpf: hostfw: tolerate unknown CT protocols and rely on policies (Backport PR [#&#8203;47621](cilium/cilium#47621), Upstream PR [#&#8203;47343](cilium/cilium#47343), [@&#8203;smagnani96](https://github.com/smagnani96))
- clustermesh: fix MCS-API CRD install/upgrade when clustermesh-apiserver is started before the CRD version is actually installed (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47824](cilium/cilium#47824), [@&#8203;MrFreezeex](https://github.com/MrFreezeex))
- datapath: turn ARP off on the base devices before bringing them up (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47838](cilium/cilium#47838), [@&#8203;aanm](https://github.com/aanm))
- endpoint/watchdog: Avoid warning about endpoints being deleted (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47625](cilium/cilium#47625), [@&#8203;christarazi](https://github.com/christarazi))
- endpoint: Fix silent CIDR policy bypass and traffic drops after agent restart (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47880](cilium/cilium#47880), [@&#8203;weizhoublue](https://github.com/weizhoublue))
- envoy.httpUpstreamLingerTimeout accepts `0` as a chart value and templates into configmap. (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47741](cilium/cilium#47741), [@&#8203;jdw6359](https://github.com/jdw6359))
- envoy: restore http-idle-timeout as the route idle timeout source (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47583](cilium/cilium#47583), [@&#8203;aanm](https://github.com/aanm))
- Fix a BPF verifier reject on pre-v5.12 kernels, when IPv6 is enabled. (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47765](cilium/cilium#47765), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- Fix a deadlock in the shutdown of Cilium operator related to CiliumEndpointSlices. (Backport PR [#&#8203;47967](cilium/cilium#47967), Upstream PR [#&#8203;47802](cilium/cilium#47802), [@&#8203;bimmlerd](https://github.com/bimmlerd))
- Fix a NetworkPolicy update being ignored for up to two minutes when it arrived while an endpoint was waiting for its security identity to be resolved after a pod relabel. (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47727](cilium/cilium#47727), [@&#8203;aanm](https://github.com/aanm))
- Fix a spurious "unable to find ifindex for interface MAC" agent warning on EKS ENI IPAM by waiting for the ENI netlink interface before configuring ingress routes and rules. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47295](cilium/cilium#47295), [@&#8203;aanm](https://github.com/aanm))
- Fix abnormal ip allocation caused by hostnetwork pod (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47552](cilium/cilium#47552), [@&#8203;haozhangami](https://github.com/haozhangami))
- Fix unintended RevDNAT for client-to-pod TCP connections, when an identical connection was previously established through a DSR Service. (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47593](cilium/cilium#47593), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- fix: allow setting endpointPolicyUpdateTimeoutDuration in helm (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47754](cilium/cilium#47754), [@&#8203;weizhoublue](https://github.com/weizhoublue))
- Fixed an issue where an HTTPRoute referencing a Gateway with mixed listener protocols (e.g. HTTP and TCP) was incorrectly rejected with `NotAllowedByListeners` when the TCP listener had an explicit `AllowedRoutes.Kinds` restriction. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;46842](cilium/cilium#46842), [@&#8203;pidreher](https://github.com/pidreher))
- gateway-api/gamma: refresh CEC owner refs on route recreation (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47840](cilium/cilium#47840), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: mark unresolved backend service ports in route status (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47766](cilium/cilium#47766), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: preserve duplicate HTTPRoute rule precedence (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;46696](cilium/cilium#46696), [@&#8203;thorn3r](https://github.com/thorn3r))
- gateway-api: prevent conflicted listeners from reaching ingestion (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47457](cilium/cilium#47457), [@&#8203;asauber](https://github.com/asauber))
- gateway-api: requeue L4/TLS routes on ServiceImport updates (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47702](cilium/cilium#47702), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: sync ListenerSet TLS secrets on ListenerSet events (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47627](cilium/cilium#47627), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- ipcache: fix CIDR reference counter to use canonical prefixes (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47208](cilium/cilium#47208), [@&#8203;iwanhae](https://github.com/iwanhae))
- l2announcer: re-evaluate services on frontend changes (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47579](cilium/cilium#47579), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- Log the correct route kind when the Gateway API operator fails to list TLSRoutes for a backend Service (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47826](cilium/cilium#47826), [@&#8203;mehrdadbn9](https://github.com/mehrdadbn9))
- operator: Emit startup logs in the configured log format (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47890](cilium/cilium#47890), [@&#8203;HadrienPatte](https://github.com/HadrienPatte))
- Resolve a endpoint manager crash for restored endpoints with verbose policy logging enabled. (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47844](cilium/cilium#47844), [@&#8203;bimmlerd](https://github.com/bimmlerd))
- standalone-dns-proxy: return an error when no endpoint is found (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47791](cilium/cilium#47791), [@&#8203;vipul-21](https://github.com/vipul-21))
- wireguard: Unsubscribe node handler on shutdown (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47614](cilium/cilium#47614), [@&#8203;HadrienPatte](https://github.com/HadrienPatte))

**CI Changes:**

- .github: add python3-scapy for BPF unit tests (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47535](cilium/cilium#47535), [@&#8203;msune](https://github.com/msune))
- .github: run all quarantined EKS tests in a single tolerated step (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47534](cilium/cilium#47534), [@&#8203;aanm](https://github.com/aanm))
- .github: Run envoy image check against PR content (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47792](cilium/cilium#47792), [@&#8203;joestringer](https://github.com/joestringer))
- .github: Simplify permissions for image linter workflow (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47753](cilium/cilium#47753), [@&#8203;joestringer](https://github.com/joestringer))
- .github: suppress spurious encryption leak reports for node-to-pod DNS requests going through proxy (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47470](cilium/cilium#47470), [@&#8203;atykhyy](https://github.com/atykhyy))
- .github: test the default ENI behaviour on the EKS pull request leg (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47569](cilium/cilium#47569), [@&#8203;aanm](https://github.com/aanm))
- ariane: move kind-proxy-embedded and kubespray workflows to /test (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47743](cilium/cilium#47743), [@&#8203;giorio94](https://github.com/giorio94))
- bpf/complexity-tests: Cover L7 LB (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47060](cilium/cilium#47060), [@&#8203;pchaigno](https://github.com/pchaigno))
- ci: build race images on push events so conformance-race works on stable branches (Backport PR [#&#8203;47609](cilium/cilium#47609), Upstream PR [#&#8203;47608](cilium/cilium#47608), [@&#8203;aanm](https://github.com/aanm))
- ci: build race images on push in the stable image builders (Backport PR [#&#8203;47609](cilium/cilium#47609), Upstream PR [#&#8203;47616](cilium/cilium#47616), [@&#8203;aanm](https://github.com/aanm))
- ci: draft renovate PRs until ciliumbot auto-approval (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47364](cilium/cilium#47364), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- ci: fix filtering out md files in bpf checks (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47605](cilium/cilium#47605), [@&#8203;nebril](https://github.com/nebril))
- ci: migrate set-commit-status to cilium/actions (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47771](cilium/cilium#47771), [@&#8203;bogdankrasko](https://github.com/bogdankrasko))
- ci: skip etcd log fetch when kvstore was never started (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47801](cilium/cilium#47801), [@&#8203;aanm](https://github.com/aanm))
- Fix missing `events_map_rate_limit` complexity coverage (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47691](cilium/cilium#47691), [@&#8203;pchaigno](https://github.com/pchaigno))
- gha/kubespray: run on schedule, rather than on every push (Backport PR [#&#8203;47731](cilium/cilium#47731), Upstream PR [#&#8203;47719](cilium/cilium#47719), [@&#8203;giorio94](https://github.com/giorio94))
- gha/lvh-kind: respect Kind image version also when config is provided (Backport PR [#&#8203;47731](cilium/cilium#47731), Upstream PR [#&#8203;47703](cilium/cilium#47703), [@&#8203;giorio94](https://github.com/giorio94))
- gha: don't install LLVM and Clang in integration tests workflow (Backport PR [#&#8203;47731](cilium/cilium#47731), Upstream PR [#&#8203;47717](cilium/cilium#47717), [@&#8203;giorio94](https://github.com/giorio94))
- gha: fix checkout of trusted branch in smoke and k8s-kind workflows (Backport PR [#&#8203;47731](cilium/cilium#47731), Upstream PR [#&#8203;47724](cilium/cilium#47724), [@&#8203;giorio94](https://github.com/giorio94))
- images/scripts: Validate Envoy image vars against sed injection (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47205](cilium/cilium#47205), [@&#8203;MasloMaslane](https://github.com/MasloMaslane))
- Revert "gha: don't install LLVM and Clang in integration tests workflow" (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47780](cilium/cilium#47780), [@&#8203;giorio94](https://github.com/giorio94))
- test(bpf): parallelize eBPF test compilation (Backport PR [#&#8203;47954](cilium/cilium#47954), Upstream PR [#&#8203;47426](cilium/cilium#47426), [@&#8203;lconnery](https://github.com/lconnery))
- test/cyclonus: log the JUnit XML instead of copying it from a dead pod (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47725](cilium/cilium#47725), [@&#8203;aanm](https://github.com/aanm))
- test: allowlist the leader election read timeout in ginkgo log check (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47612](cilium/cilium#47612), [@&#8203;aanm](https://github.com/aanm))

**Misc Changes:**

- Added documentation for running Cilium in CNI chaining mode on Oracle Kubernetes Engine (OKE) with VCN-Native Pod Networking. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;46116](cilium/cilium#46116), [@&#8203;amaanx86](https://github.com/amaanx86))
- allocator: fix flake in TestWatchRemoteKVStore (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47455](cilium/cilium#47455), [@&#8203;giorio94](https://github.com/giorio94))
- bpf/nat: Move IPv6 nat entry to map (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47762](cilium/cilium#47762), [@&#8203;pchaigno](https://github.com/pchaigno))
- bpf: conntrack: Reduce stack usage of `ct_create{4,6}` (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47582](cilium/cilium#47582), [@&#8203;dylandreimerink](https://github.com/dylandreimerink))
- bpf: dsr: only require DSR-info on SYN packet (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47592](cilium/cilium#47592), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- bpf: dsr: re-use TCP SYN flag from CT lookup in remote-backend path (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47388](cilium/cilium#47388), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- bpf: lb: use dedicated new\_backend bool (Backport PR [#&#8203;47881](cilium/cilium#47881), Upstream PR [#&#8203;47841](cilium/cilium#47841), [@&#8203;julianwiedmann](https://github.com/julianwiedmann))
- chore(deps): update all github action dependencies (v1.20) ([#&#8203;47991](cilium/cilium#47991), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update all github action dependencies (v1.20) ([#&#8203;48008](cilium/cilium#48008), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update all-dependencies (v1.20) ([#&#8203;47678](cilium/cilium#47678), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update dependency cilium/cilium-cli to v0.19.7 (v1.20) ([#&#8203;47576](cilium/cilium#47576), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update dependency protocolbuffers/protobuf-go to v1.36.12 (v1.20) ([#&#8203;47988](cilium/cilium#47988), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update docker.io/library/golang:1.26.5 docker digest to [`705e964`](cilium/cilium@705e964) (v1.20) ([#&#8203;47949](cilium/cilium#47949), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update docker.io/library/golang:1.26.5 docker digest to [`7caba52`](cilium/cilium@7caba52) (v1.20) ([#&#8203;47864](cilium/cilium#47864), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update quay.io/cilium/cilium-envoy docker tag to v1.37.5-1786449955-8e46c97d1cecc0ba6af6c0c7018a8f18ec93e70d (v1.20) ([#&#8203;47899](cilium/cilium#47899), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update quay.io/cilium/cilium-envoy docker tag to v1.37.5-1786810558-766ccfb37260a43e9d228837aa84ce3faf9f64e7 (v1.20) ([#&#8203;47989](cilium/cilium#47989), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update stable lvh-images (v1.20) (patch) ([#&#8203;47865](cilium/cilium#47865), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- chore(deps): update stable lvh-images (v1.20) (patch) ([#&#8203;47990](cilium/cilium#47990), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- clustermesh/endpointslices: explicitly limit maximum decoder memory (Backport PR [#&#8203;47962](cilium/cilium#47962), Upstream PR [#&#8203;47932](cilium/cilium#47932), [@&#8203;giorio94](https://github.com/giorio94))
- docs: clarify GAMMA DROP\_EP\_NOT\_READY events (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47587](cilium/cilium#47587), [@&#8203;thorn3r](https://github.com/thorn3r))
- docs: Fix a bug that caused all versions to be treated as pre-release and rendering previous releases in the upgrade guide. (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47600](cilium/cilium#47600), [@&#8203;41ks](https://github.com/41ks))
- docs: Remove "not stable" installation instructions (Backport PR [#&#8203;47798](cilium/cilium#47798), Upstream PR [#&#8203;47646](cilium/cilium#47646), [@&#8203;joestringer](https://github.com/joestringer))
- docs: update Gateway API conformance badge (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47581](cilium/cilium#47581), [@&#8203;arybolovlev](https://github.com/arybolovlev))
- docs: Update Gateway API installation guide (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47446](cilium/cilium#47446), [@&#8203;arybolovlev](https://github.com/arybolovlev))
- Gateway API: the Gateway address status no longer reports a bogus "<nil>" address when a Node's first status address is not an IP literal (e.g. a Hostname entry). (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47466](cilium/cilium#47466), [@&#8203;locker95](https://github.com/locker95))
- gateway-api: remove unnecessary TLSRoute support checks (Backport PR [#&#8203;47885](cilium/cilium#47885), Upstream PR [#&#8203;47758](cilium/cilium#47758), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: report invalid HTTPRoute header modifiers in status (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47599](cilium/cilium#47599), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: return route check errors directly (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47607](cilium/cilium#47607), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- gateway-api: unify Gateway API listener parentRef matching (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;46670](cilium/cilium#46670), [@&#8203;arybolovlev](https://github.com/arybolovlev))
- gateway-api: validate gRPCRoute header modifiers in status (Backport PR [#&#8203;47805](cilium/cilium#47805), Upstream PR [#&#8203;47606](cilium/cilium#47606), [@&#8203;mhofstetter](https://github.com/mhofstetter))
- operator: Replace `reflect.DeepEqual` with `assert.Equal` in tests (Backport PR [#&#8203;47690](cilium/cilium#47690), Upstream PR [#&#8203;47424](cilium/cilium#47424), [@&#8203;HadrienPatte](https://github.com/HadrienPatte))
- Update all github action dependencies (v1.20) ([#&#8203;47656](cilium/cilium#47656), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update all github action dependencies (v1.20) ([#&#8203;47675](cilium/cilium#47675), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update docker.io/library/busybox:1.38.0 Docker digest to [`dc2d74b`](cilium/cilium@dc2d74b) (v1.20) ([#&#8203;47655](cilium/cilium#47655), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update documentation dependencies (Backport PR [#&#8203;47798](cilium/cilium#47798), Upstream PR [#&#8203;47750](cilium/cilium#47750), [@&#8203;joestringer](https://github.com/joestringer))
- Update quay.io/cilium/certgen Docker tag to v0.4.9 (v1.20) ([#&#8203;47657](cilium/cilium#47657), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update quay.io/cilium/image-tester Docker tag to v1785158849 (v1.20) ([#&#8203;47659](cilium/cilium#47659), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])
- Update quay.io/lvh-images/kind Docker tag to v6.18-20260720.023802 (v1.20) ([#&#8203;47658](cilium/cilium#47658), [@&#8203;cilium-renovate](https://github.com/cilium-renovate)\[bot])

**Other Changes:**

- install: Update image digests for v1.20.0 ([#&#8203;47584](cilium/cilium#47584), [@&#8203;cilium-release-bot](https://github.com/cilium-release-bot)\[bot])

##### Docker Manifests

##### cilium

`quay.io/cilium/cilium:v1.20.1@sha256:ae9ea21f7427fe24bc6ea7247eb552157a1b0a431744045d3f641545ca71d11b`
`quay.io/cilium/cilium:stable@sha256:ae9ea21f7427fe24bc6ea7247eb552157a1b0a431744045d3f641545ca71d11b`

##### clustermesh-apiserver

`quay.io/cilium/clustermesh-apiserver:v1.20.1@sha256:d905d614a332b2058cb81c193e481d1f460902b903f4eb57cc9764640b750fb5`
`quay.io/cilium/clustermesh-apiserver:stable@sha256:d905d614a332b2058cb81c193e481d1f460902b903f4eb57cc9764640b750fb5`

##### hubble-relay

`quay.io/cilium/hubble-relay:v1.20.1@sha256:59be0ae7d475ab9011a5e954618c0f27b5778b17140381425b308b55ba4917f4`
`quay.io/cilium/hubble-relay:stable@sha256:59be0ae7d475ab9011a5e954618c0f27b5778b17140381425b308b55ba4917f4`

##### operator-alibabacloud

`quay.io/cilium/operator-alibabacloud:v1.20.1@sha256:2af5dd3d85649ea36d365363b8eca82ad06116c6259c4aace700a7c036348e4c`
`quay.io/cilium/operator-alibabacloud:stable@sha256:2af5dd3d85649ea36d365363b8eca82ad06116c6259c4aace700a7c036348e4c`

##### operator-aws

`quay.io/cilium/operator-aws:v1.20.1@sha256:7cf0cb0e6584f72ca8de951a1be03829f69fcaeba69dc6c7856fc4470545acd7`
`quay.io/cilium/operator-aws:stable@sha256:7cf0cb0e6584f72ca8de951a1be03829f69fcaeba69dc6c7856fc4470545acd7`

##### operator-azure

`quay.io/cilium/operator-azure:v1.20.1@sha256:13746a479ca60395df8d83580b49464c6c975cca6fdb21ba4791a076ab01b031`
`quay.io/cilium/operator-azure:stable@sha256:13746a479ca60395df8d83580b49464c6c975cca6fdb21ba4791a076ab01b031`

##### operator-generic

`quay.io/cilium/operator-generic:v1.20.1@sha256:6c3885fc7b629099fdbe2a5c87869c86feb825fa18fae299eac0f61918d16ecf`
`quay.io/cilium/operator-generic:stable@sha256:6c3885fc7b629099fdbe2a5c87869c86feb825fa18fae299eac0f61918d16ecf`

##### operator

`quay.io/cilium/operator:v1.20.1@sha256:67adaf5575902dcce31dc36ba5b5acad397a8b40ec986b55696c94f80b6d861d`
`quay.io/cilium/operator:stable@sha256:67adaf5575902dcce31dc36ba5b5acad397a8b40ec986b55696c94f80b6d861d`

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->

Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/349
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport/1.20 This PR represents a backport for Cilium 1.20.x of a PR that was merged to main. feature/k8s-gateway-api kind/backports This PR provides functionality previously merged into master. ready-to-merge This PR has passed all tests and received consensus from code owners to merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.