1.36.0 (Pending)

Removed config or runtime

Normally occurs at the end of the deprecation period

  • dfp: Removed runtime guard envoy.reloadable_features.dfp_fail_on_empty_host_header and legacy code paths.

  • dynamic_forward_proxy: Removed runtime guard envoy.reloadable_features.avoid_dfp_cluster_removal_on_cds_update and legacy code paths.

  • http_connection_manager: Removed runtime guard envoy.reloadable_features.explicit_internal_address_config and legacy code paths.

  • oauth2: Removed runtime guard envoy.reloadable_features.oauth2_use_refresh_token and legacy code paths.

  • quic: Removed runtime guard envoy.reloadable_features.prefer_quic_client_udp_gro and legacy code paths.

  • router: Removed runtime guard envoy.reloadable_features.shadow_policy_inherit_trace_sampling and legacy code paths.

New features

  • dns_filter, redis_proxy and prefix_matcher_map: Switch to using Radix Tree instead of Trie for performance improvements.

  • health_check: Added support for request payloads in HTTP health checks. The send field in HttpHealthCheck can now be used to specify a request body to be sent during health checking. This feature supports both hex-encoded text and binary payloads, similar to TCP health checks. The payload can only be used with HTTP methods that support request bodies (POST, PUT, PATCH, OPTIONS). Methods that must not have request bodies (GET, HEAD, DELETE, TRACE) are validated and will throw an error if combined with payloads. The implementation is optimized to process the payload once during configuration and reuse it for all health check requests. See HttpHealthCheck for configuration details.

  • load_reporting: Added support for endpoint-level load stats and metrics reporting. Locality load reports now include per endpoint statistics and metrics, but only for endpoints with updated stats, optimizing report size and efficiency.

  • lua: Added virtualHost() to the Stream handle API, allowing Lua scripts to retrieve virtual host information. So far, the only method implemented is metadata(), allowing Lua scripts to access virtual host metadata scoped to the specific filter name. See Virtual host object API for more details.

  • lua: Added a new filterState() on streamInfo() which provides access to filter state objects stored during request processing. This allows Lua scripts to retrieve string, boolean, and numeric values stored by various filters for use in routing decisions, header modifications, and other processing logic. See Filter State API for more details.

  • observability: Added ENVOY_NOTIFICATION macro to track specific conditions in produiction environments.

  • otlp_stat_sink: Added support for resource attributes. The stat sink will use the resource attributes configured for the OpenTelemetry tracer via resource_detectors.

  • ratelimit: Add the rate_limits field to generate rate limit descriptors. If this field is set, the VirtualHost.rate_limits or RouteAction.rate_limits fields will be ignored. However, RateLimitPerRoute.rate_limits will take precedence over this field.

  • router_check_tool: Added support for testing routes with dynamic metadata matchers in the router check tool. The tool now accepts a dynamic_metadata field in test input to set metadata that can be matched by route configuration. This allows comprehensive testing of routes that depend on dynamic metadata for routing decisions.

  • socket: Added :ref:network_namespace_filepath <envoy_v3_api_msg_config.core.v3.SocketAddress.network_namespace_filepath> to SocketAddress. This field allows specifying a Linux network namespace filepath for socket creation, enabling network isolation in containerized environments.