Skip to content

Commit c8c1c32

Browse files
[protobuf] Update protobuf definitions to v1.31.0 (envoyproxy#388)
Signed-off-by: envoy-bot <[email protected]> Co-authored-by: envoy-bot <[email protected]>
1 parent 8bde26e commit c8c1c32

File tree

56 files changed

+1699
-142
lines changed

Some content is hidden

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

56 files changed

+1699
-142
lines changed

api/src/main/proto/envoy/admin/v3/server_info.proto

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ message ServerInfo {
5959
config.core.v3.Node node = 7;
6060
}
6161

62-
// [#next-free-field: 40]
62+
// [#next-free-field: 41]
6363
message CommandLineOptions {
6464
option (udpa.annotations.versioning).previous_message_type =
6565
"envoy.admin.v2alpha.CommandLineOptions";
@@ -101,6 +101,9 @@ message CommandLineOptions {
101101
// See :option:`--skip-hot-restart-on-no-parent` for details.
102102
bool skip_hot_restart_on_no_parent = 39;
103103

104+
// See :option:`--skip-hot-restart-parent-stats` for details.
105+
bool skip_hot_restart_parent_stats = 40;
106+
104107
// See :option:`--base-id-path` for details.
105108
string base_id_path = 32;
106109

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

Lines changed: 16 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: 41]
44+
// [#next-free-field: 42]
4545
message Bootstrap {
4646
option (udpa.annotations.versioning).previous_message_type =
4747
"envoy.config.bootstrap.v2.Bootstrap";
@@ -411,6 +411,10 @@ message Bootstrap {
411411

412412
// Optional gRPC async manager config.
413413
GrpcAsyncClientManagerConfig grpc_async_client_manager_config = 40;
414+
415+
// Optional configuration for memory allocation manager.
416+
// Memory releasing is only supported for `tcmalloc allocator <https://github.com/google/tcmalloc>`_.
417+
MemoryAllocatorManager memory_allocator_manager = 41;
414418
}
415419

416420
// Administration interface :ref:`operations documentation
@@ -734,3 +738,14 @@ message CustomInlineHeader {
734738
// The type of the header that is expected to be set as the inline header.
735739
InlineHeaderType inline_header_type = 2 [(validate.rules).enum = {defined_only: true}];
736740
}
741+
742+
message MemoryAllocatorManager {
743+
// Configures tcmalloc to perform background release of free memory in amount of bytes per ``memory_release_interval`` interval.
744+
// If equals to ``0``, no memory release will occur. Defaults to ``0``.
745+
uint64 bytes_to_release = 1;
746+
747+
// Interval in milliseconds for memory releasing. If specified, during every
748+
// interval Envoy will try to release ``bytes_to_release`` of free memory back to operating system for reuse.
749+
// Defaults to 1000 milliseconds.
750+
google.protobuf.Duration memory_release_interval = 2;
751+
}

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

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ message ClusterCollection {
4545
}
4646

4747
// Configuration for a single upstream cluster.
48-
// [#next-free-field: 57]
48+
// [#next-free-field: 58]
4949
message Cluster {
5050
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.Cluster";
5151

@@ -168,7 +168,7 @@ message Cluster {
168168
// The name of the match, used in stats generation.
169169
string name = 1 [(validate.rules).string = {min_len: 1}];
170170

171-
// Optional endpoint metadata match criteria.
171+
// Optional metadata match criteria.
172172
// The connection to the endpoint with metadata matching what is set in this field
173173
// will use the transport socket configuration specified here.
174174
// The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
@@ -754,12 +754,14 @@ message Cluster {
754754

755755
reserved "hosts", "tls_context", "extension_protocol_options";
756756

757-
// Configuration to use different transport sockets for different endpoints.
758-
// The entry of ``envoy.transport_socket_match`` in the
759-
// :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
760-
// is used to match against the transport sockets as they appear in the list. The first
761-
// :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
762-
// For example, with the following match
757+
// Configuration to use different transport sockets for different endpoints. The entry of
758+
// ``envoy.transport_socket_match`` in the :ref:`LbEndpoint.Metadata
759+
// <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>` is used to match against the
760+
// transport sockets as they appear in the list. If a match is not found, the search continues in
761+
// :ref:`LocalityLbEndpoints.Metadata
762+
// <envoy_v3_api_field_config.endpoint.v3.LocalityLbEndpoints.metadata>`. The first :ref:`match
763+
// <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used. For example, with
764+
// the following match
763765
//
764766
// .. code-block:: yaml
765767
//
@@ -783,8 +785,9 @@ message Cluster {
783785
// socket match in case above.
784786
//
785787
// If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
786-
// ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
787-
// ``transport_socket`` specified in this cluster.
788+
// ``TransportSocketMatch``, the locality metadata is then checked for a match. Barring any
789+
// matches in the endpoint or locality metadata, the socket configuration fallbacks to use the
790+
// ``tls_context`` or ``transport_socket`` specified in this cluster.
788791
//
789792
// This field allows gradual and flexible transport socket configuration changes.
790793
//
@@ -1148,6 +1151,22 @@ message Cluster {
11481151
// from the LRS stream here.]
11491152
core.v3.ConfigSource lrs_server = 42;
11501153

1154+
// [#not-implemented-hide:]
1155+
// A list of metric names from ORCA load reports to propagate to LRS.
1156+
//
1157+
// For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``.
1158+
// For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA
1159+
// ``named_metrics`` field.
1160+
//
1161+
// The special map key ``*`` means to report all entries in the map (e.g., ``named_metrics.*`` means to
1162+
// report all entries in the ORCA named_metrics field). Note that this should be used only with trusted
1163+
// backends.
1164+
//
1165+
// The metric names in LRS will follow the same semantics as this field. In other words, if this field
1166+
// contains ``named_metrics.foo``, then the LRS load report will include the data with that same string
1167+
// as the key.
1168+
repeated string lrs_report_endpoint_metrics = 57;
1169+
11511170
// If track_timeout_budgets is true, the :ref:`timeout budget histograms
11521171
// <config_cluster_manager_cluster_stats_timeout_budgets>` will be published for each
11531172
// request. These show what percentage of a request's per try and global timeout was used. A value

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
2121

2222
// See the :ref:`architecture overview <arch_overview_outlier_detection>` for
2323
// more information on outlier detection.
24-
// [#next-free-field: 25]
24+
// [#next-free-field: 26]
2525
message OutlierDetection {
2626
option (udpa.annotations.versioning).previous_message_type =
2727
"envoy.api.v2.cluster.OutlierDetection";
@@ -42,8 +42,8 @@ message OutlierDetection {
4242
// Defaults to 30000ms or 30s.
4343
google.protobuf.Duration base_ejection_time = 3 [(validate.rules).duration = {gt {}}];
4444

45-
// The maximum % of an upstream cluster that can be ejected due to outlier
46-
// detection. Defaults to 10% but will eject at least one host regardless of the value.
45+
// The maximum % of an upstream cluster that can be ejected due to outlier detection. Defaults to 10% .
46+
// Will eject at least one host regardless of the value if :ref:`always_eject_one_host<envoy_v3_api_field_config.cluster.v3.OutlierDetection.always_eject_one_host>` is enabled.
4747
google.protobuf.UInt32Value max_ejection_percent = 4 [(validate.rules).uint32 = {lte: 100}];
4848

4949
// The % chance that a host will be actually ejected when an outlier status
@@ -173,4 +173,8 @@ message OutlierDetection {
173173
// Set of host's passive monitors.
174174
// [#not-implemented-hide:]
175175
repeated core.v3.TypedExtensionConfig monitors = 24;
176+
177+
// If enabled, at least one host is ejected regardless of the value of :ref:`max_ejection_percent<envoy_v3_api_field_config.cluster.v3.OutlierDetection.max_ejection_percent>`.
178+
// Defaults to false.
179+
google.protobuf.BoolValue always_eject_one_host = 25;
176180
}

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

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,59 @@ message RuntimeFeatureFlag {
303303
string runtime_key = 2 [(validate.rules).string = {min_len: 1}];
304304
}
305305

306+
message KeyValue {
307+
// The key of the key/value pair.
308+
string key = 1 [(validate.rules).string = {min_len: 1 max_bytes: 16384}];
309+
310+
// The value of the key/value pair.
311+
bytes value = 2;
312+
}
313+
314+
// Key/value pair plus option to control append behavior. This is used to specify
315+
// key/value pairs that should be appended to a set of existing key/value pairs.
316+
message KeyValueAppend {
317+
// Describes the supported actions types for key/value pair append action.
318+
enum KeyValueAppendAction {
319+
// If the key already exists, this action will result in the following behavior:
320+
//
321+
// - Comma-concatenated value if multiple values are not allowed.
322+
// - New value added to the list of values if multiple values are allowed.
323+
//
324+
// If the key doesn't exist then this will add pair with specified key and value.
325+
APPEND_IF_EXISTS_OR_ADD = 0;
326+
327+
// This action will add the key/value pair if it doesn't already exist. If the
328+
// key already exists then this will be a no-op.
329+
ADD_IF_ABSENT = 1;
330+
331+
// This action will overwrite the specified value by discarding any existing
332+
// values if the key already exists. If the key doesn't exist then this will add
333+
// the pair with specified key and value.
334+
OVERWRITE_IF_EXISTS_OR_ADD = 2;
335+
336+
// This action will overwrite the specified value by discarding any existing
337+
// values if the key already exists. If the key doesn't exist then this will
338+
// be no-op.
339+
OVERWRITE_IF_EXISTS = 3;
340+
}
341+
342+
// Key/value pair entry that this option to append or overwrite.
343+
KeyValue entry = 1 [(validate.rules).message = {required: true}];
344+
345+
// Describes the action taken to append/overwrite the given value for an existing
346+
// key or to only add this key if it's absent.
347+
KeyValueAppendAction action = 2 [(validate.rules).enum = {defined_only: true}];
348+
}
349+
350+
// Key/value pair to append or remove.
351+
message KeyValueMutation {
352+
// Key/value pair to append or overwrite. Only one of ``append`` or ``remove`` can be set.
353+
KeyValueAppend append = 1;
354+
355+
// Key to remove. Only one of ``append`` or ``remove`` can be set.
356+
string remove = 2 [(validate.rules).string = {max_bytes: 16384}];
357+
}
358+
306359
// Query parameter name/value pair.
307360
message QueryParameter {
308361
// The key of the query parameter. Case sensitive.
@@ -411,6 +464,7 @@ message WatchedDirectory {
411464
}
412465

413466
// Data source consisting of a file, an inline value, or an environment variable.
467+
// [#next-free-field: 6]
414468
message DataSource {
415469
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.DataSource";
416470

@@ -429,6 +483,22 @@ message DataSource {
429483
// Environment variable data source.
430484
string environment_variable = 4 [(validate.rules).string = {min_len: 1}];
431485
}
486+
487+
// Watched directory that is watched for file changes. If this is set explicitly, the file
488+
// specified in the ``filename`` field will be reloaded when relevant file move events occur.
489+
//
490+
// .. note::
491+
// This field only makes sense when the ``filename`` field is set.
492+
//
493+
// .. note::
494+
// Envoy only updates when the file is replaced by a file move, and not when the file is
495+
// edited in place.
496+
//
497+
// .. note::
498+
// Not all use cases of ``DataSource`` support watching directories. It depends on the
499+
// specific usage of the ``DataSource``. See the documentation of the parent message for
500+
// details.
501+
WatchedDirectory watched_directory = 5;
432502
}
433503

434504
// The message specifies the retry policy of remote data source when fetching fails.

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,10 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
2828
// xDS API and non-xDS services version. This is used to describe both resource and transport
2929
// protocol versions (in distinct configuration fields).
3030
enum ApiVersion {
31-
// When not specified, we assume v2, to ease migration to Envoy's stable API
32-
// versioning. If a client does not support v2 (e.g. due to deprecation), this
33-
// is an invalid value.
34-
AUTO = 0 [deprecated = true, (envoy.annotations.deprecated_at_minor_version_enum) = "3.0"];
31+
// When not specified, we assume v3; it is the only supported version.
32+
AUTO = 0;
3533

36-
// Use xDS v2 API.
34+
// Use xDS v2 API. This is no longer supported.
3735
V2 = 1 [deprecated = true, (envoy.annotations.deprecated_at_minor_version_enum) = "3.0"];
3836

3937
// Use xDS v3 API.

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
2929
message GrpcService {
3030
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.GrpcService";
3131

32+
// [#next-free-field: 6]
3233
message EnvoyGrpc {
3334
option (udpa.annotations.versioning).previous_message_type =
3435
"envoy.api.v2.core.GrpcService.EnvoyGrpc";
@@ -55,6 +56,12 @@ message GrpcService {
5556
// This limit is applied to individual messages in the streaming response and not the total size of streaming response.
5657
// Defaults to 0, which means unlimited.
5758
google.protobuf.UInt32Value max_receive_message_length = 4;
59+
60+
// This provides gRPC client level control over envoy generated headers.
61+
// If false, the header will be sent but it can be overridden by per stream option.
62+
// If true, the header will be removed and can not be overridden by per stream option.
63+
// Default to false.
64+
bool skip_envoy_headers = 5;
5865
}
5966

6067
// [#next-free-field: 9]

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package envoy.config.core.v3;
55
import "envoy/config/core/v3/base.proto";
66
import "envoy/config/core/v3/event_service_config.proto";
77
import "envoy/config/core/v3/extension.proto";
8+
import "envoy/config/core/v3/proxy_protocol.proto";
89
import "envoy/type/matcher/v3/string.proto";
910
import "envoy/type/v3/http.proto";
1011
import "envoy/type/v3/range.proto";
@@ -177,6 +178,13 @@ message HealthCheck {
177178
// payload block must be found, and in the order specified, but not
178179
// necessarily contiguous.
179180
repeated Payload receive = 2;
181+
182+
// When setting this value, it tries to attempt health check request with ProxyProtocol.
183+
// When ``send`` is presented, they are sent after preceding ProxyProtocol header.
184+
// Only ProxyProtocol header is sent when ``send`` is not presented.
185+
// It allows to use both ProxyProtocol V1 and V2. In V1, it presents L3/L4. In V2, it includes
186+
// LOCAL command and doesn't include L3/L4.
187+
ProxyProtocolConfig proxy_protocol_config = 3;
180188
}
181189

182190
message RedisHealthCheck {

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,10 +249,9 @@ message HttpProtocolOptions {
249249
google.protobuf.Duration idle_timeout = 1;
250250

251251
// The maximum duration of a connection. The duration is defined as a period since a connection
252-
// was established. If not set, there is no max duration. When max_connection_duration is reached
253-
// and if there are no active streams, the connection will be closed. If the connection is a
254-
// downstream connection and there are any active streams, the drain sequence will kick-in,
255-
// and the connection will be force-closed after the drain period. See :ref:`drain_timeout
252+
// was established. If not set, there is no max duration. When max_connection_duration is reached,
253+
// the drain sequence will kick-in. The connection will be closed after the drain timeout period
254+
// if there are no active streams. See :ref:`drain_timeout
256255
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
257256
google.protobuf.Duration max_connection_duration = 3;
258257

@@ -651,6 +650,13 @@ message Http3ProtocolOptions {
651650
message SchemeHeaderTransformation {
652651
oneof transformation {
653652
// Overwrite any Scheme header with the contents of this string.
653+
// If set, takes precedence over match_upstream.
654654
string scheme_to_overwrite = 1 [(validate.rules).string = {in: "http" in: "https"}];
655655
}
656+
657+
// Set the Scheme header to match the upstream transport protocol. For example, should a
658+
// request be sent to the upstream over TLS, the scheme header will be set to "https". Should the
659+
// request be sent over plaintext, the scheme header will be set to "http".
660+
// If scheme_to_overwrite is set, this field is not used.
661+
bool match_upstream = 2;
656662
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@ message ClusterLoadAssignment {
7777
//
7878
// Envoy supports only one element and will NACK if more than one element is present.
7979
// Other xDS-capable data planes will not necessarily have this limitation.
80+
//
81+
// In Envoy, this ``drop_overloads`` config can be overridden by a runtime key
82+
// "load_balancing_policy.drop_overload_limit" setting. This runtime key can be set to
83+
// any integer number between 0 and 100. 0 means drop 0%. 100 means drop 100%.
84+
// When both ``drop_overloads`` config and "load_balancing_policy.drop_overload_limit"
85+
// setting are in place, the min of these two wins.
8086
repeated DropOverload drop_overloads = 2;
8187

8288
// Priority levels and localities are considered overprovisioned with this

0 commit comments

Comments
 (0)