Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required
- grpc_bridge_filter: the filter no longer collects grpc stats in favor of the existing grpc stats filter.
The behavior can be reverted by changing runtime key
envoy.reloadable_features.grpc_bridge_stats_disabled
. - tracing: update Apache SkyWalking tracer version to be compatible with 8.4.0 data collect protocol. This change will introduce incompatibility with SkyWalking 8.3.0.
Changes that may cause incompatibilities for some users, but should not for most
- access_log: add new access_log command operator
%REQUEST_TX_DURATION%
. - aws_request_signing: requests are now buffered by default to compute signatures which include the
payload hash, making the filter compatible with most AWS services. Previously, requests were
never buffered, which only produced correct signatures for requests without a body, or for
requests to S3, ES or Glacier, which used the literal string
UNSIGNED-PAYLOAD
. Buffering can be now be disabled in favor of using unsigned payloads with compatible services via the new use_unsigned_payload filter option (default false). - http: disable the integration between :ref:`ExtensionWithMatcher <envoy_v3_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
and HTTP filters by default to reflects its experimental status. This feature can be enabled by seting
envoy.reloadable_features.experimental_matching_api
to true. - http: replaced setting
envoy.reloadable_features.strict_1xx_and_204_response_headers
with settingsenvoy.reloadable_features.require_strict_1xx_and_204_response_headers
(require upstream 1xx or 204 responses to not have Transfer-Encoding or non-zero Content-Length headers) andenvoy.reloadable_features.send_strict_1xx_and_204_response_headers
(do not send 1xx or 204 responses with these headers). Both are true by default. - http: serve HEAD requests from cache.
- listener: respect the :ref:`connection balance config <envoy_v3_api_field_config.listener.v3.Listener.connection_balance_config>` defined within the listener where the sockets are redirected to. Clear that field to restore the previous behavior.
Changes expected to improve the state of the world and are unlikely to have negative effects
- http: port stripping now works for CONNECT requests, though the port will be restored if the CONNECT request is sent upstream. This behavior can be temporarily reverted by setting
envoy.reloadable_features.strip_port_from_connect
to false. - http: raise max configurable max_request_headers_kb limit to 8192 KiB (8MiB) from 96 KiB in http connection manager.
- listener: fix the crash which could happen when the ongoing filter chain only listener update is followed by the listener removal or full listener update.
- validation: fix an issue that causes TAP sockets to panic during config validation mode.
- xray: fix the default sampling 'rate' for AWS X-Ray tracer extension to be 5% as opposed to 50%.
- zipkin: fix timestamp serializaiton in annotations. A prior bug fix exposed an issue with timestamps being serialized as strings.
Normally occurs at the end of the :ref:`deprecation period <deprecated>`
- http: removed
envoy.reloadable_features.allow_500_after_100
runtime guard and the legacy code path. - http: removed
envoy.reloadable_features.always_apply_route_header_rules
runtime guard and legacy code path. - http: removed
envoy.reloadable_features.hcm_stream_error_on_invalid_message
for disabling closing HTTP/1.1 connections on error. Connection-closing can still be disabled by setting the HTTP/1 configuration :ref:`override_stream_error_on_invalid_http_message <envoy_v3_api_field_config.core.v3.Http1ProtocolOptions.override_stream_error_on_invalid_http_message>`. - http: removed
envoy.reloadable_features.http_set_copy_replace_all_headers
runtime guard and legacy code paths. - http: removed
envoy.reloadable_features.overload_manager_disable_keepalive_drain_http2
; Envoy will now always send GOAWAY to HTTP2 downstreams when the :ref:`disable_keepalive <config_overload_manager_overload_actions>` overload action is active. - http: removed
envoy.reloadable_features.http_match_on_all_headers
runtime guard and legacy code paths. - http: removed
envoy.reloadable_features.unify_grpc_handling
runtime guard and legacy code paths. - tls: removed
envoy.reloadable_features.tls_use_io_handle_bio
runtime guard and legacy code path.
- http: added the ability to :ref:`unescape slash sequences<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.path_with_escaped_slashes_action>` in the path. Requests with unescaped slashes can be proxied, rejected or redirected to the new unescaped path. By default this feature is disabled. The default behavior can be overridden through :ref:`http_connection_manager.path_with_escaped_slashes_action<config_http_conn_man_runtime_path_with_escaped_slashes_action>` runtime variable. This action can be selectively enabled for a portion of requests by setting the :ref:`http_connection_manager.path_with_escaped_slashes_action_sampling<config_http_conn_man_runtime_path_with_escaped_slashes_action_enabled>` runtime variable.
- http: added upstream and downstream alpha HTTP/3 support! See :ref:`quic_options <envoy_v3_api_field_config.listener.v3.UdpListenerConfig.quic_options>` for downstream and the new http3_protocol_options in :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` for upstream HTTP/3.
- listener: added ability to change an existing listener's address.
- metric service: added support for sending metric tags as labels. This can be enabled by setting the :ref:`emit_tags_as_labels <envoy_v3_api_field_config.metrics.v3.MetricsServiceConfig.emit_tags_as_labels>` field to true.
- udp_proxy: added :ref:`key <envoy_v3_api_msg_extensions.filters.udp.udp_proxy.v3.UdpProxyConfig.HashPolicy>` as another hash policy to support hash based routing on any given key.