.. _version_history_1.6.0: 1.6.0 (March 20, 2018) ======================= Changes ------- * **access log**: added ``DOWNSTREAM_REMOTE_ADDRESS``, ``DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT``, and ``DOWNSTREAM_LOCAL_ADDRESS`` :ref:`access log formatters <v1.6:config_access_log_format>`. ``DOWNSTREAM_ADDRESS`` access log formatter has been deprecated. * **access log**: added configuration to :ref:`runtime filter <v1.6:envoy_api_msg_config.filter.accesslog.v2.RuntimeFilter>` to set default sampling rate, divisor, and whether to use independent randomness or not. * **access log**: added less than or equal (LE) :ref:`comparison filter <v1.6:envoy_api_msg_config.filter.accesslog.v2.ComparisonFilter>`. * **admin**: added :ref:`/runtime <v1.6:operations_admin_interface_runtime>` admin endpoint to read the current runtime values. * **build**: added support for :repo:`building Envoy with exported symbols <bazel#enabling-optional-features>`. This change allows scripts loaded with the Lua filter to load shared object libraries such as those installed via `LuaRocks <https://luarocks.org/>`_. * **config**: added restrictions for the backing :ref:`config sources <v1.6:envoy_api_msg_core.ConfigSource>` of xDS resources. For filesystem based xDS the file must exist at configuration time. For cluster based xDS the backing cluster must be statically defined and be of non-EDS type. * **config**: added support for :ref:`inline delivery <v1.6:envoy_api_msg_core.DataSource>` of TLS certificates and private keys. * **config**: added support for sending error details as `grpc.rpc.Status <https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto>`_ in :ref:`DiscoveryRequest <v1.6:envoy_api_msg_DiscoveryRequest>`. * **envoy**: Many small bug fixes and performance improvements not listed. * **grpc**: the Google gRPC C++ library client is now supported as specified in the :ref:`gRPC services overview <v1.6:arch_overview_grpc_services>` and :ref:`GrpcService <v1.6:envoy_api_msg_core.GrpcService>`. * **grpc-json**: added support for :ref:`inline descriptors <v1.6:envoy_api_field_config.filter.http.transcoder.v2.GrpcJsonTranscoder.proto_descriptor_bin>`. * **health check**: added :ref:`gRPC health check <v1.6:envoy_api_field_core.HealthCheck.grpc_health_check>` based on `grpc.health.v1.Health <https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto>`_ service. * **health check**: added ability to set :ref:`host header value <v1.6:envoy_api_field_core.HealthCheck.HttpHealthCheck.host>` for http health check. * **health check**: added setting for :ref:`no-traffic interval <v1.6:envoy_api_field_core.HealthCheck.no_traffic_interval>`. * **health check**: extended the health check filter to support computation of the health check response based on the :ref:`percentage of healthy servers in upstream clusters <v1.6:envoy_api_field_config.filter.http.health_check.v2.HealthCheck.cluster_min_healthy_percentages>`. * **hot restart**: added SIGTERM propagation to children to :ref:`hot-restarter.py <v1.6:operations_hot_restarter>`, which enables using it as a parent of containers. * **http**: added idle timeout for :ref:`upstream http connections <v1.6:envoy_api_field_core.HttpProtocolOptions.idle_timeout>`. * **http**: added support for :ref:`incoming HTTP/1.0 <v1.6:envoy_api_field_core.Http1ProtocolOptions.accept_http_10>`. * **http**: added support for :ref:`proxying 100-Continue responses <v1.6:envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.proxy_100_continue>`. * **http**: added support for trusting additional hops in the :ref:`config_http_conn_man_headers_x-forwarded-for` request header. * **http**: added the ability to pass a URL encoded PEM encoded peer certificate in the :ref:`config_http_conn_man_headers_x-forwarded-client-cert` header. * **ip tagging**: added :ref:`HTTP IP Tagging filter <v1.6:config_http_filters_ip_tagging>`. * **listeners**: added support for :ref:`abstract unix domain sockets <v1.6:envoy_api_msg_core.Pipe>` on Linux. The abstract namespace can be used by prepending '@' to a socket path. * **listeners**: added support for :ref:`listening for both IPv4 and IPv6 <v1.6:envoy_api_field_core.SocketAddress.ipv4_compat>` when binding to ::. * **listeners**: added support for listening on :ref:`UNIX domain sockets <v1.6:envoy_api_field_core.Address.pipe>`. * **load balancer**: added :ref:`Maglev <v1.6:arch_overview_load_balancing_types_maglev>` consistent hash load balancer. * **load balancer**: added cluster configuration for :ref:`healthy panic threshold <v1.6:envoy_api_field_Cluster.CommonLbConfig.healthy_panic_threshold>` percentage. * **load balancer**: added support for :ref:`LocalityLbEndpoints <v1.6:envoy_api_msg_endpoint.LocalityLbEndpoints>` priorities. * **lua**: added headers :ref:`replace() <v1.6:config_http_filters_lua_header_wrapper>` API. * **lua**: extended to support :ref:`metadata object <v1.6:config_http_filters_lua_metadata_wrapper>` API. * **redis**: added ``GEORADIUS_RO`` and ``GEORADIUSBYMEMBER_RO`` to the :ref:`Redis command splitter <v1.6:arch_overview_redis>` allowlist. * **redis**: added local ``PING`` support to the :ref:`Redis filter <v1.6:arch_overview_redis>`. * **router**: added ``DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT``, ``DOWNSTREAM_LOCAL_ADDRESS``, ``DOWNSTREAM_LOCAL_ADDRESS_WITHOUT_PORT``, ``PROTOCOL``, and ``UPSTREAM_METADATA`` :ref:`header formatters <v1.6:config_http_conn_man_headers_custom_request_headers>`. The ``CLIENT_IP`` header formatter has been deprecated. * **router**: added gateway-error :ref:`retry-on <v1.6:config_http_filters_router_x-envoy-retry-on>` policy. * **router**: added support for :ref:`HTTPS redirects <v1.6:envoy_api_field_route.RedirectAction.https_redirect>` on specific routes. * **router**: added support for :ref:`custom request/response headers <v1.6:config_http_conn_man_headers_custom_request_headers>` with mixed static and dynamic values. * **router**: added support for :ref:`direct responses <v1.6:envoy_api_field_route.Route.direct_response>`. I.e., sending a preconfigured HTTP response without proxying anywhere. * **router**: added support for :ref:`prefix_rewrite <v1.6:envoy_api_field_route.RedirectAction.prefix_rewrite>` for redirects. * **router**: added support for :ref:`range based header matching <v1.6:envoy_api_field_route.HeaderMatcher.range_match>` for request routing. * **router**: added support for :ref:`stripping the query string <v1.6:envoy_api_field_route.RedirectAction.strip_query>` for redirects. * **router**: added support for downstream request/upstream response :ref:`header manipulation <v1.6:config_http_conn_man_headers_custom_request_headers>` in :ref:`weighted cluster <v1.6:envoy_api_msg_route.WeightedCluster>`. * **router**: added support for more granular weighted cluster routing by allowing the :ref:`total_weight <v1.6:envoy_api_field_route.WeightedCluster.total_weight>` to be specified in configuration. * **router**: added support for route matching based on :ref:`URL query string parameters <v1.6:envoy_api_msg_route.QueryParameterMatcher>`. * **squash**: added support for the :ref:`Squash microservices debugger <v1.6:config_http_filters_squash>`. Allows debugging an incoming request to a microservice in the mesh. * **stats**: added metrics service API implementation. * **stats**: added native :ref:`DogStatsd <v1.6:envoy_api_msg_config.metrics.v2.DogStatsdSink>` support. * **stats**: added support for :ref:`fixed stats tag values <v1.6:envoy_api_field_config.metrics.v2.TagSpecifier.fixed_value>` which will be added to all metrics. * **tcp proxy**: access logs now bring an IP address without a port when using DOWNSTREAM_ADDRESS. Use :ref:`DOWNSTREAM_REMOTE_ADDRESS <v1.6:config_access_log_format>` instead. * **tcp proxy**: added :ref:`idle timeout <v1.6:envoy_api_field_config.filter.network.tcp_proxy.v2.TcpProxy.idle_timeout>`. * **tcp proxy**: added support for specifying a :ref:`metadata matcher <v1.6:envoy_api_field_config.filter.network.tcp_proxy.v2.TcpProxy.metadata_match>` for upstream clusters in the tcp filter. * **tcp proxy**: improved TCP proxy to correctly proxy TCP half-close. * **tracing**: added support for dynamically loading an :ref:`OpenTracing tracer <v1.6:envoy_api_msg_config.trace.v2.DynamicOtConfig>`. * **tracing**: when using the Zipkin tracer, it is no longer necessary to propagate the :ref:`x-ot-span-context <v1.6:config_http_conn_man_headers_x-ot-span-context>` header. See more on trace context propagation :ref:`here <v1.6:arch_overview_tracing>`. * **tracing**: when using the Zipkin tracer, it is now possible for clients to specify the sampling decision (using the :ref:`x-b3-sampled <v1.6:config_http_conn_man_headers_x-b3-sampled>` header) and have the decision propagated through to subsequently invoked services. * **transport sockets**: added transport socket interface to allow custom implementations of transport sockets. A transport socket provides read and write logic with buffer encryption and decryption (if applicable). The existing TLS implementation has been refactored with the interface. * **upstream**: added support for specifying an :ref:`alternate stats name <v1.6:envoy_api_field_Cluster.alt_stat_name>` while emitting stats for clusters. Deprecated ---------- * **headers**: ``CLIENT_IP`` header formatter is deprecated. Use ``DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT`` instead. * **lds**: 'use_original_dst' field in the v2 LDS API is deprecated. Use listener filters and filter chain matching instead. * **logging**: ``DOWNSTREAM_ADDRESS`` log formatter is deprecated. Use ``DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT`` instead. * **matching**: ``value`` and ``regex`` fields in the ``HeaderMatcher`` message is deprecated. Use the ``exact_match`` or ``regex_match`` oneof instead.