1.11.0 (July 11, 2019)

Changes

  • access log: added a new field for downstream TLS session ID to file and gRPC access logger.

  • access log: added a new field for route name to file and gRPC access logger.

  • access log: added a new field for response code details in file access logger and gRPC access logger.

  • access log: added several new variables for exposing information about the downstream TLS connection to file access logger and gRPC access logger.

  • access log: added a new flag for request rejected due to failed strict header check.

  • admin: the administration interface now includes a /ready endpoint for easier readiness checks.

  • admin: extend /runtime_modify endpoint to support parameters within the request body.

  • admin: the /listener endpoint now returns listeners.proto which includes listener names and ports.

  • admin: added host priority to GET /clusters and GET /clusters?format=json endpoint response

  • admin: the /clusters endpoint now shows hostname for each host, useful for DNS based clusters.

  • api: track and report requests issued since last load report.

  • build: releases are built with Clang and linked with LLD.

  • config: added stats_server_version_override in bootstrap, that can be used to override server.version statistic.

  • control-plane: management servers can respond with HTTP 304 to indicate that config is up to date for Envoy proxies polling a REST API Config Type

  • csrf: added support for allowlisting additional source origins.

  • dns: added support for getting DNS record TTL which is used by STRICT_DNS/LOGICAL_DNS cluster as DNS refresh rate.

  • dubbo_proxy: support the dubbo proxy filter.

  • dynamo_request_parser: adding support for transactions. Adds check for new types of dynamodb operations (TransactWriteItems, TransactGetItems) and awareness for new types of dynamodb errors (IdempotentParameterMismatchException, TransactionCanceledException, TransactionInProgressException).

  • eds: added support to specify max time for which endpoints can be used gRPC filter.

  • eds: removed max limit for load_balancing_weight.

  • event: added loop duration and poll delay statistics.

  • ext_authz: added a x-envoy-auth-partial-body metadata header set to false|true indicating if there is a partial body sent in the authorization request message.

  • ext_authz: added configurable status code that allows customizing HTTP responses on filter check status errors.

  • ext_authz: added option to ext_authz that allows the filter clearing route cache.

  • grpc-json: added support for auto mapping.

  • health check: added initial jitter to add jitter to the first health check in order to prevent thundering herd on Envoy startup.

  • hot restart: stats are no longer shared between hot restart parent/child via shared memory, but rather by RPC. Hot restart version incremented to 11.

  • http: added the ability to pass a URL encoded PEM encoded peer certificate chain in the x-forwarded-client-cert header.

  • http: fixed a bug where large unbufferable responses were not tracked in stats and logs correctly.

  • http: fixed a crashing bug where gRPC local replies would cause segfaults when upstream access logging was on.

  • http: mitigated a race condition with the delayed_close_timeout where it could trigger while actively flushing a pending write buffer for a downstream connection.

  • http: added support for preserve_external_request_id that represents whether the x-request-id should not be reset on edge entry inside mesh

  • http: changed sendLocalReply to send percent-encoded GrpcMessage.

  • http: added a header_prefix configuration option to allow Envoy to send and process x-custom- prefixed headers rather than x-envoy.

  • http: added dynamic forward proxy support.

  • http: tracking the active stream and dumping state in Envoy crash handlers. This can be disabled by building with --define disable_object_dump_on_signal_trace=disabled

  • jwt_authn: make filter’s parsing of JWT more flexible, allowing syntax like jwt=eyJhbGciOiJS...ZFnFIw,extra=7,realm=123

  • listener: added source IP and source port filter chain matching.

  • lua: exposed functions to Lua to verify digital signature.

  • original_src filter: added the filter.

  • outlier_detector: added configuration outlier_detection.split_external_local_origin_errors to distinguish locally and externally generated errors. See Outlier detection for full details.

  • rbac: migrated from v2alpha to v2.

  • redis: add support for Redis cluster custom cluster type.

  • redis: automatically route commands using cluster slots for Redis cluster.

  • redis: added prefix routing to enable routing commands based on their key’s prefix to different upstream.

  • redis: added request mirror policy to enable shadow traffic and/or dual writes.

  • redis: add support for zpopmax and zpopmin commands.

  • redis: added max_buffer_size_before_flush to batch commands together until the encoder buffer hits a certain size, and buffer_flush_timeout to control how quickly the buffer is flushed if it is not full.

  • redis: added auth support downstream_auth_password for downstream client authentication, and auth_password to configure authentication passwords for upstream server clusters.

  • retry: added a retry predicate that rejects canary hosts.

  • router: add support for configuring a gRPC timeout offset on incoming requests.

  • router: added ability to control retry back-off intervals via retry policy.

  • router: added ability to issue a hedged retry in response to a per try timeout via a hedge policy.

  • router: added a route name field to each http route in route.Route list

  • router: added several new variables for exposing information about the downstream TLS connection via header formatters.

  • router: per try timeouts will no longer start before the downstream request has been received in full by the router.This ensures that the per try timeout does not account for slow downstreams and that will not start before the global timeout.

  • router: added RouteAction’s auto_host_rewrite_header to allow upstream host header substitution with some other header’s value

  • router: added support for UPSTREAM_REMOTE_ADDRESS header formatter.

  • router: add ability to reject a request that includes invalid values for headers configured in strict_check_headers

  • runtime: added support for flexible layering configuration.

  • runtime: added support for statically specifying the runtime in the bootstrap configuration.

  • runtime: Runtime Discovery Service (RTDS) support added to layered runtime configuration.

  • sandbox: added CSRF sandbox.

  • server: --define manual_stamp=manual_stamp was added to allow server stamping outside of binary rules. more info in the bazel docs.

  • server: added server state statistic.

  • server: added initialization_time_ms statistic.

  • subset: added list_as_any option to the subset lb which allows matching metadata against any of the values in a list value on the endpoints.

  • tools: added proto support for router check tool tests.

  • tracing: add trace sampling configuration to the route, to override the route level.

  • upstream: added upstream_cx_pool_overflow for the connection pool circuit breaker.

  • upstream: an EDS management server can now force removal of a host that is still passing active health checking by first marking the host as failed via EDS health check and subsequently removing it in a future update. This is a mechanism to work around a race condition in which an EDS implementation may remove a host before it has stopped passing active HC, thus causing the host to become stranded until a future update.

  • upstream: added an option that allows ignoring new hosts for the purpose of load balancing calculations until they have been health checked for the first time.

  • upstream: added runtime error checking to prevent setting dns type to STRICT_DNS or LOGICAL_DNS when custom resolver name is specified.

  • upstream: added possibility to override fallback_policy per specific selector in subset load balancer.

  • upstream: the logical DNS cluster now displays the current resolved IP address in admin output instead of 0.0.0.0.

Deprecated

  • The –max-stats and –max-obj-name-len flags no longer has any effect.

  • Use of cluster in redis_proxy.proto is deprecated. Set a catch_all_route instead.

  • Use of catch_all_cluster in redis_proxy.proto is deprecated. Set a catch_all_route instead.

  • Use of json based schema in router check tool tests. The tests should follow validation schema.

  • Use of the v1 style route configuration for the TCP proxy filter is now fully replaced with listener filter chain matching. Use this instead.

  • Use of runtime in Bootstrap. Use layered_runtime instead.

  • Specifying “deprecated_v1: true” in HTTP and network filter configuration to allow loading JSON configuration is now deprecated and will be removed in a following release. Update any custom filters to use protobuf configuration. A struct can be used for a mostly 1:1 conversion if needed. The envoy.deprecated_features.v1_filter_json_config runtime key can be used to temporarily enable this feature once the deprecation becomes fail by default.