Skip to content

Commit aec2db3

Browse files
[protobuf] Update protobuf definitions to v1.27.0 (#295)
Signed-off-by: envoy-bot <[email protected]> Co-authored-by: envoy-bot <[email protected]>
1 parent b9d3ac2 commit aec2db3

File tree

64 files changed

+1449
-155
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1449
-155
lines changed

api/src/main/proto/envoy/api/v2/scoped_route.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ option (udpa.annotations.file_status).package_version_status = FROZEN;
3939
// fragments:
4040
// - header_value_extractor:
4141
// name: X-Route-Selector
42-
// element_separator: ,
42+
// element_separator: ","
4343
// element:
4444
// separator: =
4545
// key: vip

api/src/main/proto/envoy/config/accesslog/v3/accesslog.proto

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package envoy.config.accesslog.v3;
44

55
import "envoy/config/core/v3/base.proto";
66
import "envoy/config/route/v3/route_components.proto";
7+
import "envoy/data/accesslog/v3/accesslog.proto";
78
import "envoy/type/matcher/v3/metadata.proto";
89
import "envoy/type/v3/percent.proto";
910

@@ -43,7 +44,7 @@ message AccessLog {
4344
}
4445
}
4546

46-
// [#next-free-field: 13]
47+
// [#next-free-field: 14]
4748
message AccessLogFilter {
4849
option (udpa.annotations.versioning).previous_message_type =
4950
"envoy.config.filter.accesslog.v2.AccessLogFilter";
@@ -87,6 +88,9 @@ message AccessLogFilter {
8788

8889
// Metadata Filter
8990
MetadataFilter metadata_filter = 12;
91+
92+
// Log Type Filter
93+
LogTypeFilter log_type_filter = 13;
9094
}
9195
}
9296

@@ -310,6 +314,17 @@ message MetadataFilter {
310314
google.protobuf.BoolValue match_if_key_not_found = 2;
311315
}
312316

317+
// Filters based on access log type.
318+
message LogTypeFilter {
319+
// Logs only records which their type is one of the types defined in this field.
320+
repeated data.accesslog.v3.AccessLogType types = 1
321+
[(validate.rules).repeated = {items {enum {defined_only: true}}}];
322+
323+
// If this field is set to true, the filter will instead block all records
324+
// with a access log type in types field, and allow all other records.
325+
bool exclude = 2;
326+
}
327+
313328
// Extension filter is statically registered at runtime.
314329
message ExtensionFilter {
315330
option (udpa.annotations.versioning).previous_message_type =

api/src/main/proto/envoy/config/bootstrap/v3/bootstrap.proto

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
4141
// <config_overview_bootstrap>` for more detail.
4242

4343
// Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
44-
// [#next-free-field: 38]
44+
// [#next-free-field: 40]
4545
message Bootstrap {
4646
option (udpa.annotations.versioning).previous_message_type =
4747
"envoy.config.bootstrap.v2.Bootstrap";
@@ -101,6 +101,41 @@ message Bootstrap {
101101
core.v3.ApiConfigSource ads_config = 3;
102102
}
103103

104+
message ApplicationLogConfig {
105+
message LogFormat {
106+
oneof log_format {
107+
option (validate.required) = true;
108+
109+
// Flush application logs in JSON format. The configured JSON struct can
110+
// support all the format flags specified in the :option:`--log-format`
111+
// command line options section, except for the ``%v`` and ``%_`` flags.
112+
google.protobuf.Struct json_format = 1;
113+
114+
// Flush application log in a format defined by a string. The text format
115+
// can support all the format flags specified in the :option:`--log-format`
116+
// command line option section.
117+
string text_format = 2;
118+
}
119+
}
120+
121+
// Optional field to set the application logs format. If this field is set, it will override
122+
// the default log format. Setting both this field and :option:`--log-format` command line
123+
// option is not allowed, and will cause a bootstrap error.
124+
LogFormat log_format = 1;
125+
}
126+
127+
message DeferredStatOptions {
128+
// When the flag is enabled, Envoy will lazily initialize a subset of the stats (see below).
129+
// This will save memory and CPU cycles when creating the objects that own these stats, if those
130+
// stats are never referenced throughout the lifetime of the process. However, it will incur additional
131+
// memory overhead for these objects, and a small increase of CPU usage when a at least one of the stats
132+
// is updated for the first time.
133+
// Groups of stats that will be lazily initialized:
134+
// - Cluster traffic stats: a subgroup of the :ref:`cluster statistics <config_cluster_manager_cluster_stats>`
135+
// that are used when requests are routed to the cluster.
136+
bool enable_deferred_creation_stats = 1;
137+
}
138+
104139
reserved 10, 11;
105140

106141
reserved "runtime";
@@ -163,6 +198,9 @@ message Bootstrap {
163198
// Optional set of stats sinks.
164199
repeated metrics.v3.StatsSink stats_sinks = 6;
165200

201+
// Options to control behaviors of deferred creation compatible stats.
202+
DeferredStatOptions deferred_stat_options = 39;
203+
166204
// Configuration for internal processing of stats.
167205
metrics.v3.StatsConfig stats_config = 13;
168206

@@ -360,6 +398,9 @@ message Bootstrap {
360398
// Envoy only supports ListenerManager for this field and Envoy Mobile
361399
// supports ApiListenerManager.
362400
core.v3.TypedExtensionConfig listener_manager = 37;
401+
402+
// Optional application log configuration.
403+
ApplicationLogConfig application_log_config = 38;
363404
}
364405

365406
// Administration interface :ref:`operations documentation

api/src/main/proto/envoy/config/cluster/v3/cluster.proto

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import "envoy/config/core/v3/health_check.proto";
1313
import "envoy/config/core/v3/protocol.proto";
1414
import "envoy/config/core/v3/resolver.proto";
1515
import "envoy/config/endpoint/v3/endpoint.proto";
16+
import "envoy/type/metadata/v3/metadata.proto";
1617
import "envoy/type/v3/percent.proto";
1718

1819
import "google/protobuf/any.proto";
@@ -551,6 +552,10 @@ message Cluster {
551552
// The port to override for the original dst address. This port
552553
// will take precedence over filter state and header override ports
553554
google.protobuf.UInt32Value upstream_port_override = 3 [(validate.rules).uint32 = {lte: 65535}];
555+
556+
// The dynamic metadata key to override destination address.
557+
// First the request metadata is considered, then the connection one.
558+
type.metadata.v3.MetadataKey metadata_key = 4;
554559
}
555560

556561
// Common configuration for all load balancer implementations.
@@ -719,7 +724,7 @@ message Cluster {
719724
google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1
720725
[(validate.rules).double = {lte: 3.0 gte: 1.0}];
721726

722-
// Indicates how many many streams (rounded up) can be anticipated across a cluster for each
727+
// Indicates how many streams (rounded up) can be anticipated across a cluster for each
723728
// stream, useful for low QPS services. This is currently supported for a subset of
724729
// deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
725730
// Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a

api/src/main/proto/envoy/config/core/v3/base.proto

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,8 +324,18 @@ message HeaderValue {
324324
// The same :ref:`format specifier <config_access_log_format>` as used for
325325
// :ref:`HTTP access logging <config_access_log>` applies here, however
326326
// unknown header values are replaced with the empty string instead of ``-``.
327+
// Header value is encoded as string. This does not work for non-utf8 characters.
328+
// Only one of ``value`` or ``raw_value`` can be set.
327329
string value = 2 [
328-
(validate.rules).string = {max_bytes: 16384 well_known_regex: HTTP_HEADER_VALUE strict: false}
330+
(validate.rules).string = {max_bytes: 16384 well_known_regex: HTTP_HEADER_VALUE strict: false},
331+
(udpa.annotations.field_migrate).oneof_promotion = "value_type"
332+
];
333+
334+
// Header value is encoded as bytes which can support non-utf8 characters.
335+
// Only one of ``value`` or ``raw_value`` can be set.
336+
bytes raw_value = 3 [
337+
(validate.rules).bytes = {min_len: 0 max_len: 16384},
338+
(udpa.annotations.field_migrate).oneof_promotion = "value_type"
329339
];
330340
}
331341

@@ -349,6 +359,10 @@ message HeaderValueOption {
349359
// the header already exists. If the header doesn't exist then this will add the header
350360
// with specified key and value.
351361
OVERWRITE_IF_EXISTS_OR_ADD = 2;
362+
363+
// This action will overwrite the specified value by discarding any existing values if
364+
// the header already exists. If the header doesn't exist then this will be no-op.
365+
OVERWRITE_IF_EXISTS = 3;
352366
}
353367

354368
// Header name/value pair that this option applies to.

api/src/main/proto/envoy/config/core/v3/config_source.proto

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -281,15 +281,3 @@ message ExtensionConfigSource {
281281
// if they do not match any type URL in the set.
282282
repeated string type_urls = 4 [(validate.rules).repeated = {min_items: 1}];
283283
}
284-
285-
// A placeholder proto for the registration for the REST subscription implementation.
286-
message RestSubscription {
287-
}
288-
289-
// A placeholder proto for the registration for the filesystem subscription implementation.
290-
message FilesystemSubscription {
291-
}
292-
293-
// A placeholder proto for the registration for the filesystem collection subscription implementation.
294-
message FilesystemCollectionSubscription {
295-
}

api/src/main/proto/envoy/config/core/v3/health_check.proto

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package envoy.config.core.v3;
44

55
import "envoy/config/core/v3/base.proto";
66
import "envoy/config/core/v3/event_service_config.proto";
7+
import "envoy/config/core/v3/extension.proto";
78
import "envoy/type/matcher/v3/string.proto";
89
import "envoy/type/v3/http.proto";
910
import "envoy/type/v3/range.proto";
@@ -13,6 +14,7 @@ import "google/protobuf/duration.proto";
1314
import "google/protobuf/struct.proto";
1415
import "google/protobuf/wrappers.proto";
1516

17+
import "envoy/annotations/deprecation.proto";
1618
import "udpa/annotations/status.proto";
1719
import "udpa/annotations/versioning.proto";
1820
import "validate/validate.proto";
@@ -60,7 +62,7 @@ message HealthStatusSet {
6062
[(validate.rules).repeated = {items {enum {defined_only: true}}}];
6163
}
6264

63-
// [#next-free-field: 25]
65+
// [#next-free-field: 26]
6466
message HealthCheck {
6567
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.HealthCheck";
6668

@@ -366,9 +368,19 @@ message HealthCheck {
366368
// The default value for "healthy edge interval" is the same as the default interval.
367369
google.protobuf.Duration healthy_edge_interval = 16 [(validate.rules).duration = {gt {}}];
368370

371+
// .. attention::
372+
// This field is deprecated in favor of the extension
373+
// :ref:`event_logger <envoy_v3_api_field_config.core.v3.HealthCheck.event_logger>` and
374+
// :ref:`event_log_path <envoy_v3_api_field_extensions.health_check.event_sinks.file.v3.HealthCheckEventFileSink.event_log_path>`
375+
// in the file sink extension.
376+
//
369377
// Specifies the path to the :ref:`health check event log <arch_overview_health_check_logging>`.
370-
// If empty, no event log will be written.
371-
string event_log_path = 17;
378+
string event_log_path = 17
379+
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
380+
381+
// A list of event log sinks to process the health check event.
382+
// [#extension-category: envoy.health_check.event_sinks]
383+
repeated TypedExtensionConfig event_logger = 25;
372384

373385
// [#not-implemented-hide:]
374386
// The gRPC service for the health check event service.

api/src/main/proto/envoy/config/core/v3/protocol.proto

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,14 @@ message UpstreamHttpProtocolOptions {
104104
// upstream connections based on the downstream HTTP host/authority header or any other arbitrary
105105
// header when :ref:`override_auto_sni_header <envoy_v3_api_field_config.core.v3.UpstreamHttpProtocolOptions.override_auto_sni_header>`
106106
// is set, as seen by the :ref:`router filter <config_http_filters_router>`.
107+
// Does nothing if a filter before the http router filter sets the corresponding metadata.
107108
bool auto_sni = 1;
108109

109110
// Automatic validate upstream presented certificate for new upstream connections based on the
110111
// downstream HTTP host/authority header or any other arbitrary header when :ref:`override_auto_sni_header <envoy_v3_api_field_config.core.v3.UpstreamHttpProtocolOptions.override_auto_sni_header>`
111112
// is set, as seen by the :ref:`router filter <config_http_filters_router>`.
112113
// This field is intended to be set with ``auto_sni`` field.
114+
// Does nothing if a filter before the http router filter sets the corresponding metadata.
113115
bool auto_san_validation = 2;
114116

115117
// An optional alternative to the host/authority header to be used for setting the SNI value.
@@ -119,6 +121,7 @@ message UpstreamHttpProtocolOptions {
119121
// is not found or the value is empty, host/authority header will be used instead.
120122
// This field is intended to be set with ``auto_sni`` and/or ``auto_san_validation`` fields.
121123
// If none of these fields are set then setting this would be a no-op.
124+
// Does nothing if a filter before the http router filter sets the corresponding metadata.
122125
string override_auto_sni_header = 3
123126
[(validate.rules).string = {well_known_regex: HTTP_HEADER_NAME ignore_empty: true}];
124127
}
@@ -259,7 +262,7 @@ message HttpProtocolOptions {
259262
google.protobuf.UInt32Value max_requests_per_connection = 6;
260263
}
261264

262-
// [#next-free-field: 10]
265+
// [#next-free-field: 11]
263266
message Http1ProtocolOptions {
264267
option (udpa.annotations.versioning).previous_message_type =
265268
"envoy.api.v2.core.Http1ProtocolOptions";
@@ -358,6 +361,19 @@ message Http1ProtocolOptions {
358361
// See issue #21245.
359362
google.protobuf.BoolValue use_balsa_parser = 9
360363
[(xds.annotations.v3.field_status).work_in_progress = true];
364+
365+
// [#not-implemented-hide:] Hiding so that field can be removed.
366+
// If true, and BalsaParser is used (either `use_balsa_parser` above is true,
367+
// or `envoy.reloadable_features.http1_use_balsa_parser` is true and
368+
// `use_balsa_parser` is unset), then every non-empty method with only valid
369+
// characters is accepted. Otherwise, methods not on the hard-coded list are
370+
// rejected.
371+
// Once UHV is enabled, this field should be removed, and BalsaParser should
372+
// allow any method. UHV validates the method, rejecting empty string or
373+
// invalid characters, and provides :ref:`restrict_http_methods
374+
// <envoy_v3_api_field_extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig.restrict_http_methods>`
375+
// to reject custom methods.
376+
bool allow_custom_methods = 10 [(xds.annotations.v3.field_status).work_in_progress = true];
361377
}
362378

363379
message KeepaliveSettings {

api/src/main/proto/envoy/config/endpoint/v3/endpoint.proto

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ message ClusterLoadAssignment {
3535
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.ClusterLoadAssignment";
3636

3737
// Load balancing policy settings.
38-
// [#next-free-field: 6]
38+
// [#next-free-field: 7]
3939
message Policy {
4040
option (udpa.annotations.versioning).previous_message_type =
4141
"envoy.api.v2.ClusterLoadAssignment.Policy";
@@ -99,6 +99,16 @@ message ClusterLoadAssignment {
9999
// are considered stale and should be marked unhealthy.
100100
// Defaults to 0 which means endpoints never go stale.
101101
google.protobuf.Duration endpoint_stale_after = 4 [(validate.rules).duration = {gt {}}];
102+
103+
// If true, use the :ref:`load balancing weight
104+
// <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.load_balancing_weight>` of healthy and unhealthy
105+
// hosts to determine the health of the priority level. If false, use the number of healthy and unhealthy hosts
106+
// to determine the health of the priority level, or in other words assume each host has a weight of 1 for
107+
// this calculation.
108+
//
109+
// Note: this is not currently implemented for
110+
// :ref:`locality weighted load balancing <arch_overview_load_balancing_locality_weighted_lb>`.
111+
bool weighted_priority_health = 6;
102112
}
103113

104114
// Name of the cluster. This will be the :ref:`service_name

api/src/main/proto/envoy/config/endpoint/v3/endpoint_components.proto

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ message Endpoint {
5757
bool disable_active_health_check = 4;
5858
}
5959

60+
message AdditionalAddress {
61+
// Additional address that is associated with the endpoint.
62+
core.v3.Address address = 1;
63+
}
64+
6065
// The upstream host address.
6166
//
6267
// .. attention::
@@ -82,6 +87,13 @@ message Endpoint {
8287
// that require a hostname, like
8388
// :ref:`auto_host_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.auto_host_rewrite>`.
8489
string hostname = 3;
90+
91+
// An ordered list of addresses that together with `address` comprise the
92+
// list of addresses for an endpoint. The address given in the `address` is
93+
// prepended to this list. It is assumed that the list must already be
94+
// sorted by preference order of the addresses. This will only be supported
95+
// for STATIC and EDS clusters.
96+
repeated AdditionalAddress additional_addresses = 4;
8597
}
8698

8799
// An Endpoint that Envoy can route traffic to.
@@ -182,9 +194,9 @@ message LocalityLbEndpoints {
182194
// default to the highest priority (0).
183195
//
184196
// Under usual circumstances, Envoy will only select endpoints for the highest
185-
// priority (0). In the event all endpoints for a particular priority are
197+
// priority (0). In the event that enough endpoints for a particular priority are
186198
// unavailable/unhealthy, Envoy will fail over to selecting endpoints for the
187-
// next highest priority group.
199+
// next highest priority group. Read more at :ref:`priority levels <arch_overview_load_balancing_priority_levels>`.
188200
//
189201
// Priorities should range from 0 (highest) to N (lowest) without skipping.
190202
uint32 priority = 5 [(validate.rules).uint32 = {lte: 128}];

0 commit comments

Comments
 (0)