Skip to content

Latest commit

 

History

History
189 lines (178 loc) · 21.9 KB

v1.20.0.rst

File metadata and controls

189 lines (178 loc) · 21.9 KB

1.20.0 (October 5, 2021)

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

  • client_ssl_auth filter: now sets additional termination details and UAEX response flag when the client certificate is not in the allowed-list.
  • config: configuration files ending in .yml now load as YAML.
  • config: configuration file extensions now ignore case when deciding the file type. E.g., .JSON files load as JSON.
  • config: reduced log level for "Unable to establish new stream" xDS logs to debug. The log level for "gRPC config stream closed" is now reduced to debug when the status is Ok or has been retriable (DeadlineExceeded, ResourceExhausted, or Unavailable) for less than 30 seconds.
  • config: use of work-in-progress API files, messages, or fields will now generate an explicit warning. Please read the text about (xds.annotations.v3.file_status).work_in_progress, (xds.annotations.v3.message_status).work_in_progress, and (xds.annotations.v3.field_status).work_in_progress here for more information. Some APIs that are known to be implicitly not work-in-progress have been force migrated and are individually indicated elsewhere in the release notes. A server-wide wip_protos counter has also been added in :ref:`server statistics <server_statistics>` to track this.
  • ext_authz: fixed skipping authentication when returning either a direct response or a redirect. This behavior can be temporarily reverted by setting the envoy.reloadable_features.http_ext_authz_do_not_skip_direct_response_and_redirect runtime guard to false.
  • grpc: gRPC async client can be cached and shared across filter instances in the same thread, this feature is turned off by default, can be turned on by setting runtime guard envoy.reloadable_features.enable_grpc_async_client_cache to true.
  • http: correct the use of the x-forwarded-proto header and the :scheme header. Where they differ (which is rare) :scheme will now be used for serving redirect URIs and cached content. This behavior can be reverted by setting runtime guard correct_scheme_and_xfp to false.
  • http: reject requests with #fragment in the URI path. The fragment is not allowed to be part of the request URI according to RFC3986 (3.5), RFC7230 (5.1) and RFC 7540 (8.1.2.3). Rejection of requests can be changed to stripping the #fragment instead by setting the runtime guard envoy.reloadable_features.http_reject_path_with_fragment to false. This behavior can further be changed to the deprecated behavior of keeping the fragment by setting the runtime guard envoy.reloadable_features.http_strip_fragment_from_path_unsafe_if_disabled. This runtime guard must only be set to false when existing non-compliant traffic relies on #fragment in URI. When this option is enabled, Envoy request authorization extensions may be bypassed. This override and its associated behavior will be decommissioned after the standard deprecation period.
  • http: set the default :ref:`lazy headermap threshold <arch_overview_http_header_map_settings>` to 3, which defines the minimal number of headers in a request/response/trailers required for using a dictionary in addition to the list. Setting the envoy.http.headermap.lazy_map_min_size runtime feature to a non-negative number will override the default value.
  • http: stop processing pending H/2 frames if connection transitioned to a closed state. This behavior can be temporarily reverted by setting the envoy.reloadable_features.skip_dispatching_frames_for_closed_connection to false.
  • listener: added the :ref:`enable_reuse_port <envoy_v3_api_field_config.listener.v3.Listener.enable_reuse_port>` field and changed the default for reuse_port from false to true, as the feature is now well supported on the majority of production Linux kernels in use. The default change is aware of the hot restart, as otherwise, the change would not be backward compatible between restarts. This means that hot restarting onto a new binary will retain the default of false until the binary undergoes a full restart. To retain the previous behavior, either explicitly set the new configuration field to false, or set the runtime feature flag envoy.reloadable_features.listener_reuse_port_default_enabled to false. As part of this change, the use of reuse_port for TCP listeners on both macOS and Windows has been disabled due to suboptimal behavior. See the field documentation for more information.
  • listener: destroy per network filter chain stats when a network filter chain is removed during the listener in-place update.
  • quic: enables IETF connection migration. This feature requires a stable UDP packet routine in the L4 load balancer with the same first-4-bytes in connection id. It can be turned off by setting runtime guard envoy.reloadable_features.FLAGS_quic_reloadable_flag_quic_connection_migration_use_new_cid_v2 to false.
  • thrift_proxy: allow Framed and Header transport combinations to perform :ref:`payload passthrough <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.ThriftProxy.payload_passthrough>`.

Bug Fixes

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

Removed Config or Runtime

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

  • http: removed envoy.reloadable_features.http_upstream_wait_connect_response runtime guard and legacy code paths.
  • http: removed envoy.reloadable_features.allow_preconnect runtime guard and legacy code paths.
  • listener: removed envoy.reloadable_features.disable_tls_inspector_injection runtime guard and legacy code paths.
  • ocsp: removed envoy.reloadable_features.check_ocsp_policy deprecation runtime guard and legacy code paths.
  • ocsp: removed envoy.reloadable_features.require_ocsp_response_for_must_staple_certs deprecation and legacy code paths.
  • quic: removed envoy.reloadable_features.prefer_quic_kernel_bpf_packet_routing runtime guard.

New Features

Deprecated