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.
- Use of
enabledinCorsPolicy, found in route.proto. Set thefilter_enabledfield instead. - Use of google.protobuf.Struct for extension opaque configs is deprecated. Use google.protobuf.Any instead or pack google.protobuf.Struct in google.protobuf.Any.
- 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_orderin [lds.proto] (https://github.com/envoyproxy/envoy/blob/master/api/envoy/api/v2/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_orderin [http_connection_manager.proto] (https://github.com/envoyproxy/envoy/blob/master/api/envoy/config/filter/network/http_connection_manager/v2/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_serviceconfiguration in the bootstrap configuration is deprecated. - Use of
runtime_keyinRequestMirrorPolicy, found in route.proto is deprecated. Set theruntime_fractionfield instead. - Use of buffer filter
max_request_timeis deprecated in favor of the request timeout found in HttpConnectionManager
- Use of the v1 API (including
*.deprecated_v1fields 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_protoboolean 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_websocketandwebsocket_configin route.proto is deprecated. Please use the newupgrade_configsin the HttpConnectionManager instead. - Use of the integer
percentfield in FaultDelay and in FaultAbort is deprecated in favor of the newFractionalPercentbasedpercentagefield. - Setting hosts via
hostsfield inClusteris deprecated. Useload_assignmentinstead. - Use of
response_headers_to_*andrequest_headers_to_addare deprecated at theRouteActionlevel. Please use the configuration options at theRoutelevel. - Use of
runtimeinRouteMatch, found in route.proto. Set theruntime_fractionfield instead. - Use of the string
userfield inAuthenticatedin rbac.proto is deprecated in favor of the newStringMatcherbasedprincipal_namefield.
- 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_namefield is deprecated. Usegrpc_serviceinstead. - gRPC service configuration via the
cluster_namesfield inApiConfigSourceis deprecated. Usegrpc_servicesinstead. Prior to 1.7, a warning is logged. - Redis health checker configuration via the
redis_health_checkfield inHealthCheckis deprecated. Usecustom_health_checkwith nameenvoy.health_checkers.redisinstead. Prior to 1.7,redis_health_checkcan be used, but warning is logged. SANis replaced byURIin thex-forwarded-client-certheader.- The
endpointfield in the http health check filter is deprecated in favor of theheadersfield where one can specify HeaderMatch objects to match on. - The
sni_domainsfield in the filter chain match was deprecated/renamed toserver_names.
- 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.
valueandregexfields in theHeaderMatchermessage is deprecated. Use theexact_matchorregex_matchoneof instead.
- The outlier detection
ejections_totalstats counter has been deprecated and not replaced. Monitor the individualejections_detected_*counters for the detectors of interest, orejections_enforced_totalfor the total number of ejections that actually occurred. - The outlier detection
ejections_consecutive_5xxstats counter has been deprecated in favour ofejections_detected_consecutive_5xxandejections_enforced_consecutive_5xx. - The outlier detection
ejections_success_ratestats counter has been deprecated in favour ofejections_detected_success_rateandejections_enforced_success_rate.
- Config option
statsd_local_udp_porthas been deprecated and has been replaced withstatsd_udp_ip_address. HttpFilterConfigFactoryfilter API has been deprecated in favor ofNamedHttpFilterConfigFactory.- Config option
http_codec_optionshas been deprecated and has been replaced withhttp2_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::RpcChannelImplis now replaced withGrpc::AsyncClientImpl. This no longer usesprotocgenerated stubs but instead utilizes C++ template generation of the RPC stubs.Grpc::AsyncClientImplsupports 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 theNamedNetworkFilterConfigFactoryandNamedHttpFilterConfigFactoryinterfaces have been removed to reflect this.