Skip to content

Commit 5b74fd1

Browse files
Updated protobuf definitions (#116)
api: update proto configuration Signed-off-by: Jakub Dyszkiewicz <[email protected]>
1 parent d36705b commit 5b74fd1

File tree

97 files changed

+3540
-531
lines changed

Some content is hidden

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

97 files changed

+3540
-531
lines changed

api/pom.xml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@
2727
<version>${grpc.version}</version>
2828
</dependency>
2929

30+
<dependency>
31+
<groupId>com.google.protobuf</groupId>
32+
<artifactId>protobuf-java</artifactId>
33+
<version>${protobuf.version}</version>
34+
</dependency>
35+
3036
<dependency>
3137
<groupId>javax.annotation</groupId>
3238
<artifactId>javax.annotation-api</artifactId>
@@ -49,9 +55,9 @@
4955
<artifactId>protobuf-maven-plugin</artifactId>
5056
<version>0.6.1</version>
5157
<configuration>
52-
<protocArtifact>com.google.protobuf:protoc:3.5.1-1:exe:${os.detected.classifier}</protocArtifact>
58+
<protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
5359
<pluginId>grpc-java</pluginId>
54-
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.9.0:exe:${os.detected.classifier}</pluginArtifact>
60+
<pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
5561

5662
<useArgumentFile>true</useArgumentFile>
5763
<checkStaleness>true</checkStaleness>

api/src/main/proto/envoy/admin/v2alpha/clusters.proto

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,15 @@ message ClusterStatus {
2828
// Denotes whether this cluster was added via API or configured statically.
2929
bool added_via_api = 2;
3030

31-
// The success rate threshold used in the last interval. The threshold is used to eject hosts
32-
// based on their success rate. See
33-
// :ref:`Cluster outlier detection <arch_overview_outlier_detection>` statistics
31+
// The success rate threshold used in the last interval.
32+
// If
33+
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
34+
// is *false*, all errors: externally and locally generated were used to calculate the threshold.
35+
// If
36+
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
37+
// is *true*, only externally generated errors were used to calculate the threshold.
38+
// The threshold is used to eject hosts based on their success rate. See
39+
// :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for details.
3440
//
3541
// Note: this field may be omitted in any of the three following cases:
3642
//
@@ -43,6 +49,23 @@ message ClusterStatus {
4349

4450
// Mapping from host address to the host's current status.
4551
repeated HostStatus host_statuses = 4;
52+
53+
// The success rate threshold used in the last interval when only locally originated failures were
54+
// taken into account and externally originated errors were treated as success.
55+
// This field should be interpretted only when
56+
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
57+
// is *true*. The threshold is used to eject hosts based on their success rate.
58+
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
59+
// details.
60+
//
61+
// Note: this field may be omitted in any of the three following cases:
62+
//
63+
// 1. There were not enough hosts with enough request volume to proceed with success rate based
64+
// outlier ejection.
65+
// 2. The threshold is computed to be < 0 because a negative value implies that there was no
66+
// threshold for that interval.
67+
// 3. Outlier detection is not enabled for this cluster.
68+
envoy.type.Percent local_origin_success_rate_ejection_threshold = 5;
4669
}
4770

4871
// Current state of a particular host.
@@ -57,6 +80,14 @@ message HostStatus {
5780
HostHealthStatus health_status = 3;
5881

5982
// Request success rate for this host over the last calculated interval.
83+
// If
84+
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
85+
// is *false*, all errors: externally and locally generated were used in success rate
86+
// calculation. If
87+
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
88+
// is *true*, only externally generated errors were used in success rate calculation.
89+
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
90+
// details.
6091
//
6192
// Note: the message will not be present if host did not have enough request volume to calculate
6293
// success rate or the cluster did not have enough hosts to run through success rate outlier
@@ -65,6 +96,26 @@ message HostStatus {
6596

6697
// The host's weight. If not configured, the value defaults to 1.
6798
uint32 weight = 5;
99+
100+
// The hostname of the host, if applicable.
101+
string hostname = 6;
102+
103+
// The host's priority. If not configured, the value defaults to 0 (highest priority).
104+
uint32 priority = 7;
105+
106+
// Request success rate for this host over the last calculated
107+
// interval when only locally originated errors are taken into account and externally originated
108+
// errors were treated as success.
109+
// This field should be interpretted only when
110+
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
111+
// is *true*.
112+
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
113+
// details.
114+
//
115+
// Note: the message will not be present if host did not have enough request volume to calculate
116+
// success rate or the cluster did not have enough hosts to run through success rate outlier
117+
// ejection.
118+
envoy.type.Percent local_origin_success_rate = 8;
68119
}
69120

70121
// Health status for a host.
@@ -78,6 +129,13 @@ message HostHealthStatus {
78129
// The host is currently being marked as degraded through active health checking.
79130
bool failed_active_degraded_check = 4;
80131

132+
// The host has been removed from service discovery, but is being stabilized due to active
133+
// health checking.
134+
bool pending_dynamic_removal = 5;
135+
136+
// The host has not yet been health checked.
137+
bool pending_active_hc = 6;
138+
81139
// Health status as reported by EDS. Note: only HEALTHY and UNHEALTHY are currently supported
82140
// here.
83141
// TODO(mrice32): pipe through remaining EDS health status possibilities.

api/src/main/proto/envoy/admin/v2alpha/config_dump.proto

Lines changed: 98 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ option java_outer_classname = "ConfigDumpProto";
66
option java_multiple_files = true;
77
option java_package = "io.envoyproxy.envoy.admin.v2alpha";
88

9+
import "envoy/api/v2/auth/cert.proto";
910
import "envoy/api/v2/cds.proto";
1011
import "envoy/api/v2/lds.proto";
1112
import "envoy/api/v2/rds.proto";
13+
import "envoy/api/v2/srds.proto";
1214
import "envoy/config/bootstrap/v2/bootstrap.proto";
1315

1416
import "google/protobuf/any.proto";
@@ -31,15 +33,15 @@ message ConfigDump {
3133
// * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v2alpha.ClustersConfigDump>`
3234
// * *listeners*: :ref:`ListenersConfigDump <envoy_api_msg_admin.v2alpha.ListenersConfigDump>`
3335
// * *routes*: :ref:`RoutesConfigDump <envoy_api_msg_admin.v2alpha.RoutesConfigDump>`
34-
repeated google.protobuf.Any configs = 1 [(gogoproto.nullable) = false];
36+
repeated google.protobuf.Any configs = 1;
3537
}
3638

3739
// This message describes the bootstrap configuration that Envoy was started with. This includes
3840
// any CLI overrides that were merged. Bootstrap configuration information can be used to recreate
3941
// the static portions of an Envoy configuration by reusing the output as the bootstrap
4042
// configuration for another Envoy.
4143
message BootstrapConfigDump {
42-
envoy.config.bootstrap.v2.Bootstrap bootstrap = 1 [(gogoproto.nullable) = false];
44+
envoy.config.bootstrap.v2.Bootstrap bootstrap = 1;
4345

4446
// The timestamp when the BootstrapConfig was last updated.
4547
google.protobuf.Timestamp last_updated = 2;
@@ -54,7 +56,7 @@ message ListenersConfigDump {
5456
// will be "".
5557
string version_info = 1;
5658

57-
// Describes a statically loaded cluster.
59+
// Describes a statically loaded listener.
5860
message StaticListener {
5961
// The listener config.
6062
envoy.api.v2.Listener listener = 1;
@@ -79,23 +81,23 @@ message ListenersConfigDump {
7981
}
8082

8183
// The statically loaded listener configs.
82-
repeated StaticListener static_listeners = 2 [(gogoproto.nullable) = false];
84+
repeated StaticListener static_listeners = 2;
8385

8486
// The dynamically loaded active listeners. These are listeners that are available to service
8587
// data plane traffic.
86-
repeated DynamicListener dynamic_active_listeners = 3 [(gogoproto.nullable) = false];
88+
repeated DynamicListener dynamic_active_listeners = 3;
8789

8890
// The dynamically loaded warming listeners. These are listeners that are currently undergoing
8991
// warming in preparation to service data plane traffic. Note that if attempting to recreate an
9092
// Envoy configuration from a configuration dump, the warming listeners should generally be
9193
// discarded.
92-
repeated DynamicListener dynamic_warming_listeners = 4 [(gogoproto.nullable) = false];
94+
repeated DynamicListener dynamic_warming_listeners = 4;
9395

9496
// The dynamically loaded draining listeners. These are listeners that are currently undergoing
9597
// draining in preparation to stop servicing data plane traffic. Note that if attempting to
9698
// recreate an Envoy configuration from a configuration dump, the draining listeners should
9799
// generally be discarded.
98-
repeated DynamicListener dynamic_draining_listeners = 5 [(gogoproto.nullable) = false];
100+
repeated DynamicListener dynamic_draining_listeners = 5;
99101
}
100102

101103
// Envoy's cluster manager fills this message with all currently known clusters. Cluster
@@ -132,17 +134,17 @@ message ClustersConfigDump {
132134
}
133135

134136
// The statically loaded cluster configs.
135-
repeated StaticCluster static_clusters = 2 [(gogoproto.nullable) = false];
137+
repeated StaticCluster static_clusters = 2;
136138

137139
// The dynamically loaded active clusters. These are clusters that are available to service
138140
// data plane traffic.
139-
repeated DynamicCluster dynamic_active_clusters = 3 [(gogoproto.nullable) = false];
141+
repeated DynamicCluster dynamic_active_clusters = 3;
140142

141143
// The dynamically loaded warming clusters. These are clusters that are currently undergoing
142144
// warming in preparation to service data plane traffic. Note that if attempting to recreate an
143145
// Envoy configuration from a configuration dump, the warming clusters should generally be
144146
// discarded.
145-
repeated DynamicCluster dynamic_warming_clusters = 4 [(gogoproto.nullable) = false];
147+
repeated DynamicCluster dynamic_warming_clusters = 4;
146148
}
147149

148150
// Envoy's RDS implementation fills this message with all currently loaded routes, as described by
@@ -173,8 +175,92 @@ message RoutesConfigDump {
173175
}
174176

175177
// The statically loaded route configs.
176-
repeated StaticRouteConfig static_route_configs = 2 [(gogoproto.nullable) = false];
178+
repeated StaticRouteConfig static_route_configs = 2;
177179

178180
// The dynamically loaded route configs.
179-
repeated DynamicRouteConfig dynamic_route_configs = 3 [(gogoproto.nullable) = false];
181+
repeated DynamicRouteConfig dynamic_route_configs = 3;
182+
}
183+
184+
// Envoy's scoped RDS implementation fills this message with all currently loaded route
185+
// configuration scopes (defined via ScopedRouteConfigurationsSet protos). This message lists both
186+
// the scopes defined inline with the higher order object (i.e., the HttpConnectionManager) and the
187+
// dynamically obtained scopes via the SRDS API.
188+
message ScopedRoutesConfigDump {
189+
message InlineScopedRouteConfigs {
190+
// The name assigned to the scoped route configurations.
191+
string name = 1;
192+
193+
// The scoped route configurations.
194+
repeated envoy.api.v2.ScopedRouteConfiguration scoped_route_configs = 2;
195+
196+
// The timestamp when the scoped route config set was last updated.
197+
google.protobuf.Timestamp last_updated = 3;
198+
}
199+
200+
message DynamicScopedRouteConfigs {
201+
// The name assigned to the scoped route configurations.
202+
string name = 1;
203+
204+
// This is the per-resource version information. This version is currently taken from the
205+
// :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time that
206+
// the scoped routes configuration was loaded.
207+
string version_info = 2;
208+
209+
// The scoped route configurations.
210+
repeated envoy.api.v2.ScopedRouteConfiguration scoped_route_configs = 3;
211+
212+
// The timestamp when the scoped route config set was last updated.
213+
google.protobuf.Timestamp last_updated = 4;
214+
}
215+
216+
// The statically loaded scoped route configs.
217+
repeated InlineScopedRouteConfigs inline_scoped_route_configs = 1;
218+
219+
// The dynamically loaded scoped route configs.
220+
repeated DynamicScopedRouteConfigs dynamic_scoped_route_configs = 2;
221+
}
222+
223+
// Envoys SDS implementation fills this message with all secrets fetched dynamically via SDS.
224+
message SecretsConfigDump {
225+
// DynamicSecret contains secret information fetched via SDS.
226+
message DynamicSecret {
227+
// The name assigned to the secret.
228+
string name = 1;
229+
230+
// This is the per-resource version information.
231+
string version_info = 2;
232+
233+
// The timestamp when the secret was last updated.
234+
google.protobuf.Timestamp last_updated = 3;
235+
236+
// The actual secret information.
237+
// Security sensitive information is redacted (replaced with "[redacted]") for
238+
// private keys and passwords in TLS certificates.
239+
envoy.api.v2.auth.Secret secret = 4;
240+
}
241+
242+
// StaticSecret specifies statically loaded secret in bootstrap.
243+
message StaticSecret {
244+
// The name assigned to the secret.
245+
string name = 1;
246+
247+
// The timestamp when the secret was last updated.
248+
google.protobuf.Timestamp last_updated = 2;
249+
250+
// The actual secret information.
251+
// Security sensitive information is redacted (replaced with "[redacted]") for
252+
// private keys and passwords in TLS certificates.
253+
envoy.api.v2.auth.Secret secret = 3;
254+
}
255+
256+
// The statically loaded secrets.
257+
repeated StaticSecret static_secrets = 1;
258+
259+
// The dynamically loaded active secrets. These are secrets that are available to service
260+
// clusters or listeners.
261+
repeated DynamicSecret dynamic_active_secrets = 2;
262+
263+
// The dynamically loaded warming secrets. These are secrets that are currently undergoing
264+
// warming in preparation to service clusters or listeners.
265+
repeated DynamicSecret dynamic_warming_secrets = 3;
180266
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
syntax = "proto3";
2+
3+
package envoy.admin.v2alpha;
4+
5+
option java_outer_classname = "ListenersProto";
6+
option java_multiple_files = true;
7+
option java_package = "io.envoyproxy.envoy.admin.v2alpha";
8+
9+
import "envoy/api/v2/core/address.proto";
10+
11+
// [#protodoc-title: Listeners]
12+
13+
// Admin endpoint uses this wrapper for `/listeners` to display listener status information.
14+
// See :ref:`/listeners <operations_admin_interface_listeners>` for more information.
15+
message Listeners {
16+
// List of listener statuses.
17+
repeated ListenerStatus listener_statuses = 1;
18+
}
19+
20+
// Details an individual listener's current status.
21+
message ListenerStatus {
22+
// Name of the listener
23+
string name = 1;
24+
25+
// The actual local address that the listener is listening on. If a listener was configured
26+
// to listen on port 0, then this address has the port that was allocated by the OS.
27+
envoy.api.v2.core.Address local_address = 2;
28+
}

api/src/main/proto/envoy/admin/v2alpha/memory.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ option java_package = "io.envoyproxy.envoy.admin.v2alpha";
1010

1111
// Proto representation of the internal memory consumption of an Envoy instance. These represent
1212
// values extracted from an internal TCMalloc instance. For more information, see the section of the
13-
// docs entitled ["Generic Tcmalloc Status"](http://gperftools.github.io/gperftools/tcmalloc.html).
13+
// docs entitled ["Generic Tcmalloc Status"](https://gperftools.github.io/gperftools/tcmalloc.html).
1414
message Memory {
1515

1616
// The number of bytes allocated by the heap for Envoy. This is an alias for

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,9 @@ message CommandLineOptions {
114114
// See :option:`--mode` for details.
115115
Mode mode = 19;
116116

117-
// See :option:`--max-stats` for details.
118-
uint64 max_stats = 20;
119-
120-
// See :option:`--max-obj-name-len` for details.
121-
uint64 max_obj_name_len = 21;
117+
// max_stats and max_obj_name_len are now unused and have no effect.
118+
uint64 max_stats = 20 [deprecated = true];
119+
uint64 max_obj_name_len = 21 [deprecated = true];
122120

123121
// See :option:`--disable-hot-restart` for details.
124122
bool disable_hot_restart = 22;
@@ -128,4 +126,7 @@ message CommandLineOptions {
128126

129127
// See :option:`--restart-epoch` for details.
130128
uint32 restart_epoch = 24;
129+
130+
// See :option:`--cpuset-threads` for details.
131+
bool cpuset_threads = 25;
131132
}

api/src/main/proto/envoy/api/v2/auth/cert.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ message CertificateValidationContext {
248248
google.protobuf.BoolValue require_signed_certificate_timestamp = 6;
249249

250250
// An optional `certificate revocation list
251-
// <http://https://en.wikipedia.org/wiki/Certificate_revocation_list>`_
251+
// <https://en.wikipedia.org/wiki/Certificate_revocation_list>`_
252252
// (in PEM format). If specified, Envoy will verify that the presented peer
253253
// certificate has not been revoked by this CRL. If this DataSource contains
254254
// multiple CRLs, all of them will be used.

0 commit comments

Comments
 (0)