Skip to content

envoy: Bump envoy version to v1.39.1 - #1998

Merged
nezdolik merged 7 commits into
mainfrom
pr/tammach/envoy-1.39
Sep 30, 2026
Merged

nezdolik merged 7 commits into
mainfrom
pr/tammach/envoy-1.39

Conversation

@sayboras

Copy link
Copy Markdown
Member

No description provided.

@sayboras
sayboras force-pushed the pr/tammach/envoy-1.39 branch 2 times, most recently from 0cbd6a5 to 9169629 Compare August 17, 2026 12:02
@sayboras
sayboras force-pushed the pr/tammach/envoy-1.39 branch 2 times, most recently from 7274f6c to ce354be Compare August 29, 2026 05:15
@sayboras sayboras changed the title envoy: Bump envoy version to v1.39.0 envoy: Bump envoy version to v1.39.1 Aug 29, 2026
@sayboras
sayboras force-pushed the pr/tammach/envoy-1.39 branch 4 times, most recently from 77f9e98 to 0b37004 Compare August 31, 2026 00:00
@sayboras
sayboras marked this pull request as ready for review September 2, 2026 12:16
@sayboras
sayboras requested a review from a team as a code owner September 2, 2026 12:16
@sayboras
sayboras requested a review from mhofstetter September 2, 2026 12:16
@sayboras sayboras added the dont-merge/preview-only DON'T MERGE label Sep 2, 2026
@nezdolik
nezdolik self-requested a review September 30, 2026 14:21
Sync up the following files with upstream Envoy v1.39.1:

- `.bazelversion` (Bazel 7.7.1 -> 8.7.0)
- `envoy.bazelrc`
- `envoy_build_config/extensions_build_config.bzl`

Adjust patch 0003 for the upstream backport in original_dst_cluster.cc
that replaced copyInternetAddressAndPort(*dst_ip) with
getAddressWithPort(dst_addr, dst_ip->port()).

Renumber the write filter and tcp_proxy peer close patches to 0007 and
0008, and refresh them against v1.39.1. The tcp_proxy patch needed its
context updated for upstream's switch from absl::optional to
std::optional.

Signed-off-by: Tam Mach <tam.mach@cilium.io>
Since Bazel 8, `git_repository` carries a `patch_strip` attribute, and
`bazel_tools`' `patch()` helper unconditionally prepends the corresponding
`-pN` to `patch_args`. With `patch_tool = "git"` and `patch_args = ["apply"]`
that produces `git -p0 apply < patchfile`, and `git` rejects `-p0` as an
unknown global option.

Signed-off-by: Tam Mach <tam.mach@cilium.io>
Envoy 1.39 brings a number of API changes that the Cilium filters and their
tests need to follow:

- `check_format` now bans `absl::optional`, `absl::nullopt` and
  `absl::make_optional` in favour of the `std` equivalents.
- `FilterState::StateType` is gone and `setData()` lost its `state_type`
  parameter.
- `Http::UpstreamCallbacks` gained a pure `onHostSelected()`. Cilium enforces
  upstream host authorization in the network filter, so this is a no-op here.
- `TransportSocket::closeSocket()` takes an `abort_reset` flag, which
  `SslSocketWrapper` forwards so that policy denials still reset the
  connection.
- Protobuf 35 marks `SerializeToString()` and `Any::PackFrom()` as
  `[[nodiscard]]`. Failing to serialize an access log entry or a health check
  event is now logged and the message dropped instead of being sent truncated.
- `TestUtility::waitForCounterEq()`/`Ge()` and the gauge equivalents were
  removed in favour of the matcher based `waitForCounter()`/`waitForGauge()`.
- Buffer watermark callbacks are `absl::AnyInvocable<void()>` and therefore
  move-only.
- Extension lookup by name only is gone, so the router filter needs an explicit
  `typed_config`.
- spdlog is built with `SPDLOG_USE_STD_FORMAT`, so `ENVOY_LOG()` arguments have
  to be `std::format`-able. Turn the `RuleVerdict` formatter into a
  `std::formatter` and replace `fmt::join()` with `absl::StrJoin()`.
- `cilium_network_policy_test` needs an explicit dependency on the upstream
  secret mocks, which it used to pick up transitively.

Signed-off-by: Tam Mach <tam.mach@cilium.io>
API update for Envoy 1.39, which bumps protobuf from 33.2 to 35.1.

Only changes comments in generated files.

Signed-off-by: Tam Mach <tam.mach@cilium.io>
`main` is on Envoy 1.39 now, so widen its `allowedVersions` accordingly.
Otherwise Renovate keeps the constraint at `<=1.38` and stops proposing 1.39.x
patch releases for `main`.

Signed-off-by: Tam Mach <tam.mach@cilium.io>
Protobuf bundled with Envoy 1.39 marks Any::PackFrom as [[nodiscard]],
so the unchecked call in cilium_network_policy_benchmark.cc fails under
-Werror=unused-result and breaks the integration test build. Assign the
result to std::ignore, matching the other test files.
Bazel 8 turns @bazel_tools//tools/cpp/runfiles into an alias for
@rules_cc//cc/runfiles, so the per_file_copt regex keyed on the old
bazel_tools path no longer matched anything. Without it, MSAN flags the
stat() buffer in Runfiles::Create and every //tests:* binary aborts
before running a single test.

Signed-off-by: Tam Mach <tam.mach@cilium.io>
@sayboras
sayboras force-pushed the pr/tammach/envoy-1.39 branch from 0b37004 to 6a17dfa Compare September 30, 2026 14:54
@sayboras sayboras removed the dont-merge/preview-only DON'T MERGE label Sep 30, 2026
@nezdolik
nezdolik enabled auto-merge (rebase) September 30, 2026 16:28
@nezdolik
nezdolik merged commit 8dac512 into main Sep 30, 2026
11 checks passed
@nezdolik
nezdolik deleted the pr/tammach/envoy-1.39 branch September 30, 2026 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants