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.0:config_access_log_format>`. DOWNSTREAM_ADDRESS access log formatter has been deprecated. * access log: added less than or equal (LE) :ref:`comparison filter <v1.6.0:envoy_api_msg_config.filter.accesslog.v2.ComparisonFilter>`. * access log: added configuration to :ref:`runtime filter <v1.6.0:envoy_api_msg_config.filter.accesslog.v2.RuntimeFilter>` to set default sampling rate, divisor, and whether to use independent randomness or not. * admin: added :ref:`/runtime <v1.6.0:operations_admin_interface_runtime>` admin endpoint to read the current runtime values. * build: added support for :repo:`building Envoy with exported symbols <v1.6.0: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 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.0:envoy_api_msg_DiscoveryRequest>`. * config: added support for :ref:`inline delivery <v1.6.0:envoy_api_msg_core.DataSource>` of TLS certificates and private keys. * config: added restrictions for the backing :ref:`config sources <v1.6.0: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. * grpc: the Google gRPC C++ library client is now supported as specified in the :ref:`gRPC services overview <v1.6.0:arch_overview_grpc_services>` and :ref:`GrpcService <v1.6.0:envoy_api_msg_core.GrpcService>`. * grpc-json: added support for :ref:`inline descriptors <v1.6.0:envoy_api_field_config.filter.http.transcoder.v2.GrpcJsonTranscoder.proto_descriptor_bin>`. * health check: added :ref:`gRPC health check <v1.6.0: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.0:envoy_api_field_core.HealthCheck.HttpHealthCheck.host>` for http health check. * 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.0:envoy_api_field_config.filter.http.health_check.v2.HealthCheck.cluster_min_healthy_percentages>`. * health check: added setting for :ref:`no-traffic interval <v1.6.0:envoy_api_field_core.HealthCheck.no_traffic_interval>`. * http: added idle timeout for :ref:`upstream http connections <v1.6.0:envoy_api_field_core.HttpProtocolOptions.idle_timeout>`. * http: added support for :ref:`proxying 100-Continue responses <v1.6.0:envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.proxy_100_continue>`. * 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. * http: added support for trusting additional hops in the :ref:`config_http_conn_man_headers_x-forwarded-for` request header. * http: added support for :ref:`incoming HTTP/1.0 <v1.6.0:envoy_api_field_core.Http1ProtocolOptions.accept_http_10>`. * hot restart: added SIGTERM propagation to children to :ref:`hot-restarter.py <v1.6.0:operations_hot_restarter>`, which enables using it as a parent of containers. * ip tagging: added :ref:`HTTP IP Tagging filter <v1.6.0:config_http_filters_ip_tagging>`. * listeners: added support for :ref:`listening for both IPv4 and IPv6 <v1.6.0:envoy_api_field_core.SocketAddress.ipv4_compat>` when binding to ::. * listeners: added support for listening on :ref:`UNIX domain sockets <v1.6.0:envoy_api_field_core.Address.pipe>`. * listeners: added support for :ref:`abstract unix domain sockets <v1.6.0:envoy_api_msg_core.Pipe>` on Linux. The abstract namespace can be used by prepending '@' to a socket path. * load balancer: added cluster configuration for :ref:`healthy panic threshold <v1.6.0:envoy_api_field_Cluster.CommonLbConfig.healthy_panic_threshold>` percentage. * load balancer: added :ref:`Maglev <v1.6.0:arch_overview_load_balancing_types_maglev>` consistent hash load balancer. * load balancer: added support for :ref:`LocalityLbEndpoints <v1.6.0:envoy_api_msg_endpoint.LocalityLbEndpoints>` priorities. * lua: added headers :ref:`replace() <v1.6.0:config_http_filters_lua_header_wrapper>` API. * lua: extended to support :ref:`metadata object <v1.6.0:config_http_filters_lua_metadata_wrapper>` API. * redis: added local `PING` support to the :ref:`Redis filter <v1.6.0:arch_overview_redis>`. * redis: added ``GEORADIUS_RO`` and ``GEORADIUSBYMEMBER_RO`` to the :ref:`Redis command splitter <v1.6.0:arch_overview_redis>` allowlist. * router: added DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT, DOWNSTREAM_LOCAL_ADDRESS, DOWNSTREAM_LOCAL_ADDRESS_WITHOUT_PORT, PROTOCOL, and UPSTREAM_METADATA :ref:`header formatters <v1.6.0: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.0:config_http_filters_router_x-envoy-retry-on>` policy. * router: added support for route matching based on :ref:`URL query string parameters <v1.6.0:envoy_api_msg_route.QueryParameterMatcher>`. * router: added support for more granular weighted cluster routing by allowing the :ref:`total_weight <v1.6.0:envoy_api_field_route.WeightedCluster.total_weight>` to be specified in configuration. * router: added support for :ref:`custom request/response headers <v1.6.0:config_http_conn_man_headers_custom_request_headers>` with mixed static and dynamic values. * router: added support for :ref:`direct responses <v1.6.0:envoy_api_field_route.Route.direct_response>`. I.e., sending a preconfigured HTTP response without proxying anywhere. * router: added support for :ref:`HTTPS redirects <v1.6.0:envoy_api_field_route.RedirectAction.https_redirect>` on specific routes. * router: added support for :ref:`prefix_rewrite <v1.6.0:envoy_api_field_route.RedirectAction.prefix_rewrite>` for redirects. * router: added support for :ref:`stripping the query string <v1.6.0:envoy_api_field_route.RedirectAction.strip_query>` for redirects. * router: added support for downstream request/upstream response :ref:`header manipulation <v1.6.0:config_http_conn_man_headers_custom_request_headers>` in :ref:`weighted cluster <v1.6.0:envoy_api_msg_route.WeightedCluster>`. * router: added support for :ref:`range based header matching <v1.6.0:envoy_api_field_route.HeaderMatcher.range_match>` for request routing. * squash: added support for the :ref:`Squash microservices debugger <v1.6.0: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.0:envoy_api_msg_config.metrics.v2.DogStatsdSink>` support. * stats: added support for :ref:`fixed stats tag values <v1.6.0:envoy_api_field_config.metrics.v2.TagSpecifier.fixed_value>` which will be added to all metrics. * tcp proxy: added support for specifying a :ref:`metadata matcher <v1.6.0: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. * tcp proxy: added :ref:`idle timeout <v1.6.0:envoy_api_field_config.filter.network.tcp_proxy.v2.TcpProxy.idle_timeout>`. * tcp proxy: access logs now bring an IP address without a port when using DOWNSTREAM_ADDRESS. Use :ref:`DOWNSTREAM_REMOTE_ADDRESS <v1.6.0:config_access_log_format>` instead. * tracing: added support for dynamically loading an :ref:`OpenTracing tracer <v1.6.0:envoy_api_msg_config.trace.v2.DynamicOtConfig>`. * 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.0:config_http_conn_man_headers_x-b3-sampled>` header) and have the decision propagated through to subsequently invoked services. * tracing: when using the Zipkin tracer, it is no longer necessary to propagate the :ref:`x-ot-span-context <v1.6.0:config_http_conn_man_headers_x-ot-span-context>` header. See more on trace context propagation :ref:`here <v1.6.0:arch_overview_tracing>`. * 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.0:envoy_api_field_Cluster.alt_stat_name>` while emitting stats for clusters. * Many small bug fixes and performance improvements not listed. Deprecated ---------- * DOWNSTREAM_ADDRESS log formatter is deprecated. Use DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT instead. * CLIENT_IP header formatter is deprecated. Use DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT instead. * 'use_original_dst' field in the v2 LDS API is deprecated. Use listener filters and filter chain matching instead. * ``value`` and ``regex`` fields in the ``HeaderMatcher`` message is deprecated. Use the ``exact_match`` or ``regex_match`` oneof instead.