Skip to content

Commit 5878103

Browse files
CONNECT-2370: Update protos in envoy api (#13)
* Update api_shas * Update dependencies
1 parent 02a519f commit 5878103

File tree

133 files changed

+3295
-1166
lines changed

Some content is hidden

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

133 files changed

+3295
-1166
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ The `tools` directory follows https://github.com/envoyproxy/java-control-plane/c
1919
8. You may need to add or remove protos depending on the failures and you would want to refer to the bazel dependencies file to figure out what failed, finally udpate the scripts to have the change.
2020

2121
Note: until we catch up with Envoy head version, slight adjustments might be needed for these scripts, towards matching upstream more closely.
22+
https://github.com/envoyproxy/envoy/blob/6fe1905459ff267a43a8a26d042ae03a8aa7bc98/api/bazel/repository_locations.bzl

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version=1.31.8-1
1+
version=1.34.4-1
22
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

src/main/proto/contrib/envoy/extensions/filters/http/golang/v3alpha/golang.proto

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ syntax = "proto3";
22

33
package envoy.extensions.filters.http.golang.v3alpha;
44

5+
import "envoy/extensions/transport_sockets/tls/v3/secret.proto";
6+
57
import "google/protobuf/any.proto";
68

79
import "xds/annotations/v3/status.proto";
@@ -21,7 +23,7 @@ option (xds.annotations.v3.file_status).work_in_progress = true;
2123
// For an overview of the Golang HTTP filter please see the :ref:`configuration reference documentation <config_http_filters_golang>`.
2224
// [#extension: envoy.filters.http.golang]
2325

24-
// [#next-free-field: 6]
26+
// [#next-free-field: 7]
2527
message Config {
2628
// The meanings are as follows:
2729
//
@@ -74,6 +76,13 @@ message Config {
7476
//
7577
// [#not-implemented-hide:]
7678
MergePolicy merge_policy = 5 [(validate.rules).enum = {defined_only: true}];
79+
80+
// Generic secret list available to the plugin.
81+
// Looks into SDS or static bootstrap configuration.
82+
//
83+
// See :repo:`StreamFilter API <contrib/golang/common/go/api/filter.go>`
84+
// for more information about how to access secrets from Go.
85+
repeated transport_sockets.tls.v3.SdsSecretConfig generic_secrets = 6;
7786
}
7887

7988
message RouterPlugin {

src/main/proto/contrib/envoy/extensions/filters/network/kafka_broker/v3/kafka_broker.proto

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
1515
// [#protodoc-title: Kafka Broker]
1616
// Kafka Broker :ref:`configuration overview <config_network_filters_kafka_broker>`.
1717
// [#extension: envoy.filters.network.kafka_broker]
18-
18+
// [#next-free-field: 6]
1919
message KafkaBroker {
2020
option (udpa.annotations.versioning).previous_message_type =
2121
"envoy.config.filter.network.kafka_broker.v2alpha1.KafkaBroker";
@@ -39,6 +39,16 @@ message KafkaBroker {
3939
// Broker address rewrite rules that match by broker ID.
4040
IdBasedBrokerRewriteSpec id_based_broker_address_rewrite_spec = 3;
4141
}
42+
43+
// Optional list of allowed Kafka API keys. Only requests with provided API keys will be
44+
// routed, otherwise the connection will be closed. No effect if empty.
45+
repeated uint32 api_keys_allowed = 4
46+
[(validate.rules).repeated = {items {uint32 {lte: 32767 gte: 0}}}];
47+
48+
// Optional list of denied Kafka API keys. Requests with API keys matching this list will have
49+
// the connection closed. No effect if empty.
50+
repeated uint32 api_keys_denied = 5
51+
[(validate.rules).repeated = {items {uint32 {lte: 32767 gte: 0}}}];
4252
}
4353

4454
// Collection of rules matching by broker ID.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
syntax = "proto3";
2+
3+
package envoy.extensions.tap_sinks.udp_sink.v3alpha;
4+
5+
import "envoy/config/core/v3/address.proto";
6+
7+
import "udpa/annotations/status.proto";
8+
9+
option java_package = "io.envoyproxy.envoy.extensions.tap_sinks.udp_sink.v3alpha";
10+
option java_outer_classname = "UdpSinkProto";
11+
option java_multiple_files = true;
12+
option go_package = "github.com/envoyproxy/go-control-plane/contrib/envoy/extensions/tap_sinks/udp_sink/v3alpha";
13+
option (udpa.annotations.file_status).package_version_status = ACTIVE;
14+
15+
// [#protodoc-title: Udp sink configuration]
16+
// [#extension: envoy.tap_sinks.udp_sink]
17+
18+
// Udp sink configuration.
19+
message UdpSink {
20+
// Configure UDP Address.
21+
config.core.v3.SocketAddress udp_address = 1;
22+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
syntax = "proto3";
2+
3+
package envoy.extensions.upstreams.http.tcp.golang.v3alpha;
4+
5+
import "google/protobuf/any.proto";
6+
7+
import "xds/annotations/v3/status.proto";
8+
9+
import "udpa/annotations/status.proto";
10+
import "validate/validate.proto";
11+
12+
option java_package = "io.envoyproxy.envoy.extensions.upstreams.http.tcp.golang.v3alpha";
13+
option java_outer_classname = "GolangProto";
14+
option java_multiple_files = true;
15+
option go_package = "github.com/envoyproxy/go-control-plane/contrib/envoy/extensions/upstreams/http/tcp/golang/v3alpha";
16+
option (udpa.annotations.file_status).package_version_status = ACTIVE;
17+
option (xds.annotations.v3.file_status).work_in_progress = true;
18+
19+
// [#protodoc-title: Golang]
20+
//
21+
// This bridge enables an Http client to connect to a TCP server via a Golang plugin, facilitating Protocol Convert from HTTP to any RPC protocol in Envoy.
22+
//
23+
// For an overview of the Golang HTTP TCP bridge please see the :ref:`configuration reference documentation <config_http_tcp_bridge_golang>`.
24+
// [#extension: envoy.upstreams.http.tcp.golang]
25+
26+
// [#extension-category: envoy.upstreams]
27+
message Config {
28+
// Globally unique ID for a dynamic library file.
29+
string library_id = 1 [(validate.rules).string = {min_len: 1}];
30+
31+
// Path to a dynamic library implementing the
32+
// :repo:`HttpTcpBridge API <contrib/golang/common/go/api.HttpTcpBridge>`
33+
// interface.
34+
string library_path = 2 [(validate.rules).string = {min_len: 1}];
35+
36+
// Globally unique name of the Go plugin.
37+
//
38+
// This name **must** be consistent with the name registered in ``tcp::RegisterHttpTcpBridgeFactoryAndConfigParser``
39+
//
40+
string plugin_name = 3 [(validate.rules).string = {min_len: 1}];
41+
42+
// Configuration for the Go plugin.
43+
//
44+
// .. note::
45+
// This configuration is only parsed in the Golang plugin, and is therefore not validated
46+
// by Envoy.
47+
//
48+
// See the :repo:`HttpTcpBridge API <contrib/golang/common/go/api/filter.go>`
49+
// for more information about how the plugin's configuration data can be accessed.
50+
//
51+
google.protobuf.Any plugin_config = 4;
52+
}

src/main/proto/envoy/admin/v3/clusters.proto

Lines changed: 51 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,24 @@ message ClusterStatus {
4141
bool added_via_api = 2;
4242

4343
// The success rate threshold used in the last interval.
44-
// If
45-
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
46-
// is ``false``, all errors: externally and locally generated were used to calculate the threshold.
47-
// If
48-
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
49-
// is ``true``, only externally generated errors were used to calculate the threshold.
50-
// The threshold is used to eject hosts based on their success rate. See
51-
// :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for details.
5244
//
53-
// Note: this field may be omitted in any of the three following cases:
45+
// * If :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
46+
// is ``false``, all errors: externally and locally generated were used to calculate the threshold.
47+
// * If :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
48+
// is ``true``, only externally generated errors were used to calculate the threshold.
49+
//
50+
// The threshold is used to eject hosts based on their success rate. For more information, see the
51+
// :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation.
52+
//
53+
// .. note::
54+
//
55+
// This field may be omitted in any of the three following cases:
56+
//
57+
// 1. There were not enough hosts with enough request volume to proceed with success rate based outlier ejection.
58+
// 2. The threshold is computed to be < 0 because a negative value implies that there was no threshold for that
59+
// interval.
60+
// 3. Outlier detection is not enabled for this cluster.
5461
//
55-
// 1. There were not enough hosts with enough request volume to proceed with success rate based
56-
// outlier ejection.
57-
// 2. The threshold is computed to be < 0 because a negative value implies that there was no
58-
// threshold for that interval.
59-
// 3. Outlier detection is not enabled for this cluster.
6062
type.v3.Percent success_rate_ejection_threshold = 3;
6163

6264
// Mapping from host address to the host's current status.
@@ -67,16 +69,18 @@ message ClusterStatus {
6769
// This field should be interpreted only when
6870
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
6971
// is ``true``. The threshold is used to eject hosts based on their success rate.
70-
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
71-
// details.
7272
//
73-
// Note: this field may be omitted in any of the three following cases:
73+
// For more information, see the :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation.
74+
//
75+
// .. note::
76+
//
77+
// This field may be omitted in any of the three following cases:
78+
//
79+
// 1. There were not enough hosts with enough request volume to proceed with success rate based outlier ejection.
80+
// 2. The threshold is computed to be < 0 because a negative value implies that there was no threshold for that
81+
// interval.
82+
// 3. Outlier detection is not enabled for this cluster.
7483
//
75-
// 1. There were not enough hosts with enough request volume to proceed with success rate based
76-
// outlier ejection.
77-
// 2. The threshold is computed to be < 0 because a negative value implies that there was no
78-
// threshold for that interval.
79-
// 3. Outlier detection is not enabled for this cluster.
8084
type.v3.Percent local_origin_success_rate_ejection_threshold = 5;
8185

8286
// :ref:`Circuit breaking <arch_overview_circuit_break>` settings of the cluster.
@@ -103,19 +107,20 @@ message HostStatus {
103107
// The host's current health status.
104108
HostHealthStatus health_status = 3;
105109

106-
// Request success rate for this host over the last calculated interval.
107-
// If
108-
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
109-
// is ``false``, all errors: externally and locally generated were used in success rate
110-
// calculation. If
111-
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
112-
// is ``true``, only externally generated errors were used in success rate calculation.
113-
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
114-
// details.
110+
// The success rate for this host during the last measurement interval.
111+
//
112+
// * If :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
113+
// is ``false``, all errors: externally and locally generated were used in success rate calculation.
114+
// * If :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
115+
// is ``true``, only externally generated errors were used in success rate calculation.
116+
//
117+
// For more information, see the :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation.
118+
//
119+
// .. note::
120+
//
121+
// The message will be missing if the host didn't receive enough traffic to calculate a reliable success rate, or
122+
// if the cluster had too few hosts to apply outlier ejection based on success rate.
115123
//
116-
// Note: the message will not be present if host did not have enough request volume to calculate
117-
// success rate or the cluster did not have enough hosts to run through success rate outlier
118-
// ejection.
119124
type.v3.Percent success_rate = 4;
120125

121126
// The host's weight. If not configured, the value defaults to 1.
@@ -127,18 +132,20 @@ message HostStatus {
127132
// The host's priority. If not configured, the value defaults to 0 (highest priority).
128133
uint32 priority = 7;
129134

130-
// Request success rate for this host over the last calculated
131-
// interval when only locally originated errors are taken into account and externally originated
132-
// errors were treated as success.
133-
// This field should be interpreted only when
135+
// The success rate for this host during the last interval, considering only locally generated errors. Externally
136+
// generated errors are treated as successes.
137+
//
138+
// This field is only relevant when
134139
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
135-
// is ``true``.
136-
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
137-
// details.
140+
// is set to ``true``.
141+
//
142+
// For more information, see the :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation.
143+
//
144+
// .. note::
145+
//
146+
// The message will be missing if the host didn’t receive enough traffic to compute a success rate, or if the
147+
// cluster didn’t have enough hosts to perform outlier ejection based on success rate.
138148
//
139-
// Note: the message will not be present if host did not have enough request volume to calculate
140-
// success rate or the cluster did not have enough hosts to run through success rate outlier
141-
// ejection.
142149
type.v3.Percent local_origin_success_rate = 8;
143150

144151
// locality of the host.

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 {

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: 41]
62+
// [#next-free-field: 42]
6363
message CommandLineOptions {
6464
option (udpa.annotations.versioning).previous_message_type =
6565
"envoy.admin.v2alpha.CommandLineOptions";
@@ -125,6 +125,9 @@ message CommandLineOptions {
125125
// See :option:`--ignore-unknown-dynamic-fields` for details.
126126
bool ignore_unknown_dynamic_fields = 30;
127127

128+
// See :option:`--skip-deprecated-logs` for details.
129+
bool skip_deprecated_logs = 41;
130+
128131
// See :option:`--admin-address-path` for details.
129132
string admin_address_path = 6;
130133

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
}];

0 commit comments

Comments
 (0)