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
enabled
inCorsPolicy
, found in route.proto. Set thefilter_enabled
field 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_order
in [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_order
in [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_service
configuration in the bootstrap configuration is deprecated. - Use of
runtime_key
inRequestMirrorPolicy
, found in route.proto is deprecated. Set theruntime_fraction
field instead. - Use of buffer filter
max_request_time
is deprecated in favor of the request timeout found in HttpConnectionManager
- 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
andwebsocket_config
in route.proto is deprecated. Please use the newupgrade_configs
in the HttpConnectionManager instead. - Use of the integer
percent
field in FaultDelay and in FaultAbort is deprecated in favor of the newFractionalPercent
basedpercentage
field. - Setting hosts via
hosts
field inCluster
is deprecated. Useload_assignment
instead. - Use of
response_headers_to_*
andrequest_headers_to_add
are deprecated at theRouteAction
level. Please use the configuration options at theRoute
level. - Use of
runtime
inRouteMatch
, found in route.proto. Set theruntime_fraction
field instead. - Use of the string
user
field inAuthenticated
in rbac.proto is deprecated in favor of the newStringMatcher
basedprincipal_name
field.
- 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. Usegrpc_service
instead. - gRPC service configuration via the
cluster_names
field inApiConfigSource
is deprecated. Usegrpc_services
instead. Prior to 1.7, a warning is logged. - Redis health checker configuration via the
redis_health_check
field inHealthCheck
is deprecated. Usecustom_health_check
with nameenvoy.health_checkers.redis
instead. Prior to 1.7,redis_health_check
can be used, but warning is logged. SAN
is replaced byURI
in thex-forwarded-client-cert
header.- The
endpoint
field in the http health check filter is deprecated in favor of theheaders
field where one can specify HeaderMatch objects to match on. - The
sni_domains
field 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.
value
andregex
fields in theHeaderMatcher
message is deprecated. Use theexact_match
orregex_match
oneof instead.
- The outlier detection
ejections_total
stats counter has been deprecated and not replaced. Monitor the individualejections_detected_*
counters for the detectors of interest, orejections_enforced_total
for the total number of ejections that actually occurred. - The outlier detection
ejections_consecutive_5xx
stats counter has been deprecated in favour ofejections_detected_consecutive_5xx
andejections_enforced_consecutive_5xx
. - The outlier detection
ejections_success_rate
stats counter has been deprecated in favour ofejections_detected_success_rate
andejections_enforced_success_rate
.
- Config option
statsd_local_udp_port
has been deprecated and has been replaced withstatsd_udp_ip_address
. HttpFilterConfigFactory
filter API has been deprecated in favor ofNamedHttpFilterConfigFactory
.- Config option
http_codec_options
has 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::RpcChannelImpl
is now replaced withGrpc::AsyncClientImpl
. This no longer usesprotoc
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 theNamedNetworkFilterConfigFactory
andNamedHttpFilterConfigFactory
interfaces have been removed to reflect this.