Skip to content

Commit 27b1641

Browse files
authored
xds: import envoy (#8145)
1 parent fcaf9a9 commit 27b1641

File tree

34 files changed

+810
-154
lines changed

34 files changed

+810
-154
lines changed

xds/third_party/envoy/import.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
set -e
1919
BRANCH=main
2020
# import VERSION from one of the google internal CLs
21-
VERSION=ac9a2637336decdcc52c24add5e8fc39edebb962
21+
VERSION=8b9b87702885beb324dadb349cbcb06d037c956e
2222
GIT_REPO="https://github.com/envoyproxy/envoy.git"
2323
GIT_BASE_DIR=envoy
2424
SOURCE_PROTO_BASE_DIR=envoy/api
@@ -84,6 +84,7 @@ envoy/config/core/v3/protocol.proto
8484
envoy/config/core/v3/proxy_protocol.proto
8585
envoy/config/core/v3/socket_option.proto
8686
envoy/config/core/v3/substitution_format_string.proto
87+
envoy/config/core/v3/udp_socket_config.proto
8788
envoy/config/endpoint/v3/endpoint.proto
8889
envoy/config/endpoint/v3/endpoint_components.proto
8990
envoy/config/endpoint/v3/load_report.proto
@@ -96,10 +97,12 @@ envoy/config/listener/v2/api_listener.proto
9697
envoy/config/listener/v3/api_listener.proto
9798
envoy/config/listener/v3/listener.proto
9899
envoy/config/listener/v3/listener_components.proto
100+
envoy/config/listener/v3/quic_config.proto
99101
envoy/config/listener/v3/udp_listener_config.proto
100102
envoy/config/metrics/v3/stats.proto
101103
envoy/config/overload/v3/overload.proto
102104
envoy/config/rbac/v2/rbac.proto
105+
envoy/config/rbac/v3/rbac.proto
103106
envoy/config/route/v3/route.proto
104107
envoy/config/route/v3/route_components.proto
105108
envoy/config/route/v3/scoped_route.proto
@@ -136,6 +139,7 @@ envoy/service/load_stats/v2/lrs.proto
136139
envoy/service/load_stats/v3/lrs.proto
137140
envoy/service/status/v3/csds.proto
138141
envoy/type/http.proto
142+
envoy/type/http/v3/path_transformation.proto
139143
envoy/type/matcher/metadata.proto
140144
envoy/type/matcher/number.proto
141145
envoy/type/matcher/path.proto
@@ -144,6 +148,7 @@ envoy/type/matcher/string.proto
144148
envoy/type/matcher/v3/metadata.proto
145149
envoy/type/matcher/v3/node.proto
146150
envoy/type/matcher/v3/number.proto
151+
envoy/type/matcher/v3/path.proto
147152
envoy/type/matcher/v3/regex.proto
148153
envoy/type/matcher/v3/string.proto
149154
envoy/type/matcher/v3/struct.proto

xds/third_party/envoy/src/main/proto/envoy/annotations/deprecation.proto

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,29 @@ package envoy.annotations;
55
import "google/protobuf/descriptor.proto";
66

77
// [#protodoc-title: Deprecation]
8-
// Allows tagging proto fields as fatal by default. One Envoy release after
9-
// deprecation, deprecated fields will be disallowed by default, a state which
10-
// is reversible with :ref:`runtime overrides <config_runtime_deprecation>`.
8+
// Adds annotations for deprecated fields and enums to allow tagging proto
9+
// fields as fatal by default and the minor version on which the field was
10+
// deprecated. One Envoy release after deprecation, deprecated fields will be
11+
// disallowed by default, a state which is reversible with
12+
// :ref:`runtime overrides <config_runtime_deprecation>`.
1113

1214
// Magic number in this file derived from top 28bit of SHA256 digest of
13-
// "envoy.annotation.disallowed_by_default"
15+
// "envoy.annotation.disallowed_by_default" and "envoy.annotation.deprecated_at_minor_version"
1416
extend google.protobuf.FieldOptions {
1517
bool disallowed_by_default = 189503207;
18+
19+
// The API major and minor version on which the field was deprecated
20+
// (e.g., "3.5" for major version 3 and minor version 5).
21+
string deprecated_at_minor_version = 157299826;
1622
}
1723

1824
// Magic number in this file derived from top 28bit of SHA256 digest of
19-
// "envoy.annotation.disallowed_by_default_enum"
25+
// "envoy.annotation.disallowed_by_default_enum" and
26+
// "envoy.annotation.deprecated_at_minor_version_eum"
2027
extend google.protobuf.EnumValueOptions {
2128
bool disallowed_by_default_enum = 70100853;
29+
30+
// The API major and minor version on which the enum value was deprecated
31+
// (e.g., "3.5" for major version 3 and minor version 5).
32+
string deprecated_at_minor_version_enum = 181198657;
2233
}

xds/third_party/envoy/src/main/proto/envoy/api/v2/core/address.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,6 @@ message CidrRange {
129129
// IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
130130
string address_prefix = 1 [(validate.rules).string = {min_bytes: 1}];
131131

132-
// Length of prefix, e.g. 0, 32.
132+
// Length of prefix, e.g. 0, 32. Defaults to 0 when unset.
133133
google.protobuf.UInt32Value prefix_len = 2 [(validate.rules).uint32 = {lte: 128}];
134134
}

xds/third_party/envoy/src/main/proto/envoy/api/v2/listener.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,8 @@ message Listener {
195195
google.protobuf.UInt32Value tcp_fast_open_queue_length = 12;
196196

197197
// Specifies the intended direction of the traffic relative to the local Envoy.
198+
// This property is required on Windows for listeners using the original destination filter,
199+
// see :ref:`Original Destination <config_listener_filters_original_dst>`.
198200
core.TrafficDirection traffic_direction = 16;
199201

200202
// If the protocol in the listener socket address in :ref:`protocol

xds/third_party/envoy/src/main/proto/envoy/config/accesslog/v3/accesslog.proto

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,16 @@ message AccessLog {
2929

3030
reserved "config";
3131

32-
// The name of the access log implementation to instantiate. The name must
33-
// match a statically registered access log. Current built-in loggers include:
34-
//
35-
// #. "envoy.access_loggers.file"
36-
// #. "envoy.access_loggers.http_grpc"
37-
// #. "envoy.access_loggers.tcp_grpc"
32+
// The name of the access log extension to instantiate.
33+
// The name must match one of the compiled in loggers.
34+
// See the :ref:`extensions listed in typed_config below <extension_category_envoy.access_loggers>` for the default list of available loggers.
3835
string name = 1;
3936

4037
// Filter which is used to determine if the access log needs to be written.
4138
AccessLogFilter filter = 2;
4239

43-
// Custom configuration that depends on the access log being instantiated.
44-
// Built-in configurations include:
45-
//
46-
// #. "envoy.access_loggers.file": :ref:`FileAccessLog
47-
// <envoy_api_msg_extensions.access_loggers.file.v3.FileAccessLog>`
48-
// #. "envoy.access_loggers.http_grpc": :ref:`HttpGrpcAccessLogConfig
49-
// <envoy_api_msg_extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig>`
50-
// #. "envoy.access_loggers.tcp_grpc": :ref:`TcpGrpcAccessLogConfig
51-
// <envoy_api_msg_extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig>`
40+
// Custom configuration that must be set according to the access logger extension being instantiated.
41+
// [#extension-category: envoy.access_loggers]
5242
oneof config_type {
5343
google.protobuf.Any typed_config = 4;
5444
}
@@ -254,6 +244,8 @@ message ResponseFlagFilter {
254244
in: "RFCF"
255245
in: "NFCF"
256246
in: "DT"
247+
in: "UPE"
248+
in: "NC"
257249
}
258250
}
259251
}];

xds/third_party/envoy/src/main/proto/envoy/config/bootstrap/v3/bootstrap.proto

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ syntax = "proto3";
22

33
package envoy.config.bootstrap.v3;
44

5+
import "envoy/config/accesslog/v3/accesslog.proto";
56
import "envoy/config/cluster/v3/cluster.proto";
67
import "envoy/config/core/v3/address.proto";
78
import "envoy/config/core/v3/base.proto";
@@ -20,6 +21,7 @@ import "google/protobuf/duration.proto";
2021
import "google/protobuf/struct.proto";
2122
import "google/protobuf/wrappers.proto";
2223

24+
import "envoy/annotations/deprecation.proto";
2325
import "udpa/annotations/migrate.proto";
2426
import "udpa/annotations/security.proto";
2527
import "udpa/annotations/status.proto";
@@ -186,18 +188,21 @@ message Bootstrap {
186188
// Optional watchdog configuration.
187189
// This is for a single watchdog configuration for the entire system.
188190
// Deprecated in favor of *watchdogs* which has finer granularity.
189-
Watchdog watchdog = 8 [deprecated = true];
191+
Watchdog watchdog = 8
192+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
190193

191194
// Optional watchdogs configuration.
192195
// This is used for specifying different watchdogs for the different subsystems.
196+
// [#extension-category: envoy.guarddog_actions]
193197
Watchdogs watchdogs = 27;
194198

195199
// Configuration for an external tracing provider.
196200
//
197201
// .. attention::
198202
// This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
199203
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`.
200-
trace.v3.Tracing tracing = 9 [deprecated = true];
204+
trace.v3.Tracing tracing = 9
205+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
201206

202207
// Configuration for the runtime configuration provider. If not
203208
// specified, a “null” provider will be used which will result in all defaults
@@ -249,6 +254,7 @@ message Bootstrap {
249254

250255
// Specifies optional bootstrap extensions to be instantiated at startup time.
251256
// Each item contains extension specific configuration.
257+
// [#extension-category: envoy.bootstrap]
252258
repeated core.v3.TypedExtensionConfig bootstrap_extensions = 21;
253259

254260
// Specifies optional extensions instantiated at startup time and
@@ -293,13 +299,20 @@ message Bootstrap {
293299

294300
// Administration interface :ref:`operations documentation
295301
// <operations_admin_interface>`.
302+
// [#next-free-field: 6]
296303
message Admin {
297304
option (udpa.annotations.versioning).previous_message_type = "envoy.config.bootstrap.v2.Admin";
298305

306+
// Configuration for :ref:`access logs <arch_overview_access_logs>`
307+
// emitted by the administration server.
308+
repeated accesslog.v3.AccessLog access_log = 5;
309+
299310
// The path to write the access log for the administration server. If no
300311
// access log is desired specify ‘/dev/null’. This is only required if
301312
// :ref:`address <envoy_api_field_config.bootstrap.v3.Admin.address>` is set.
302-
string access_log_path = 1;
313+
// Deprecated in favor of *access_log* which offers more options.
314+
string access_log_path = 1
315+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
303316

304317
// The cpu profiler output path for the administration server. If no profile
305318
// path is specified, the default is ‘/var/log/envoy/envoy.prof’.

xds/third_party/envoy/src/main/proto/envoy/config/cluster/v3/cluster.proto

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import "google/protobuf/wrappers.proto";
2121

2222
import "xds/core/v3/collection_entry.proto";
2323

24+
import "envoy/annotations/deprecation.proto";
25+
import "udpa/annotations/migrate.proto";
2426
import "udpa/annotations/security.proto";
2527
import "udpa/annotations/status.proto";
2628
import "udpa/annotations/versioning.proto";
@@ -158,6 +160,7 @@ message Cluster {
158160
google.protobuf.Struct match = 2;
159161

160162
// The configuration of the transport socket.
163+
// [#extension-category: envoy.transport_sockets.upstream]
161164
core.v3.TransportSocket transport_socket = 3;
162165
}
163166

@@ -171,6 +174,7 @@ message Cluster {
171174

172175
// Cluster specific configuration which depends on the cluster being instantiated.
173176
// See the supported cluster for further documentation.
177+
// [#extension-category: envoy.clusters]
174178
google.protobuf.Any typed_config = 2;
175179
}
176180

@@ -681,11 +685,16 @@ message Cluster {
681685
// Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
682686
string name = 1 [(validate.rules).string = {min_len: 1}];
683687

684-
// An optional alternative to the cluster name to be used while emitting stats.
685-
// Any ``:`` in the name will be converted to ``_`` when emitting statistics. This should not be
686-
// confused with :ref:`Router Filter Header
687-
// <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
688-
string alt_stat_name = 28;
688+
// An optional alternative to the cluster name to be used for observability. This name is used
689+
// emitting stats for the cluster and access logging the cluster name. This will appear as
690+
// additional information in configuration dumps of a cluster's current status as
691+
// :ref:`observability_name <envoy_v3_api_field_admin.v3.ClusterStatus.observability_name>`
692+
// and as an additional tag "upstream_cluster.name" while tracing. Note: access logging using
693+
// this field is presently enabled with runtime feature
694+
// `envoy.reloadable_features.use_observable_cluster_name`. Any ``:`` in the name will be
695+
// converted to ``_`` when emitting statistics. This should not be confused with :ref:`Router
696+
// Filter Header <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
697+
string alt_stat_name = 28 [(udpa.annotations.field_migrate).rename = "observability_name"];
689698

690699
oneof cluster_discovery_type {
691700
// The :ref:`service discovery type <arch_overview_service_discovery_types>`
@@ -747,10 +756,11 @@ message Cluster {
747756
// in the :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
748757
// upstream_http_protocol_options can be set via the cluster's
749758
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
750-
// See ref:`upstream_http_protocol_options
759+
// See :ref:`upstream_http_protocol_options
751760
// <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
752761
// for example usage.
753-
core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true];
762+
core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46
763+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
754764

755765
// Additional options when handling HTTP requests upstream. These options will be applicable to
756766
// both HTTP1 and HTTP2 requests.
@@ -759,20 +769,22 @@ message Cluster {
759769
// in the :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
760770
// common_http_protocol_options can be set via the cluster's
761771
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
762-
// See ref:`upstream_http_protocol_options
772+
// See :ref:`upstream_http_protocol_options
763773
// <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
764774
// for example usage.
765-
core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true];
775+
core.v3.HttpProtocolOptions common_http_protocol_options = 29
776+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
766777

767778
// Additional options when handling HTTP1 requests.
768779
// This has been deprecated in favor of http_protocol_options fields in the in the
769780
// :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
770781
// http_protocol_options can be set via the cluster's
771782
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
772-
// See ref:`upstream_http_protocol_options
783+
// See :ref:`upstream_http_protocol_options
773784
// <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
774785
// for example usage.
775-
core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true];
786+
core.v3.Http1ProtocolOptions http_protocol_options = 13
787+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
776788

777789
// Even if default HTTP2 protocol options are desired, this field must be
778790
// set so that Envoy will assume that the upstream supports HTTP/2 when
@@ -784,11 +796,14 @@ message Cluster {
784796
// :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
785797
// message. http2_protocol_options can be set via the cluster's
786798
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
787-
// See ref:`upstream_http_protocol_options
799+
// See :ref:`upstream_http_protocol_options
788800
// <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
789801
// for example usage.
790-
core.v3.Http2ProtocolOptions http2_protocol_options = 14
791-
[deprecated = true, (udpa.annotations.security).configure_for_untrusted_upstream = true];
802+
core.v3.Http2ProtocolOptions http2_protocol_options = 14 [
803+
deprecated = true,
804+
(udpa.annotations.security).configure_for_untrusted_upstream = true,
805+
(envoy.annotations.deprecated_at_minor_version) = "3.0"
806+
];
792807

793808
// The extension_protocol_options field is used to provide extension-specific protocol options
794809
// for upstream connections. The key should match the extension filter name, such as
@@ -924,7 +939,8 @@ message Cluster {
924939
// <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
925940
// http_protocol_options can be set via the cluster's
926941
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
927-
ClusterProtocolSelection protocol_selection = 26 [deprecated = true];
942+
ClusterProtocolSelection protocol_selection = 26
943+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
928944

929945
// Optional options for upstream connections.
930946
UpstreamConnectionOptions upstream_connection_options = 30;
@@ -985,7 +1001,8 @@ message Cluster {
9851001
//
9861002
// This field has been deprecated in favor of `timeout_budgets`, part of
9871003
// :ref:`track_cluster_stats <envoy_api_field_config.cluster.v3.Cluster.track_cluster_stats>`.
988-
bool track_timeout_budgets = 47 [deprecated = true];
1004+
bool track_timeout_budgets = 47
1005+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
9891006

9901007
// Optional customization and configuration of upstream connection pool, and upstream type.
9911008
//
@@ -1004,6 +1021,7 @@ message Cluster {
10041021
// If users desire custom connection pool or upstream behavior, for example terminating
10051022
// CONNECT only if a custom filter indicates it is appropriate, the custom factories
10061023
// can be registered and configured here.
1024+
// [#extension-category: envoy.upstreams]
10071025
core.v3.TypedExtensionConfig upstream_config = 48;
10081026

10091027
// Configuration to track optional cluster stats.

xds/third_party/envoy/src/main/proto/envoy/config/cluster/v3/outlier_detection.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ message OutlierDetection {
151151
google.protobuf.UInt32Value failure_percentage_request_volume = 20;
152152

153153
// The maximum time that a host is ejected for. See :ref:`base_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>`
154-
// for more information.
155-
// Defaults to 300000ms or 300s.
154+
// for more information. If not specified, the default value (300000ms or 300s) or
155+
// :ref:`base_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>` value is applied, whatever is larger.
156156
google.protobuf.Duration max_ejection_time = 21 [(validate.rules).duration = {gt {}}];
157157
}

xds/third_party/envoy/src/main/proto/envoy/config/core/v3/address.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,6 @@ message CidrRange {
155155
// IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
156156
string address_prefix = 1 [(validate.rules).string = {min_len: 1}];
157157

158-
// Length of prefix, e.g. 0, 32.
158+
// Length of prefix, e.g. 0, 32. Defaults to 0 when unset.
159159
google.protobuf.UInt32Value prefix_len = 2 [(validate.rules).uint32 = {lte: 128}];
160160
}

0 commit comments

Comments
 (0)