.. _deprecated: Deprecated ---------- As of release 1.3.0, Envoy will follow a `Breaking Change Policy `_. The following features have been DEPRECATED and will be removed in the specified release cycle. A logged warning is expected for each deprecated item that is in deprecation window. Deprecated items below are listed in chronological order. 1.13.0 (January 20, 2020) ========================= * The `request_headers_for_tags` field in :ref:`HTTP connection manager ` has been deprecated in favor of the :ref:`custom_tags ` field. * The `verify_subject_alt_name` field in :ref:`Certificate Validation Context ` has been deprecated in favor of the :ref:`match_subject_alt_names ` field. * The `request_mirror_policy` field in :ref:`RouteMatch ` has been deprecated in favor of the `request_mirror_policies` field. * The `service_name` field in :ref:`HTTP health checker ` has been deprecated in favor of the `service_name_matcher` field. * The v2 xDS API is deprecated. It will be supported by Envoy until EOY 2020. See :ref:`api_supported_versions`. 1.12.0 (October 31, 2019) ========================= * The ORIGINAL_DST_LB :ref:`load balancing policy ` is deprecated, use CLUSTER_PROVIDED policy instead when configuring an :ref:`original destination cluster `. * The `regex` field in :ref:`StringMatcher ` has been deprecated in favor of the `safe_regex` field. * The `regex` field in :ref:`RouteMatch ` has been deprecated in favor of the `safe_regex` field. * The `allow_origin` and `allow_origin_regex` fields in :ref:`CorsPolicy ` have been deprecated in favor of the `allow_origin_string_match` field. * The `pattern` and `method` fields in :ref:`VirtualCluster ` have been deprecated in favor of the `headers` field. * The `regex_match` field in :ref:`HeaderMatcher ` has been deprecated in favor of the `safe_regex_match` field. * The `value` and `regex` fields in :ref:`QueryParameterMatcher ` has been deprecated in favor of the `string_match` and `present_match` fields. * The :option:`--allow-unknown-fields` command-line option, use :option:`--allow-unknown-static-fields` instead. * The use of HTTP_JSON_V1 :ref:`Zipkin collector endpoint version ` or not explicitly specifying it is deprecated, use HTTP_JSON or HTTP_PROTO instead. * The `operation_name` field in :ref:`HTTP connection manager ` has been deprecated in favor of the `traffic_direction` field in :ref:`Listener `. The latter takes priority if specified. * The `tls_context` field in :ref:`Filter chain ` message and :ref:`Cluster ` message have been deprecated in favor of `transport_socket` with name `envoy.transport_sockets.tls`. The latter takes priority if specified. * The `use_http2` field in :ref:`HTTP health checker ` has been deprecated in favor of the `codec_client_type` field. * The use of :ref:`gRPC bridge filter ` for gRPC stats has been deprecated in favor of the dedicated :ref:`gRPC stats filter ` * Ext_authz filter stats `ok`, `error`, `denied`, `failure_mode_allowed` in *cluster..ext_authz.* namespace is deprecated. Use *http..ext_authz.* namespace to access same counters instead. * Use of google.protobuf.Struct for extension opaque configs is deprecated. Use google.protobuf.Any instead or pack udpa.type.v1.TypedStruct in google.protobuf.Any. 1.11.2 (October 8, 2019) ======================== * Use of :ref:`idle_timeout ` is deprecated. Use :ref:`common_http_protocol_options ` instead. 1.11.0 (July 11, 2019) ====================== * The --max-stats and --max-obj-name-len flags no longer has any effect. * Use of :ref:`cluster ` in :ref:`redis_proxy.proto ` is deprecated. Set a :ref:`catch_all_route ` instead. * Use of :ref:`catch_all_cluster ` in :ref:`redis_proxy.proto ` is deprecated. Set a :ref:`catch_all_route ` instead. * Use of json based schema in router check tool tests. The tests should follow validation :repo:`schema`. * Use of the v1 style route configuration for the :ref:`TCP proxy filter ` is now fully replaced with listener :ref:`filter chain matching `. Use this instead. * Use of :ref:`runtime ` in :ref:`Bootstrap `. Use :ref:`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. 1.10.0 (Apr 5, 2019) ==================== * Use of `use_alpha` in :ref:`Ext-Authz Authorization Service ` is deprecated. It should be used for a short time, and only when transitioning from alpha to V2 release version. * Use of `enabled` in `CorsPolicy`, found in :ref:`route.proto `. Set the `filter_enabled` field instead. * Use of the `type` field in the `FaultDelay` message (found in :ref:`fault.proto `) has been deprecated. It was never used and setting it has no effect. It will be removed in the following release. 1.9.0 (Dec 20, 2018) ==================== * Order of execution of the network write filter chain has been reversed. Prior to this release cycle it was incorrect, see `#4599 `_. In the 1.9.0 release cycle we introduced `bugfix_reverse_write_filter_order` in `lds.proto `_ to temporarily support both old and new behaviors. Note this boolean field is deprecated. * Order of execution of the HTTP encoder filter chain has been reversed. Prior to this release cycle it was incorrect, see `#4599 `_. In the 1.9.0 release cycle we introduced `bugfix_reverse_encode_order` in `http_connection_manager.proto `_ to temporarily support both old and new behaviors. Note this boolean field is deprecated. * Use of the v1 REST_LEGACY ApiConfigSource is deprecated. * Use of std::hash in the ring hash load balancer is deprecated. * Use of `rate_limit_service` configuration in the `bootstrap configuration `_ is deprecated. * Use of `runtime_key` in `RequestMirrorPolicy`, found in `route.proto `_ is deprecated. Set the `runtime_fraction` field instead. * Use of buffer filter `max_request_time` is deprecated in favor of the request timeout found in `HttpConnectionManager `_ 1.8.0 (Oct 4, 2018) =================== * Use of the v1 API (including `*.deprecated_v1` fields in the v2 API) is deprecated. See envoy-announce `email `_. * Use of the legacy `ratelimit.proto `_ is deprecated, in favor of the proto defined in `date-plane-api `_ Prior to 1.8.0, Envoy can use either proto to send client requests to a ratelimit server with the use of the `use_data_plane_proto` boolean flag in the `ratelimit configuration `_. However, when using the deprecated client a warning is logged. * Use of the --v2-config-only flag. * Use of both `use_websocket` and `websocket_config` in `route.proto `_ is deprecated. Please use the new `upgrade_configs` in the `HttpConnectionManager `_ instead. * Use of the integer `percent` field in `FaultDelay `_ and in `FaultAbort `_ is deprecated in favor of the new `FractionalPercent` based `percentage` field. * Setting hosts via `hosts` field in `Cluster` is deprecated. Use `load_assignment` instead. * Use of `response_headers_to_*` and `request_headers_to_add` are deprecated at the `RouteAction` level. Please use the configuration options at the `Route` level. * Use of `runtime` in `RouteMatch`, found in `route.proto `_. Set the `runtime_fraction` field instead. * Use of the string `user` field in `Authenticated` in `rbac.proto `_ is deprecated in favor of the new `StringMatcher` based `principal_name` field. 1.7.0 (Jun 21, 2018) ==================== * Admin mutations should be sent as POSTs rather than GETs. HTTP GETs will result in an error status code and will not have their intended effect. Prior to 1.7, GETs can be used for admin mutations, but a warning is logged. * Rate limit service configuration via the `cluster_name` field is deprecated. Use `grpc_service` instead. * gRPC service configuration via the `cluster_names` field in `ApiConfigSource` is deprecated. Use `grpc_services` instead. Prior to 1.7, a warning is logged. * Redis health checker configuration via the `redis_health_check` field in `HealthCheck` is deprecated. Use `custom_health_check` with name `envoy.health_checkers.redis` instead. Prior to 1.7, `redis_health_check` can be used, but warning is logged. * `SAN` is replaced by `URI` in the `x-forwarded-client-cert` header. * The `endpoint` field in the http health check filter is deprecated in favor of the `headers` field where one can specify HeaderMatch objects to match on. * The `sni_domains` field in the filter chain match was deprecated/renamed to `server_names`. 1.6.0 (March 20, 2018) ====================== * 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. 1.5.0 (Dec 4, 2017) =================== * The outlier detection `ejections_total` stats counter has been deprecated and not replaced. Monitor the individual `ejections_detected_*` counters for the detectors of interest, or `ejections_enforced_total` for the total number of ejections that actually occurred. * The outlier detection `ejections_consecutive_5xx` stats counter has been deprecated in favour of `ejections_detected_consecutive_5xx` and `ejections_enforced_consecutive_5xx`. * The outlier detection `ejections_success_rate` stats counter has been deprecated in favour of `ejections_detected_success_rate` and `ejections_enforced_success_rate`. 1.4.0 (Aug 24, 2017) ==================== * Config option `statsd_local_udp_port` has been deprecated and has been replaced with `statsd_udp_ip_address`. * `HttpFilterConfigFactory` filter API has been deprecated in favor of `NamedHttpFilterConfigFactory`. * Config option `http_codec_options` has been deprecated and has been replaced with `http2_settings`. * The following log macros have been deprecated: `log_trace`, `log_debug`, `conn_log`, `conn_log_info`, `conn_log_debug`, `conn_log_trace`, `stream_log`, `stream_log_info`, `stream_log_debug`, `stream_log_trace`. For replacements, please see `logger.h `_. * The connectionId() and ssl() callbacks of StreamFilterCallbacks have been deprecated and replaced with a more general connection() callback, which, when not returning a nullptr, can be used to get the connection id and SSL connection from the returned Connection object pointer. * The protobuf stub gRPC support via `Grpc::RpcChannelImpl` is now replaced with `Grpc::AsyncClientImpl`. This no longer uses `protoc` generated stubs but instead utilizes C++ template generation of the RPC stubs. `Grpc::AsyncClientImpl` supports streaming, in addition to the previous unary, RPCs. * The direction of network and HTTP filters in the configuration will be ignored from 1.4.0 and later removed from the configuration in the v2 APIs. Filter direction is now implied at the C++ type level. The `type()` methods on the `NamedNetworkFilterConfigFactory` and `NamedHttpFilterConfigFactory` interfaces have been removed to reflect this.