Skip to content

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

Draft
sayboras wants to merge 6 commits into
mainfrom
pr/tammach/envoy-1.39
Draft

envoy: Bump envoy version to v1.39.1#1998
sayboras wants to merge 6 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 from 9169629 to 7274f6c Compare August 29, 2026 05:09
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()).

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>
@sayboras
sayboras force-pushed the pr/tammach/envoy-1.39 branch 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
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.
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.

1 participant