Skip to content

Commit c3ef1ab

Browse files
authored
xds: Envoy proto sync to (#12224)
1 parent 8f09b96 commit c3ef1ab

File tree

34 files changed

+998
-413
lines changed

34 files changed

+998
-413
lines changed

xds/third_party/envoy/import.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
set -e
1919
# import VERSION from the google internal copybara_version.txt for Envoy
20-
VERSION=0b90f64539c88dc3d2a6792dc714e8207bce0c08
20+
VERSION=1128a52d227efb8c798478d293fdc05e8075ebcd
2121
DOWNLOAD_URL="https://github.com/envoyproxy/envoy/archive/${VERSION}.tar.gz"
2222
DOWNLOAD_BASE_DIR="envoy-${VERSION}"
2323
SOURCE_PROTO_BASE_DIR="${DOWNLOAD_BASE_DIR}/api"
@@ -46,6 +46,7 @@ envoy/config/core/v3/http_uri.proto
4646
envoy/config/core/v3/protocol.proto
4747
envoy/config/core/v3/proxy_protocol.proto
4848
envoy/config/core/v3/resolver.proto
49+
envoy/config/core/v3/socket_cmsg_headers.proto
4950
envoy/config/core/v3/socket_option.proto
5051
envoy/config/core/v3/substitution_format_string.proto
5152
envoy/config/core/v3/udp_socket_config.proto
@@ -97,6 +98,7 @@ envoy/service/load_stats/v3/lrs.proto
9798
envoy/service/rate_limit_quota/v3/rlqs.proto
9899
envoy/service/status/v3/csds.proto
99100
envoy/type/http/v3/path_transformation.proto
101+
envoy/type/matcher/v3/address.proto
100102
envoy/type/matcher/v3/filter_state.proto
101103
envoy/type/matcher/v3/http_inputs.proto
102104
envoy/type/matcher/v3/metadata.proto

xds/third_party/envoy/src/main/proto/envoy/admin/v3/config_dump_shared.proto

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,14 @@ enum ClientResourceStatus {
3939

4040
// Client received this resource and replied with NACK.
4141
NACKED = 4;
42+
43+
// Client received an error from the control plane. The attached config
44+
// dump is the most recent accepted one. If no config is accepted yet,
45+
// the attached config dump will be empty.
46+
RECEIVED_ERROR = 5;
47+
48+
// Client timed out waiting for the resource from the control plane.
49+
TIMEOUT = 6;
4250
}
4351

4452
message UpdateFailureState {

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

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -152,35 +152,38 @@ message TraceableFilter {
152152
"envoy.config.filter.accesslog.v2.TraceableFilter";
153153
}
154154

155-
// Filters for random sampling of requests.
155+
// Filters requests based on runtime-configurable sampling rates.
156156
message RuntimeFilter {
157157
option (udpa.annotations.versioning).previous_message_type =
158158
"envoy.config.filter.accesslog.v2.RuntimeFilter";
159159

160-
// Runtime key to get an optional overridden numerator for use in the
161-
// ``percent_sampled`` field. If found in runtime, this value will replace the
162-
// default numerator.
160+
// Specifies a key used to look up a custom sampling rate from the runtime configuration. If a value is found for this
161+
// key, it will override the default sampling rate specified in ``percent_sampled``.
163162
string runtime_key = 1 [(validate.rules).string = {min_len: 1}];
164163

165-
// The default sampling percentage. If not specified, defaults to 0% with
166-
// denominator of 100.
164+
// Defines the default sampling percentage when no runtime override is present. If not specified, the default is
165+
// **0%** (with a denominator of 100).
167166
type.v3.FractionalPercent percent_sampled = 2;
168167

169-
// By default, sampling pivots on the header
170-
// :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` being
171-
// present. If :ref:`x-request-id<config_http_conn_man_headers_x-request-id>`
172-
// is present, the filter will consistently sample across multiple hosts based
173-
// on the runtime key value and the value extracted from
174-
// :ref:`x-request-id<config_http_conn_man_headers_x-request-id>`. If it is
175-
// missing, or ``use_independent_randomness`` is set to true, the filter will
176-
// randomly sample based on the runtime key value alone.
177-
// ``use_independent_randomness`` can be used for logging kill switches within
178-
// complex nested :ref:`AndFilter
179-
// <envoy_v3_api_msg_config.accesslog.v3.AndFilter>` and :ref:`OrFilter
180-
// <envoy_v3_api_msg_config.accesslog.v3.OrFilter>` blocks that are easier to
181-
// reason about from a probability perspective (i.e., setting to true will
182-
// cause the filter to behave like an independent random variable when
183-
// composed within logical operator filters).
168+
// Controls how sampling decisions are made.
169+
//
170+
// - Default behavior (``false``):
171+
//
172+
// * Uses the :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` as a consistent sampling pivot.
173+
// * When :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` is present, sampling will be consistent
174+
// across multiple hosts based on both the ``runtime_key`` and
175+
// :ref:`x-request-id<config_http_conn_man_headers_x-request-id>`.
176+
// * Useful for tracking related requests across a distributed system.
177+
//
178+
// - When set to ``true`` or :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` is missing:
179+
//
180+
// * Sampling decisions are made randomly based only on the ``runtime_key``.
181+
// * Useful in complex filter configurations (like nested
182+
// :ref:`AndFilter<envoy_v3_api_msg_config.accesslog.v3.AndFilter>`/
183+
// :ref:`OrFilter<envoy_v3_api_msg_config.accesslog.v3.OrFilter>` blocks) where independent probability
184+
// calculations are desired.
185+
// * Can be used to implement logging kill switches with predictable probability distributions.
186+
//
184187
bool use_independent_randomness = 3;
185188
}
186189

@@ -257,6 +260,7 @@ message ResponseFlagFilter {
257260
in: "DF"
258261
in: "DO"
259262
in: "DR"
263+
in: "UDO"
260264
}
261265
}
262266
}];

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,7 @@ message Bootstrap {
5757
// If a network based configuration source is specified for :ref:`cds_config
5858
// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.DynamicResources.cds_config>`, it's necessary
5959
// to have some initial cluster definitions available to allow Envoy to know
60-
// how to speak to the management server. These cluster definitions may not
61-
// use :ref:`EDS <arch_overview_dynamic_config_eds>` (i.e. they should be static
62-
// IP or DNS-based).
60+
// how to speak to the management server.
6361
repeated cluster.v3.Cluster clusters = 2;
6462

6563
// These static secrets can be used by :ref:`SdsSecretConfig

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

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -942,6 +942,7 @@ message Cluster {
942942
// "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
943943
// specific options.
944944
// [#next-major-version: make this a list of typed extensions.]
945+
// [#extension-category: envoy.upstream_options]
945946
map<string, google.protobuf.Any> typed_extension_protocol_options = 36;
946947

947948
// If the DNS refresh rate is specified and the cluster type is either
@@ -953,8 +954,15 @@ message Cluster {
953954
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
954955
// and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
955956
// this setting is ignored.
956-
google.protobuf.Duration dns_refresh_rate = 16
957-
[(validate.rules).duration = {gt {nanos: 1000000}}];
957+
// This field is deprecated in favor of using the :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>`
958+
// extension point and configuring it with :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`.
959+
// If :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>` is configured with
960+
// :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`, this field will be ignored.
961+
google.protobuf.Duration dns_refresh_rate = 16 [
962+
deprecated = true,
963+
(validate.rules).duration = {gt {nanos: 1000000}},
964+
(envoy.annotations.deprecated_at_minor_version) = "3.0"
965+
];
958966

959967
// DNS jitter can be optionally specified if the cluster type is either
960968
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
@@ -965,7 +973,15 @@ message Cluster {
965973
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
966974
// and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
967975
// this setting is ignored.
968-
google.protobuf.Duration dns_jitter = 58;
976+
// This field is deprecated in favor of using the :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>`
977+
// extension point and configuring it with :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`.
978+
// If :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>` is configured with
979+
// :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`, this field will be ignored.
980+
google.protobuf.Duration dns_jitter = 58 [
981+
deprecated = true,
982+
(validate.rules).duration = {gte {}},
983+
(envoy.annotations.deprecated_at_minor_version) = "3.0"
984+
];
969985

970986
// If the DNS failure refresh rate is specified and the cluster type is either
971987
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
@@ -975,16 +991,31 @@ message Cluster {
975991
// other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
976992
// :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
977993
// ignored.
978-
RefreshRate dns_failure_refresh_rate = 44;
994+
// This field is deprecated in favor of using the :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>`
995+
// extension point and configuring it with :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`.
996+
// If :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>` is configured with
997+
// :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`, this field will be ignored.
998+
RefreshRate dns_failure_refresh_rate = 44
999+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
9791000

9801001
// Optional configuration for setting cluster's DNS refresh rate. If the value is set to true,
9811002
// cluster's DNS refresh rate will be set to resource record's TTL which comes from DNS
9821003
// resolution.
983-
bool respect_dns_ttl = 39;
1004+
// This field is deprecated in favor of using the :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>`
1005+
// extension point and configuring it with :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`.
1006+
// If :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>` is configured with
1007+
// :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`, this field will be ignored.
1008+
bool respect_dns_ttl = 39
1009+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
9841010

9851011
// The DNS IP address resolution policy. If this setting is not specified, the
9861012
// value defaults to
9871013
// :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
1014+
// For logical and strict dns cluster, this field is deprecated in favor of using the
1015+
// :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>`
1016+
// extension point and configuring it with :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`.
1017+
// If :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>` is configured with
1018+
// :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`, this field will be ignored.
9881019
DnsLookupFamily dns_lookup_family = 17 [(validate.rules).enum = {defined_only: true}];
9891020

9901021
// If DNS resolvers are specified and the cluster type is either
@@ -1024,6 +1055,9 @@ message Cluster {
10241055
// During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
10251056
// when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
10261057
// When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
1058+
// Also note that this field is deprecated for logical dns and strict dns clusters and will be ignored when
1059+
// :ref:`cluster_type<envoy_v3_api_field_config.cluster.v3.Cluster.cluster_type>` is configured with
1060+
// :ref:`DnsCluster<envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster>`.
10271061
// [#extension-category: envoy.network.dns_resolver]
10281062
core.v3.TypedExtensionConfig typed_dns_resolver_config = 55;
10291063

@@ -1311,7 +1345,7 @@ message TrackClusterStats {
13111345

13121346
// If request_response_sizes is true, then the :ref:`histograms
13131347
// <config_cluster_manager_cluster_stats_request_response_sizes>` tracking header and body sizes
1314-
// of requests and responses will be published.
1348+
// of requests and responses will be published. Additionally, number of headers in the requests and responses will be tracked.
13151349
bool request_response_sizes = 2;
13161350

13171351
// If true, some stats will be emitted per-endpoint, similar to the stats in admin ``/clusters``

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

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ message EnvoyInternalAddress {
5050
string endpoint_id = 2;
5151
}
5252

53-
// [#next-free-field: 7]
53+
// [#next-free-field: 8]
5454
message SocketAddress {
5555
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.SocketAddress";
5656

@@ -97,6 +97,20 @@ message SocketAddress {
9797
// allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into
9898
// IPv6 space as ``::FFFF:<IPv4-address>``.
9999
bool ipv4_compat = 6;
100+
101+
// Filepath that specifies the Linux network namespace this socket will be created in (see ``man 7
102+
// network_namespaces``). If this field is set, Envoy will create the socket in the specified
103+
// network namespace.
104+
//
105+
// .. note::
106+
// Setting this parameter requires Envoy to run with the ``CAP_NET_ADMIN`` capability.
107+
//
108+
// .. note::
109+
// Currently only used for Listener sockets.
110+
//
111+
// .. attention::
112+
// Network namespaces are only configurable on Linux. Otherwise, this field has no effect.
113+
string network_namespace_filepath = 7;
100114
}
101115

102116
message TcpKeepalive {

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

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ message RuntimeUInt32 {
266266
uint32 default_value = 2;
267267

268268
// Runtime key to get value for comparison. This value is used if defined.
269-
string runtime_key = 3 [(validate.rules).string = {min_len: 1}];
269+
string runtime_key = 3;
270270
}
271271

272272
// Runtime derived percentage with a default when not specified.
@@ -275,7 +275,7 @@ message RuntimePercent {
275275
type.v3.Percent default_value = 1;
276276

277277
// Runtime key to get value for comparison. This value is used if defined.
278-
string runtime_key = 2 [(validate.rules).string = {min_len: 1}];
278+
string runtime_key = 2;
279279
}
280280

281281
// Runtime derived double with a default when not specified.
@@ -286,7 +286,7 @@ message RuntimeDouble {
286286
double default_value = 1;
287287

288288
// Runtime key to get value for comparison. This value is used if defined.
289-
string runtime_key = 2 [(validate.rules).string = {min_len: 1}];
289+
string runtime_key = 2;
290290
}
291291

292292
// Runtime derived bool with a default when not specified.
@@ -300,15 +300,34 @@ message RuntimeFeatureFlag {
300300
// Runtime key to get value for comparison. This value is used if defined. The boolean value must
301301
// be represented via its
302302
// `canonical JSON encoding <https://developers.google.com/protocol-buffers/docs/proto3#json>`_.
303-
string runtime_key = 2 [(validate.rules).string = {min_len: 1}];
303+
string runtime_key = 2;
304304
}
305305

306+
// Please use :ref:`KeyValuePair <envoy_api_msg_config.core.v3.KeyValuePair>` instead.
307+
// [#not-implemented-hide:]
306308
message KeyValue {
309+
// The key of the key/value pair.
310+
string key = 1 [
311+
deprecated = true,
312+
(validate.rules).string = {min_len: 1 max_bytes: 16384},
313+
(envoy.annotations.deprecated_at_minor_version) = "3.0"
314+
];
315+
316+
// The value of the key/value pair.
317+
//
318+
// The ``bytes`` type is used. This means if JSON or YAML is used to to represent the
319+
// configuration, the value must be base64 encoded. This is unfriendly for users in most
320+
// use scenarios of this message.
321+
//
322+
bytes value = 2 [deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
323+
}
324+
325+
message KeyValuePair {
307326
// The key of the key/value pair.
308327
string key = 1 [(validate.rules).string = {min_len: 1 max_bytes: 16384}];
309328

310329
// The value of the key/value pair.
311-
bytes value = 2;
330+
google.protobuf.Value value = 2;
312331
}
313332

314333
// Key/value pair plus option to control append behavior. This is used to specify
@@ -339,8 +358,18 @@ message KeyValueAppend {
339358
OVERWRITE_IF_EXISTS = 3;
340359
}
341360

342-
// Key/value pair entry that this option to append or overwrite.
343-
KeyValue entry = 1 [(validate.rules).message = {required: true}];
361+
// The single key/value pair record to be appended or overridden. This field must be set.
362+
KeyValuePair record = 3;
363+
364+
// Key/value pair entry that this option to append or overwrite. This field is deprecated
365+
// and please use :ref:`record <envoy_v3_api_field_config.core.v3.KeyValueAppend.record>`
366+
// as replacement.
367+
// [#not-implemented-hide:]
368+
KeyValue entry = 1 [
369+
deprecated = true,
370+
(validate.rules).message = {skip: true},
371+
(envoy.annotations.deprecated_at_minor_version) = "3.0"
372+
];
344373

345374
// Describes the action taken to append/overwrite the given value for an existing
346375
// key or to only add this key if it's absent.
@@ -349,10 +378,12 @@ message KeyValueAppend {
349378

350379
// Key/value pair to append or remove.
351380
message KeyValueMutation {
352-
// Key/value pair to append or overwrite. Only one of ``append`` or ``remove`` can be set.
381+
// Key/value pair to append or overwrite. Only one of ``append`` or ``remove`` can be set or
382+
// the configuration will be rejected.
353383
KeyValueAppend append = 1;
354384

355-
// Key to remove. Only one of ``append`` or ``remove`` can be set.
385+
// Key to remove. Only one of ``append`` or ``remove`` can be set or the configuration will be
386+
// rejected.
356387
string remove = 2 [(validate.rules).string = {max_bytes: 16384}];
357388
}
358389

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -375,13 +375,13 @@ message HealthCheck {
375375
// The default value for "healthy edge interval" is the same as the default interval.
376376
google.protobuf.Duration healthy_edge_interval = 16 [(validate.rules).duration = {gt {}}];
377377

378-
// .. attention::
379-
// This field is deprecated in favor of the extension
380-
// :ref:`event_logger <envoy_v3_api_field_config.core.v3.HealthCheck.event_logger>` and
381-
// :ref:`event_log_path <envoy_v3_api_field_extensions.health_check.event_sinks.file.v3.HealthCheckEventFileSink.event_log_path>`
382-
// in the file sink extension.
383-
//
384378
// Specifies the path to the :ref:`health check event log <arch_overview_health_check_logging>`.
379+
//
380+
// .. attention::
381+
// This field is deprecated in favor of the extension
382+
// :ref:`event_logger <envoy_v3_api_field_config.core.v3.HealthCheck.event_logger>` and
383+
// :ref:`event_log_path <envoy_v3_api_field_extensions.health_check.event_sinks.file.v3.HealthCheckEventFileSink.event_log_path>`
384+
// in the file sink extension.
385385
string event_log_path = 17
386386
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
387387

0 commit comments

Comments
 (0)