Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

config: flipping deprecated configs fatal by default #9636

Merged
merged 1 commit into from
Jan 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions api/envoy/api/v2/cluster.proto
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";

import "envoy/annotations/deprecation.proto";
import "udpa/annotations/migrate.proto";
import "validate/validate.proto";

Expand Down Expand Up @@ -90,7 +91,7 @@ message Cluster {
//
// **This load balancing policy is deprecated**. Use CLUSTER_PROVIDED instead.
//
ORIGINAL_DST_LB = 4 [deprecated = true];
ORIGINAL_DST_LB = 4 [deprecated = true, (envoy.annotations.disallowed_by_default_enum) = true];

// Refer to the :ref:`Maglev load balancing policy<arch_overview_load_balancing_types_maglev>`
// for an explanation.
Expand Down Expand Up @@ -590,7 +591,8 @@ message Cluster {
//
// **This field is deprecated**. Use `transport_socket` with name `tls` instead. If both are
// set, `transport_socket` takes priority.
auth.UpstreamTlsContext tls_context = 11 [deprecated = true];
auth.UpstreamTlsContext tls_context = 11
[deprecated = true, (envoy.annotations.disallowed_by_default) = true];

// HTTP protocol options that are applied only to upstream HTTP connections.
// These options apply to all HTTP versions.
Expand All @@ -615,7 +617,8 @@ message Cluster {
// for upstream connections. The key should match the extension filter name, such as
// "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
// specific options.
map<string, google.protobuf.Struct> extension_protocol_options = 35 [deprecated = true];
map<string, google.protobuf.Struct> extension_protocol_options = 35
[deprecated = true, (envoy.annotations.disallowed_by_default) = true];

// The extension_protocol_options field is used to provide extension-specific protocol options
// for upstream connections. The key should match the extension filter name, such as
Expand Down
3 changes: 2 additions & 1 deletion api/envoy/api/v2/core/health_check.proto
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";

import "envoy/annotations/deprecation.proto";
import "udpa/annotations/migrate.proto";
import "validate/validate.proto";

Expand Down Expand Up @@ -107,7 +108,7 @@ message HealthCheck {
// If set, health checks will be made using http/2.
// Deprecated, use :ref:`codec_client_type
// <envoy_api_field_core.HealthCheck.HttpHealthCheck.codec_client_type>` instead.
bool use_http2 = 7 [deprecated = true];
bool use_http2 = 7 [deprecated = true, (envoy.annotations.disallowed_by_default) = true];

// Specifies a list of HTTP response statuses considered healthy. If provided, replaces default
// 200-only policy - 200 must be included explicitly as needed. Ranges follow half-open
Expand Down
29 changes: 22 additions & 7 deletions api/envoy/api/v2/route/route_components.proto
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,11 @@ message RouteMatch {
// .. attention::
// This field has been deprecated in favor of `safe_regex` as it is not safe for use with
// untrusted input in all cases.
string regex = 3 [deprecated = true, (validate.rules).string = {max_bytes: 1024}];
string regex = 3 [
deprecated = true,
(validate.rules).string = {max_bytes: 1024},
(envoy.annotations.disallowed_by_default) = true
];

// If specified, the route is a regular expression rule meaning that the
// regex must match the *:path* header once the query string is removed. The entire path
Expand Down Expand Up @@ -457,7 +461,8 @@ message CorsPolicy {
//
// .. attention::
// This field has been deprecated in favor of `allow_origin_string_match`.
repeated string allow_origin = 1 [deprecated = true];
repeated string allow_origin = 1
[deprecated = true, (envoy.annotations.disallowed_by_default) = true];

// Specifies regex patterns that match allowed origins.
//
Expand Down Expand Up @@ -1177,7 +1182,11 @@ message VirtualCluster {
// .. attention::
// This field has been deprecated in favor of `headers` as it is not safe for use with
// untrusted input in all cases.
string pattern = 1 [deprecated = true, (validate.rules).string = {max_bytes: 1024}];
string pattern = 1 [
deprecated = true,
(validate.rules).string = {max_bytes: 1024},
(envoy.annotations.disallowed_by_default) = true
];

// Specifies a list of header matchers to use for matching requests. Each specified header must
// match. The pseudo-headers `:path` and `:method` can be used to match the request path and
Expand All @@ -1194,7 +1203,8 @@ message VirtualCluster {
//
// .. attention::
// This field has been deprecated in favor of `headers`.
core.RequestMethod method = 3 [deprecated = true];
core.RequestMethod method = 3
[deprecated = true, (envoy.annotations.disallowed_by_default) = true];
}

// Global rate limiting :ref:`architecture overview <arch_overview_global_rate_limit>`.
Expand Down Expand Up @@ -1382,7 +1392,11 @@ message HeaderMatcher {
// .. attention::
// This field has been deprecated in favor of `safe_regex_match` as it is not safe for use
// with untrusted input in all cases.
string regex_match = 5 [deprecated = true, (validate.rules).string = {max_bytes: 1024}];
string regex_match = 5 [
deprecated = true,
(validate.rules).string = {max_bytes: 1024},
(envoy.annotations.disallowed_by_default) = true
];

// If specified, this regex string is a regular expression rule which implies the entire request
// header value must match the regex. The rule will not match if only a subsequence of the
Expand Down Expand Up @@ -1446,7 +1460,7 @@ message QueryParameterMatcher {
//
// ..attention::
// This field is deprecated. Use an `exact` match inside the `string_match` field.
string value = 3 [deprecated = true];
string value = 3 [deprecated = true, (envoy.annotations.disallowed_by_default) = true];

// Specifies whether the query parameter value is a regular expression.
// Defaults to false. The entire query parameter value (i.e., the part to
Expand All @@ -1455,7 +1469,8 @@ message QueryParameterMatcher {
//
// ..attention::
// This field is deprecated. Use a `safe_regex` match inside the `string_match` field.
google.protobuf.BoolValue regex = 4 [deprecated = true];
google.protobuf.BoolValue regex = 4
[deprecated = true, (envoy.annotations.disallowed_by_default) = true];

oneof query_parameter_match_specifier {
// Specifies whether a query parameter value should match against a string.
Expand Down
1 change: 1 addition & 0 deletions api/envoy/config/cluster/v3alpha/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ licenses(["notice"]) # Apache 2

api_proto_package(
deps = [
"//envoy/annotations:pkg",
"//envoy/api/v2:pkg",
"//envoy/api/v2/cluster:pkg",
"//envoy/config/core/v3alpha:pkg",
Expand Down
1 change: 1 addition & 0 deletions api/envoy/config/cluster/v3alpha/cluster.proto
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import "google/protobuf/wrappers.proto";

import "udpa/annotations/versioning.proto";

import "envoy/annotations/deprecation.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.config.cluster.v3alpha";
Expand Down
1 change: 1 addition & 0 deletions api/envoy/config/core/v3alpha/health_check.proto
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import "google/protobuf/wrappers.proto";

import "udpa/annotations/versioning.proto";

import "envoy/annotations/deprecation.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.config.core.v3alpha";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ licenses(["notice"]) # Apache 2

api_proto_package(
deps = [
"//envoy/annotations:pkg",
"//envoy/api/v2:pkg",
"//envoy/api/v2/core:pkg",
"//envoy/config/filter/accesslog/v2:pkg",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";

import "envoy/annotations/deprecation.proto";
import "udpa/annotations/migrate.proto";
import "validate/validate.proto";

Expand Down Expand Up @@ -104,8 +105,11 @@ message HttpConnectionManager {
//
// .. attention::
// This field has been deprecated in favor of `traffic_direction`.
OperationName operation_name = 1
[deprecated = true, (validate.rules).enum = {defined_only: true}];
OperationName operation_name = 1 [
deprecated = true,
(validate.rules).enum = {defined_only: true},
(envoy.annotations.disallowed_by_default) = true
];

// A list of header names used to create tags for the active span. The header name is used to
// populate the tag name, and the header value is used to populate the tag value. The tag is
Expand Down Expand Up @@ -293,7 +297,8 @@ message HttpConnectionManager {
// This field is deprecated. Use :ref:`idle_timeout
// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.common_http_protocol_options>`
// instead.
google.protobuf.Duration idle_timeout = 11 [deprecated = true];
google.protobuf.Duration idle_timeout = 11
[deprecated = true, (envoy.annotations.disallowed_by_default) = true];

// The stream idle timeout for connections managed by the connection manager.
// If not specified, this defaults to 5 minutes. The default value was selected
Expand Down
1 change: 1 addition & 0 deletions api/envoy/config/trace/v2/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ licenses(["notice"]) # Apache 2

api_proto_package(
deps = [
"//envoy/annotations:pkg",
"//envoy/api/v2/core:pkg",
"@opencensus_proto//opencensus/proto/trace/v1:trace_config_proto",
],
Expand Down
3 changes: 2 additions & 1 deletion api/envoy/config/trace/v2/trace.proto
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import "google/protobuf/wrappers.proto";

import "opencensus/proto/trace/v1/trace_config.proto";

import "envoy/annotations/deprecation.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.config.trace.v2";
Expand Down Expand Up @@ -81,7 +82,7 @@ message ZipkinConfig {
// Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when
// user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field,
// since in Zipkin realm this v1 version is considered to be not preferable anymore.]
HTTP_JSON_V1 = 0 [deprecated = true];
HTTP_JSON_V1 = 0 [deprecated = true, (envoy.annotations.disallowed_by_default_enum) = true];

// Zipkin API v2, JSON over HTTP.
HTTP_JSON = 1;
Expand Down
1 change: 1 addition & 0 deletions api/envoy/config/trace/v3alpha/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ licenses(["notice"]) # Apache 2

api_proto_package(
deps = [
"//envoy/annotations:pkg",
"//envoy/config/core/v3alpha:pkg",
"//envoy/config/trace/v2:pkg",
"//envoy/config/trace/v2alpha:pkg",
Expand Down
4 changes: 3 additions & 1 deletion api/envoy/config/trace/v3alpha/trace.proto
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import "google/protobuf/wrappers.proto";
import "opencensus/proto/trace/v1/trace_config.proto";
import "udpa/annotations/versioning.proto";

import "envoy/annotations/deprecation.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.config.trace.v3alpha";
Expand Down Expand Up @@ -94,7 +95,8 @@ message ZipkinConfig {
// Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when
// user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field,
// since in Zipkin realm this v1 version is considered to be not preferable anymore.]
DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE = 0 [deprecated = true];
DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE = 0
[deprecated = true, (envoy.annotations.disallowed_by_default_enum) = true];

// Zipkin API v2, JSON over HTTP.
HTTP_JSON = 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ licenses(["notice"]) # Apache 2

api_proto_package(
deps = [
"//envoy/annotations:pkg",
"//envoy/config/accesslog/v3alpha:pkg",
"//envoy/config/core/v3alpha:pkg",
"//envoy/config/filter/network/http_connection_manager/v2:pkg",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import "google/protobuf/wrappers.proto";

import "udpa/annotations/versioning.proto";

import "envoy/annotations/deprecation.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3alpha";
Expand Down
5 changes: 4 additions & 1 deletion api/envoy/type/matcher/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,8 @@ load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package")
licenses(["notice"]) # Apache 2

api_proto_package(
deps = ["//envoy/type:pkg"],
deps = [
"//envoy/annotations:pkg",
"//envoy/type:pkg",
],
)
7 changes: 6 additions & 1 deletion api/envoy/type/matcher/string.proto
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package envoy.type.matcher;

import "envoy/type/matcher/regex.proto";

import "envoy/annotations/deprecation.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.type.matcher";
Expand Down Expand Up @@ -54,7 +55,11 @@ message StringMatcher {
// .. attention::
// This field has been deprecated in favor of `safe_regex` as it is not safe for use with
// untrusted input in all cases.
string regex = 4 [deprecated = true, (validate.rules).string = {max_bytes: 1024}];
string regex = 4 [
deprecated = true,
(validate.rules).string = {max_bytes: 1024},
(envoy.annotations.disallowed_by_default) = true
];

// The input string must match the regular expression specified here.
RegexMatcher safe_regex = 5 [(validate.rules).message = {required: true}];
Expand Down
1 change: 1 addition & 0 deletions api/envoy/type/matcher/v3alpha/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ licenses(["notice"]) # Apache 2

api_proto_package(
deps = [
"//envoy/annotations:pkg",
"//envoy/type/matcher:pkg",
"//envoy/type/v3alpha:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
Expand Down
1 change: 1 addition & 0 deletions api/envoy/type/matcher/v3alpha/string.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import "envoy/type/matcher/v3alpha/regex.proto";

import "udpa/annotations/versioning.proto";

import "envoy/annotations/deprecation.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.type.matcher.v3alpha";
Expand Down
9 changes: 6 additions & 3 deletions generated_api_shadow/envoy/api/v2/cluster.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion generated_api_shadow/envoy/api/v2/core/health_check.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading