Skip to content

Commit 816a799

Browse files
Import the latest commit of envoyproxy protos. (grpc#13014)
1 parent ad6d6f8 commit 816a799

37 files changed

Lines changed: 1496 additions & 530 deletions

File tree

xds/src/generated/thirdparty/grpc/io/envoyproxy/envoy/service/ext_proc/v3/ExternalProcessorGrpc.java

Lines changed: 122 additions & 164 deletions
Large diffs are not rendered by default.

xds/third_party/envoy/import.sh

Lines changed: 1 addition & 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 go/envoy-import-status
20-
VERSION=a0b3df32ba54c92a08d3636a9a36013cb920e471
20+
VERSION=ddf9f6788e3b5c103c496784f04890acbc6628e5
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"

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

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

4444
// Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
45-
// [#next-free-field: 43]
45+
// [#next-free-field: 44]
4646
message Bootstrap {
4747
option (udpa.annotations.versioning).previous_message_type =
4848
"envoy.config.bootstrap.v2.Bootstrap";
@@ -433,6 +433,17 @@ message Bootstrap {
433433
// Optional configuration for memory allocation manager.
434434
// Memory releasing is only supported for `tcmalloc allocator <https://github.com/google/tcmalloc>`_.
435435
MemoryAllocatorManager memory_allocator_manager = 41;
436+
437+
// When enabled, Envoy pins each worker thread to a distinct CPU from the process affinity mask,
438+
// worker ``i`` to the ``i-th`` CPU in ascending order. This improves CPU cache and ``NUMA``
439+
// locality for high concurrency deployments on bare metal. It is available on Linux only and is
440+
// ignored on other platforms. Pinning requires a worker count no greater than the number of CPUs
441+
// in the process affinity mask. When the worker count exceeds the available CPUs no worker is
442+
// pinned. Pinning is applied once when the workers start, so a later change to the process
443+
// affinity mask does not re-pin.
444+
//
445+
// Defaults to ``false``.
446+
bool enable_worker_cpu_affinity = 43;
436447
}
437448

438449
// Administration interface :ref:`operations documentation
@@ -469,6 +480,8 @@ message Admin {
469480
bool ignore_global_conn_limit = 6;
470481

471482
// List of admin paths that are accessible. If not specified, all admin endpoints are accessible.
483+
// Matchers are evaluated against the request path. For endpoints commonly queried with
484+
// parameters (for example ``/stats?format=...``), prefer ``prefix`` matchers.
472485
//
473486
// When specified, only paths in this list will be accessible, all others will return ``HTTP 403 Forbidden``.
474487
//
@@ -477,7 +490,8 @@ message Admin {
477490
// .. code-block:: yaml
478491
//
479492
// allow_paths:
480-
// - exact: /stats
493+
// - prefix: /stats
494+
// - prefix: /config_dump
481495
// - exact: /ready
482496
// - prefix: /healthcheck
483497
//
@@ -774,6 +788,7 @@ message CustomInlineHeader {
774788
InlineHeaderType inline_header_type = 2 [(validate.rules).enum = {defined_only: true}];
775789
}
776790

791+
// [#next-free-field: 6]
777792
message MemoryAllocatorManager {
778793
// Configures tcmalloc to perform background release of free memory in amount of bytes per ``memory_release_interval`` interval.
779794
// If equals to ``0``, no memory release will occur. Defaults to ``0``.
@@ -783,4 +798,57 @@ message MemoryAllocatorManager {
783798
// interval Envoy will try to release ``bytes_to_release`` of free memory back to operating system for reuse.
784799
// Defaults to ``1000`` milliseconds.
785800
google.protobuf.Duration memory_release_interval = 2;
801+
802+
// Sets the soft memory limit for tcmalloc. When the total memory used by tcmalloc exceeds this
803+
// limit, background release will be performed more aggressively to bring memory usage below the
804+
// limit. If not set, no soft memory limit is applied.
805+
//
806+
// .. note::
807+
// This is currently only supported with tcmalloc and not with ``gperftools``.
808+
//
809+
google.protobuf.UInt64Value soft_memory_limit_bytes = 3;
810+
811+
// Sets the maximum per-CPU cache size in bytes for tcmalloc. Smaller values reduce per-CPU
812+
// memory overhead at the cost of increased contention on the central free list. If not set,
813+
// tcmalloc's default is used.
814+
//
815+
// .. note::
816+
// This is currently only supported with tcmalloc and not with ``gperftools``.
817+
//
818+
google.protobuf.UInt32Value max_per_cpu_cache_size_bytes = 4;
819+
820+
// The threshold of unfreed memory in bytes that triggers the heap shrinker to release memory
821+
// back to the OS. When the difference between physical memory used and application-allocated
822+
// memory exceeds this threshold, free memory is released.
823+
//
824+
// Defaults to ``104857600`` (100 MB).
825+
uint64 max_unfreed_memory_bytes = 5;
826+
}
827+
828+
// A placeholder proto so that users can explicitly configure the standard
829+
// Listener Manager via the bootstrap's :ref:`listener_manager <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.listener_manager>`.
830+
// [#not-implemented-hide:]
831+
message ListenerManager {
832+
}
833+
834+
// A placeholder proto so that users can explicitly configure the standard
835+
// Validation Listener Manager via the bootstrap's :ref:`listener_manager <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.listener_manager>`.
836+
// [#not-implemented-hide:]
837+
message ValidationListenerManager {
838+
}
839+
840+
// A placeholder proto so that users can explicitly configure the API
841+
// Listener Manager via the bootstrap's :ref:`listener_manager <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.listener_manager>`.
842+
// [#not-implemented-hide:]
843+
message ApiListenerManager {
844+
enum ThreadingModel {
845+
// Handle HTTP requests on the main Envoy thread which also processes platform-raised events and runs xDS clients.
846+
MAIN_THREAD_ONLY = 0;
847+
848+
// Handle HTTP requests on a standalone worker thread.
849+
STANDALONE_WORKER_THREAD = 1;
850+
}
851+
852+
// Default to MainThreadOnly.
853+
ThreadingModel threading_model = 1;
786854
}

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package envoy.config.cluster.v3;
55
import "envoy/config/core/v3/base.proto";
66
import "envoy/type/v3/percent.proto";
77

8+
import "google/protobuf/duration.proto";
89
import "google/protobuf/wrappers.proto";
910

1011
import "udpa/annotations/status.proto";
@@ -43,6 +44,25 @@ message CircuitBreakers {
4344
// This parameter is optional. Defaults to 20%.
4445
type.v3.Percent budget_percent = 1;
4546

47+
// An optional duration in which requests will be considered when calculating
48+
// the budget for retries. This parameter alters the way in which the retry budget
49+
// is calculated, overriding the default behavior when specified.
50+
//
51+
// By default, when budget_interval is set to 0ms, only presently active
52+
// and pending requests are considered when calculating the retry budget.
53+
//
54+
// When a non-zero budget_interval is specified, new requests are
55+
// considered for the duration of budget_interval when calculating
56+
// the retry budget.
57+
//
58+
// For example, if 10 requests start at the same time, with a specified budget_interval
59+
// of 100ms, all 10 requests will be considered when calculating the retry
60+
// budget for the next 100ms, regardless of if they have completed.
61+
// All 10 requests will expire after the budget_interval duration.
62+
//
63+
// This parameter is optional. Defaults to 0ms.
64+
google.protobuf.Duration budget_interval = 3;
65+
4666
// Specifies the minimum retry concurrency allowed for the retry budget. The limit on the
4767
// number of active retries may never go below this number.
4868
//

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

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ 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/config/metrics/v3/stats.proto";
17+
import "envoy/type/matcher/v3/metadata.proto";
1618
import "envoy/type/metadata/v3/metadata.proto";
1719
import "envoy/type/v3/percent.proto";
1820

@@ -46,7 +48,7 @@ message ClusterCollection {
4648
}
4749

4850
// Configuration for a single upstream cluster.
49-
// [#next-free-field: 60]
51+
// [#next-free-field: 63]
5052
message Cluster {
5153
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.Cluster";
5254

@@ -753,6 +755,18 @@ message Cluster {
753755
// harm latency more than the preconnecting helps.
754756
google.protobuf.DoubleValue predictive_preconnect_ratio = 2
755757
[(validate.rules).double = {lte: 3.0 gte: 1.0}];
758+
759+
// Restricts anticipatory connections to hosts whose endpoint metadata matches this matcher.
760+
// Non-matching hosts are never preconnected, and instead get connections only on demand, as they
761+
// serve real requests. If unset, all healthy hosts are eligible.
762+
type.matcher.v3.MetadataMatcher preconnect_enabled_metadata = 3;
763+
}
764+
765+
// Queueing policies for the cluster.
766+
message QueuingPolicies {
767+
// Queue policy for cluster pending requests. If unset, Envoy uses the FIFO queue policy.
768+
// [#extension-category: envoy.queue_policy]
769+
core.v3.TypedExtensionConfig pending_rq_policy = 1;
756770
}
757771

758772
reserved 12, 15, 7, 11, 35;
@@ -866,6 +880,12 @@ message Cluster {
866880
// :ref:`Router Filter Header <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
867881
string alt_stat_name = 28 [(udpa.annotations.field_migrate).rename = "observability_name"];
868882

883+
// Optional stats matcher that can be used to configure which stats are instantiated for this
884+
// cluster. If configured, this overrides the bootstrap :ref:`stats_config
885+
// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.stats_config>` stats matcher configuration
886+
// for this cluster.
887+
metrics.v3.StatsMatcher stats_matcher = 61;
888+
869889
oneof cluster_discovery_type {
870890
// The :ref:`service discovery type <arch_overview_service_discovery_types>`
871891
// to use for resolving the cluster.
@@ -887,6 +907,12 @@ message Cluster {
887907
google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5
888908
[(udpa.annotations.security).configure_for_untrusted_upstream = true];
889909

910+
// Optional timeout that controls how long an upstream connection is allowed to stay above the
911+
// configured buffer high watermark before it is closed. If this timeout is not specified, or
912+
// explicitly set to 0, connections will not be closed due to buffer high watermark usage.
913+
google.protobuf.Duration per_connection_buffer_high_watermark_timeout = 60
914+
[(validate.rules).duration = {gte {}}];
915+
890916
// The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
891917
// when picking a host in the cluster.
892918
LbPolicy lb_policy = 6 [(validate.rules).enum = {defined_only: true}];
@@ -1297,6 +1323,9 @@ message Cluster {
12971323
// If ``connection_pool_per_downstream_connection`` is true, the cluster will use a separate
12981324
// connection pool for every downstream connection
12991325
bool connection_pool_per_downstream_connection = 51;
1326+
1327+
// Queueing policies for the cluster (e.g. the queue policy for cluster pending requests).
1328+
QueuingPolicies queuing_policies = 62;
13001329
}
13011330

13021331
// Extensible load balancing policy configuration.
@@ -1343,14 +1372,18 @@ message UpstreamConnectionOptions {
13431372
option (udpa.annotations.versioning).previous_message_type =
13441373
"envoy.api.v2.UpstreamConnectionOptions";
13451374

1375+
// [#comment: Keep this list of address types in sync with api/config/core/v3/address.proto.]
13461376
enum FirstAddressFamilyVersion {
1347-
// respect the native ranking of destination ip addresses returned from dns
1348-
// resolution
1377+
// Use the first address family encountered in the address list.
13491378
DEFAULT = 0;
13501379

13511380
V4 = 1;
13521381

13531382
V6 = 2;
1383+
1384+
PIPE = 3;
1385+
1386+
INTERNAL = 4;
13541387
}
13551388

13561389
message HappyEyeballsConfig {

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,16 @@ 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: 26]
24+
// [#next-free-field: 27]
2525
message OutlierDetection {
2626
option (udpa.annotations.versioning).previous_message_type =
2727
"envoy.api.v2.cluster.OutlierDetection";
2828

2929
// The number of consecutive server-side error responses (for HTTP traffic,
3030
// 5xx responses; for TCP traffic, connection failures; for Redis, failure to
3131
// respond PONG; etc.) before a consecutive 5xx ejection occurs. Defaults to 5.
32+
//
33+
// If set to 0 explicitly, consecutive 5xx ejection will be disabled.
3234
google.protobuf.UInt32Value consecutive_5xx = 1;
3335

3436
// The time interval between ejection analysis sweeps. This can result in
@@ -80,6 +82,8 @@ message OutlierDetection {
8082

8183
// The number of consecutive gateway failures (502, 503, 504 status codes)
8284
// before a consecutive gateway failure ejection occurs. Defaults to 5.
85+
//
86+
// If set to 0 explicitly, consecutive gateway failure ejection will be disabled.
8387
google.protobuf.UInt32Value consecutive_gateway_failure = 10;
8488

8589
// The % chance that a host will be actually ejected when an outlier status
@@ -101,6 +105,8 @@ message OutlierDetection {
101105
// occurs. Defaults to 5. Parameter takes effect only when
102106
// :ref:`split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
103107
// is set to true.
108+
//
109+
// If set to 0 explicitly, consecutive locally originated failure ejection will be disabled.
104110
google.protobuf.UInt32Value consecutive_local_origin_failure = 13;
105111

106112
// The % chance that a host will be actually ejected when an outlier status
@@ -177,4 +183,13 @@ message OutlierDetection {
177183
// 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>`.
178184
// Defaults to false.
179185
google.protobuf.BoolValue always_eject_one_host = 25;
186+
187+
// If set to true, outlier detection will mark hosts as degraded when they return
188+
// the ``x-envoy-degraded`` header.
189+
// Degraded hosts are deprioritized in load balancing but are not ejected from the cluster.
190+
// The degraded state is cleared using the same backoff algorithm as ejection, with the degradation
191+
// period calculated as ``base_ejection_time`` multiplied by the number of times the host
192+
// has been marked as degraded, capped by ``max_ejection_time``.
193+
// Defaults to false.
194+
google.protobuf.BoolValue detect_degraded_hosts = 26;
180195
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ message SocketAddress {
103103
// network namespace.
104104
//
105105
// .. note::
106-
// Setting this parameter requires Envoy to run with the ``CAP_NET_ADMIN`` capability.
106+
// Setting this parameter requires Envoy to run with the ``CAP_SYS_ADMIN`` capability.
107107
//
108108
// .. attention::
109109
// Network namespaces are only configurable on Linux. Otherwise, this field has no effect.
@@ -188,6 +188,7 @@ message BindConfig {
188188
message Address {
189189
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.Address";
190190

191+
// [#comment: Keep this list of address types in sync with UpstreamConnectionOptions.FirstAddressFamilyVersion in api/envoy/config/cluster/v3/cluster.proto.]
191192
oneof address {
192193
option (validate.required) = true;
193194

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,15 @@ message RuntimeUInt32 {
269269
string runtime_key = 3;
270270
}
271271

272+
// Runtime derived uint64 with a default when not specified.
273+
message RuntimeUInt64 {
274+
// Default value if runtime value is not available.
275+
uint64 default_value = 2;
276+
277+
// Runtime key to get value for comparison. This value is used if defined.
278+
string runtime_key = 3;
279+
}
280+
272281
// Runtime derived percentage with a default when not specified.
273282
message RuntimePercent {
274283
// Default value if runtime value is not available.
@@ -493,6 +502,14 @@ message HeaderMap {
493502
message WatchedDirectory {
494503
// Directory path to watch.
495504
string path = 1 [(validate.rules).string = {min_len: 1}];
505+
506+
// If set to true, the watcher will also subscribe to file modification events
507+
// (``IN_MODIFY`` on Linux) in addition to move events (``IN_MOVED_TO``). This allows
508+
// in-place file writes to trigger reload callbacks. Use this when the writing process
509+
// cannot use atomic rename (e.g. certain secret managers that write certificate files
510+
// directly). By default, only move/rename events are watched, which is the safe choice
511+
// for atomic updates (e.g. Kubernetes ConfigMap symlink swaps).
512+
bool watch_modify = 2;
496513
}
497514

498515
// Data source consisting of a file, an inline value, or an environment variable.

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ syntax = "proto3";
33
package envoy.config.core.v3;
44

55
import "envoy/config/core/v3/base.proto";
6+
import "envoy/config/core/v3/extension.proto";
67
import "envoy/config/core/v3/http_uri.proto";
78

89
import "udpa/annotations/status.proto";
@@ -29,7 +30,13 @@ message HttpService {
2930
HttpUri http_uri = 1;
3031

3132
// Specifies a list of HTTP headers that should be added to each request
32-
// handled by this virtual host.
33+
// handled by this virtual host. Substitution formatters are supported.
3334
repeated HeaderValueOption request_headers_to_add = 2
3435
[(validate.rules).repeated = {max_items: 1000}];
36+
37+
// Specifies a collection of Formatter plugins that can be used in substitution formatters
38+
// in ``request_headers_to_add``.
39+
// See the formatters extensions documentation for details.
40+
// [#extension-category: envoy.formatter]
41+
repeated TypedExtensionConfig formatters = 3;
3542
}

0 commit comments

Comments
 (0)