Skip to content

Latest commit

 

History

History
121 lines (111 loc) · 19.1 KB

File metadata and controls

121 lines (111 loc) · 19.1 KB

1.17.0 (pending)

Incompatible Behavior Changes

Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required

Minor Behavior Changes

Changes that may cause incompatibilities for some users, but should not for most

  • build: the Alpine based debug images are no longer built in CI, use Ubuntu based images instead.
  • cluster manager: the cluster which can't extract secret entity by SDS to be warming and never activate. This feature is disabled by default and is controlled by runtime guard envoy.reloadable_features.cluster_keep_warming_no_secret_entity.
  • decompressor: set the default value of window_bits of the decompressor to 15 to be able to decompress responses compressed by a compressor with any window size.
  • expr filter: added connection.termination_details property support.
  • ext_authz filter: disable envoy.reloadable_features.ext_authz_measure_timeout_on_check_created by default.
  • ext_authz filter: the deprecated field :ref:`use_alpha <envoy_api_field_config.filter.http.ext_authz.v2.ExtAuthz.use_alpha>` is no longer supported and cannot be set anymore.
  • formatter: the :ref:`text_format <envoy_v3_api_field_config.core.v3.SubstitutionFormatString.text_format>` field no longer requires at least one byte, and may now be the empty string. It has also become deprecated: see Deprecated section.
  • grpc_web filter: if a grpc-accept-encoding header is present it's passed as-is to the upstream and if it isn't grpc-accept-encoding:identity is sent instead. The header was always overwriten with grpc-accept-encoding:identity,deflate,gzip before.
  • http: upstream protocol will now only be logged if an upstream stream was established.
  • jwt_authn filter: added support of Jwt time constraint verification with a clock skew (default to 60 seconds) and added a filter config field :ref:`clock_skew_seconds <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.clock_skew_seconds>` to configure it.
  • kill_request: enable a way to configure kill header name in KillRequest proto.
  • listener: injection of the :ref:`TLS inspector <config_listener_filters_tls_inspector>` has been disabled by default. This feature is controlled by the runtime guard envoy.reloadable_features.disable_tls_inspector_injection.
  • lua: add always_wrap_body argument to body() API to always return a :ref:`buffer object <config_http_filters_lua_buffer_wrapper>` even if the body is empty.
  • memory: enable new tcmalloc with restartable sequences for aarch64 builds.
  • mongo proxy metrics: swapped network connection remote and local closed counters previously set reversed (cx_destroy_local_with_active_rq and cx_destroy_remote_with_active_rq).
  • outlier detection: added :ref:`max_ejection_time <envoy_v3_api_field_config.cluster.v3.OutlierDetection.max_ejection_time>` to limit ejection time growth when a node stays unhealthy for extended period of time. By default :ref:`max_ejection_time <envoy_v3_api_field_config.cluster.v3.OutlierDetection.max_ejection_time>` limits ejection time to 5 minutes. Additionally, when the node stays healthy, ejection time decreases. See :ref:`ejection algorithm<arch_overview_outlier_detection_algorithm>` for more info. Previously, ejection time could grow without limit and never decreased.
  • performance: improve performance when handling large HTTP/1 bodies.
  • tcp_proxy: now waits for HTTP tunnel to be established before start streaming the downstream data, the runtime guard envoy.reloadable_features.http_upstream_wait_connect_response can be set to "false" to disable this behavior.
  • tls: removed RSA key transport and SHA-1 cipher suites from the client-side defaults.
  • watchdog: the watchdog action :ref:`abort_action <envoy_v3_api_msg_watchdog.v3alpha.AbortActionConfig>` is now the default action to terminate the process if watchdog kill / multikill is enabled.
  • xds: to support TTLs, heartbeating has been added to xDS. As a result, responses that contain empty resources without updating the version will no longer be propagated to the subscribers. To undo this for VHDS (which is the only subscriber that wants empty resources), the envoy.reloadable_features.vhds_heartbeats can be set to "false".

Bug Fixes

Changes expected to improve the state of the world and are unlikely to have negative effects

  • config: validate that upgrade configs have a non-empty :ref:`upgrade_type <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.UpgradeConfig.upgrade_type>`, fixing a bug where an errant "-" could result in unexpected behavior.
  • dns: fix a bug where custom resolvers provided in configuration were not preserved after network issues.
  • dns_filter: correctly associate DNS response IDs when multiple queries are received.
  • grpc mux: fix sending node again after stream is reset when ::ref:`set_node_on_first_message_only <envoy_api_field_core.ApiConfigSource.set_node_on_first_message_only>` is set.
  • http: fixed URL parsing for HTTP/1.1 fully qualified URLs and connect requests containing IPv6 addresses.
  • http: reject requests with missing required headers after filter chain processing.
  • http: sending CONNECT_ERROR for HTTP/2 where appropriate during CONNECT requests.
  • proxy_proto: fixed a bug where the wrong downstream address got sent to upstream connections.
  • proxy_proto: fixed a bug where network filters would not have the correct downstreamRemoteAddress() when accessed from the StreamInfo. This could result in incorrect enforcement of RBAC rules in the RBAC network filter (but not in the RBAC HTTP filter), or incorrect access log addresses from tcp_proxy.
  • sds: fix a bug that clusters sharing same sds target are marked active immediately.
  • tls: fix detection of the upstream connection close event.
  • tls: fix read resumption after triggering buffer high-watermark and all remaining request/response bytes are stored in the SSL connection's internal buffers.
  • udp: fixed issue in which receiving truncated UDP datagrams would cause Envoy to crash.
  • watchdog: touch the watchdog before most event loop operations to avoid misses when handling bursts of callbacks.

Removed Config or Runtime

Normally occurs at the end of the :ref:`deprecation period <deprecated>`

  • dispatcher: removed legacy socket read/write resumption code path and runtime guard envoy.reloadable_features.activate_fds_next_event_loop.
  • ext_authz: removed auto ignore case in HTTP-based ext_authz header matching and the runtime guard envoy.reloadable_features.ext_authz_http_service_enable_case_sensitive_string_matcher. To ignore case, set the :ref:`ignore_case <envoy_api_field_type.matcher.StringMatcher.ignore_case>` field to true.
  • http: flip default HTTP/1 and HTTP/2 server codec implementations to new codecs that remove the use of exceptions for control flow. To revert to old codec behavior, set the runtime feature envoy.reloadable_features.new_codec_behavior to false.
  • http: removed envoy.reloadable_features.http1_flood_protection and legacy code path for turning flood protection off.
  • http: removed envoy.reloadable_features.new_codec_behavior and legacy codecs.

New Features

Deprecated