Skip to content

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

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

envoy: Bump envoy version to v1.39.0#1998
sayboras wants to merge 5 commits into
mainfrom
pr/tammach/envoy-1.39

Conversation

@sayboras

Copy link
Copy Markdown
Member

No description provided.

Sync up the following files with upstream Envoy v1.39.0:

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

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>
@sayboras
sayboras force-pushed the pr/tammach/envoy-1.39 branch from a5bfc34 to 0cbd6a5 Compare August 17, 2026 10:43
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 0cbd6a5 to 9169629 Compare August 17, 2026 12:02
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