Skip to content

Commit 59f6860

Browse files
authored
Bump Envoy API to 1.18 (#6)
Used the 1.18.6 tip-of-minor patch version, see README. Updated the scripts to be more in line with upstream.
1 parent 65adc6c commit 59f6860

File tree

227 files changed

+4170
-707
lines changed

Some content is hidden

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

227 files changed

+4170
-707
lines changed

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
.idea
22
*.iml
33
build
4-
logs
54
*.log
65
.gradle
76
application.pid
@@ -10,4 +9,4 @@ gen/
109
.jqwik-database
1110
.classpath
1211
.project
13-
bin/
12+
bin/

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,17 @@ This builds a grpc library for the envoy xDS API.
44

55
## Versioning
66
Major and minor version follow the envoy version against which they are built. The patch version is this library's patch version. Use the latest patch version for the envoy major.minor you run, e.g. use the latest 1.17.x for this library if you run envoy 1.17.y, regardless of what y is.
7+
8+
## Building
9+
10+
The `tools` directory follows https://github.com/envoyproxy/java-control-plane/commits/main/tools as closely as possible.
11+
12+
1. Update the `API_SHAS` (which are not really just SHAs): run `update-sha.sh MAJOR.MINOR.PATCH`, paste the end of its output to `API_SHAS`.
13+
14+
1. Update the proto files using `update-api.sh`. This will remove the old `src/main/proto` and fetch a new set of protos.
15+
16+
1. Bump the library version accoring to `Versioning` above in `gradle.properties`.
17+
18+
1. Now it should build on CI. Can try locally using `./gradlew assemble`, but see GHA workflow for specific steps.
19+
20+
Note: until we catch up with Envoy head version, slight adjustments might be needed for these scripts, towards matching upstream more closely.

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ java {
3737
}
3838

3939
def grpcVersion = '1.45.1'
40-
def protobufVersion = '3.19.2'
40+
def protobufVersion = '3.20.1'
4141
def protocVersion = protobufVersion
4242

4343
dependencies {

gradle.properties

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

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ message Clusters {
2929
}
3030

3131
// Details an individual cluster's current status.
32-
// [#next-free-field: 7]
32+
// [#next-free-field: 8]
3333
message ClusterStatus {
3434
option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v2alpha.ClusterStatus";
3535

@@ -80,6 +80,9 @@ message ClusterStatus {
8080

8181
// :ref:`Circuit breaking <arch_overview_circuit_break>` settings of the cluster.
8282
config.cluster.v3.CircuitBreakers circuit_breakers = 6;
83+
84+
// Observability name of the cluster.
85+
string observability_name = 7;
8386
}
8487

8588
// Current state of a particular host.
@@ -139,7 +142,7 @@ message HostStatus {
139142
}
140143

141144
// Health status for a host.
142-
// [#next-free-field: 7]
145+
// [#next-free-field: 9]
143146
message HostHealthStatus {
144147
option (udpa.annotations.versioning).previous_message_type =
145148
"envoy.admin.v2alpha.HostHealthStatus";
@@ -160,6 +163,13 @@ message HostHealthStatus {
160163
// The host has not yet been health checked.
161164
bool pending_active_hc = 6;
162165

166+
// The host should be excluded from panic, spillover, etc. calculations because it was explicitly
167+
// taken out of rotation via protocol signal and is not meant to be routed to.
168+
bool excluded_via_immediate_hc_fail = 7;
169+
170+
// The host failed active HC due to timeout.
171+
bool active_hc_timeout = 8;
172+
163173
// Health status as reported by EDS. Note: only HEALTHY and UNHEALTHY are currently supported
164174
// here.
165175
// [#comment:TODO(mrice32): pipe through remaining EDS health status possibilities.]

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

Lines changed: 98 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,31 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
1717

1818
// [#protodoc-title: ConfigDump]
1919

20+
// Resource status from the view of a xDS client, which tells the synchronization
21+
// status between the xDS client and the xDS server.
22+
enum ClientResourceStatus {
23+
// Resource status is not available/unknown.
24+
UNKNOWN = 0;
25+
26+
// Client requested this resource but hasn't received any update from management
27+
// server. The client will not fail requests, but will queue them until update
28+
// arrives or the client times out waiting for the resource.
29+
REQUESTED = 1;
30+
31+
// This resource has been requested by the client but has either not been
32+
// delivered by the server or was previously delivered by the server and then
33+
// subsequently removed from resources provided by the server. For more
34+
// information, please refer to the :ref:`"Knowing When a Requested Resource
35+
// Does Not Exist" <xds_protocol_resource_not_existed>` section.
36+
DOES_NOT_EXIST = 2;
37+
38+
// Client received this resource and replied with ACK.
39+
ACKED = 3;
40+
41+
// Client received this resource and replied with NACK.
42+
NACKED = 4;
43+
}
44+
2045
// The :ref:`/config_dump <operations_admin_interface_config_dump>` admin endpoint uses this wrapper
2146
// message to maintain and serve arbitrary configuration information from any component in Envoy.
2247
message ConfigDump {
@@ -49,13 +74,18 @@ message UpdateFailureState {
4974
"envoy.admin.v2alpha.UpdateFailureState";
5075

5176
// What the component configuration would have been if the update had succeeded.
77+
// This field may not be populated by xDS clients due to storage overhead.
5278
google.protobuf.Any failed_configuration = 1;
5379

5480
// Time of the latest failed update attempt.
5581
google.protobuf.Timestamp last_update_attempt = 2;
5682

5783
// Details about the last failed update attempt.
5884
string details = 3;
85+
86+
// This is the version of the rejected resource.
87+
// [#not-implemented-hide:]
88+
string version_info = 4;
5989
}
6090

6191
// This message describes the bootstrap configuration that Envoy was started with. This includes
@@ -109,7 +139,7 @@ message ListenersConfigDump {
109139
}
110140

111141
// Describes a dynamically loaded listener via the LDS API.
112-
// [#next-free-field: 6]
142+
// [#next-free-field: 7]
113143
message DynamicListener {
114144
option (udpa.annotations.versioning).previous_message_type =
115145
"envoy.admin.v2alpha.ListenersConfigDump.DynamicListener";
@@ -134,7 +164,14 @@ message ListenersConfigDump {
134164
DynamicListenerState draining_state = 4;
135165

136166
// Set if the last update failed, cleared after the next successful update.
167+
// The *error_state* field contains the rejected version of this particular
168+
// resource along with the reason and timestamp. For successfully updated or
169+
// acknowledged resource, this field should be empty.
137170
UpdateFailureState error_state = 5;
171+
172+
// The client status of this resource.
173+
// [#not-implemented-hide:]
174+
ClientResourceStatus client_status = 6;
138175
}
139176

140177
// This is the :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
@@ -169,6 +206,7 @@ message ClustersConfigDump {
169206
}
170207

171208
// Describes a dynamically loaded cluster via the CDS API.
209+
// [#next-free-field: 6]
172210
message DynamicCluster {
173211
option (udpa.annotations.versioning).previous_message_type =
174212
"envoy.admin.v2alpha.ClustersConfigDump.DynamicCluster";
@@ -184,6 +222,17 @@ message ClustersConfigDump {
184222

185223
// The timestamp when the Cluster was last updated.
186224
google.protobuf.Timestamp last_updated = 3;
225+
226+
// Set if the last update failed, cleared after the next successful update.
227+
// The *error_state* field contains the rejected version of this particular
228+
// resource along with the reason and timestamp. For successfully updated or
229+
// acknowledged resource, this field should be empty.
230+
// [#not-implemented-hide:]
231+
UpdateFailureState error_state = 4;
232+
233+
// The client status of this resource.
234+
// [#not-implemented-hide:]
235+
ClientResourceStatus client_status = 5;
187236
}
188237

189238
// This is the :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
@@ -225,6 +274,7 @@ message RoutesConfigDump {
225274
google.protobuf.Timestamp last_updated = 2;
226275
}
227276

277+
// [#next-free-field: 6]
228278
message DynamicRouteConfig {
229279
option (udpa.annotations.versioning).previous_message_type =
230280
"envoy.admin.v2alpha.RoutesConfigDump.DynamicRouteConfig";
@@ -239,6 +289,17 @@ message RoutesConfigDump {
239289

240290
// The timestamp when the Route was last updated.
241291
google.protobuf.Timestamp last_updated = 3;
292+
293+
// Set if the last update failed, cleared after the next successful update.
294+
// The *error_state* field contains the rejected version of this particular
295+
// resource along with the reason and timestamp. For successfully updated or
296+
// acknowledged resource, this field should be empty.
297+
// [#not-implemented-hide:]
298+
UpdateFailureState error_state = 4;
299+
300+
// The client status of this resource.
301+
// [#not-implemented-hide:]
302+
ClientResourceStatus client_status = 5;
242303
}
243304

244305
// The statically loaded route configs.
@@ -270,6 +331,7 @@ message ScopedRoutesConfigDump {
270331
google.protobuf.Timestamp last_updated = 3;
271332
}
272333

334+
// [#next-free-field: 7]
273335
message DynamicScopedRouteConfigs {
274336
option (udpa.annotations.versioning).previous_message_type =
275337
"envoy.admin.v2alpha.ScopedRoutesConfigDump.DynamicScopedRouteConfigs";
@@ -287,6 +349,17 @@ message ScopedRoutesConfigDump {
287349

288350
// The timestamp when the scoped route config set was last updated.
289351
google.protobuf.Timestamp last_updated = 4;
352+
353+
// Set if the last update failed, cleared after the next successful update.
354+
// The *error_state* field contains the rejected version of this particular
355+
// resource along with the reason and timestamp. For successfully updated or
356+
// acknowledged resource, this field should be empty.
357+
// [#not-implemented-hide:]
358+
UpdateFailureState error_state = 5;
359+
360+
// The client status of this resource.
361+
// [#not-implemented-hide:]
362+
ClientResourceStatus client_status = 6;
290363
}
291364

292365
// The statically loaded scoped route configs.
@@ -302,6 +375,7 @@ message SecretsConfigDump {
302375
"envoy.admin.v2alpha.SecretsConfigDump";
303376

304377
// DynamicSecret contains secret information fetched via SDS.
378+
// [#next-free-field: 7]
305379
message DynamicSecret {
306380
option (udpa.annotations.versioning).previous_message_type =
307381
"envoy.admin.v2alpha.SecretsConfigDump.DynamicSecret";
@@ -319,6 +393,17 @@ message SecretsConfigDump {
319393
// Security sensitive information is redacted (replaced with "[redacted]") for
320394
// private keys and passwords in TLS certificates.
321395
google.protobuf.Any secret = 4;
396+
397+
// Set if the last update failed, cleared after the next successful update.
398+
// The *error_state* field contains the rejected version of this particular
399+
// resource along with the reason and timestamp. For successfully updated or
400+
// acknowledged resource, this field should be empty.
401+
// [#not-implemented-hide:]
402+
UpdateFailureState error_state = 5;
403+
404+
// The client status of this resource.
405+
// [#not-implemented-hide:]
406+
ClientResourceStatus client_status = 6;
322407
}
323408

324409
// StaticSecret specifies statically loaded secret in bootstrap.
@@ -362,6 +447,7 @@ message EndpointsConfigDump {
362447
google.protobuf.Timestamp last_updated = 2;
363448
}
364449

450+
// [#next-free-field: 6]
365451
message DynamicEndpointConfig {
366452
// [#not-implemented-hide:] This is the per-resource version information. This version is currently taken from the
367453
// :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
@@ -373,6 +459,17 @@ message EndpointsConfigDump {
373459

374460
// [#not-implemented-hide:] The timestamp when the Endpoint was last updated.
375461
google.protobuf.Timestamp last_updated = 3;
462+
463+
// Set if the last update failed, cleared after the next successful update.
464+
// The *error_state* field contains the rejected version of this particular
465+
// resource along with the reason and timestamp. For successfully updated or
466+
// acknowledged resource, this field should be empty.
467+
// [#not-implemented-hide:]
468+
UpdateFailureState error_state = 4;
469+
470+
// The client status of this resource.
471+
// [#not-implemented-hide:]
472+
ClientResourceStatus client_status = 5;
376473
}
377474

378475
// The statically loaded endpoint configs.

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

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

55
import "udpa/annotations/status.proto";
6-
import "udpa/annotations/versioning.proto";
76

87
option java_package = "io.envoyproxy.envoy.admin.v3";
98
option java_outer_classname = "InitDumpProto";

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import "envoy/config/core/v3/base.proto";
66

77
import "google/protobuf/duration.proto";
88

9-
import "envoy/annotations/deprecation.proto";
109
import "udpa/annotations/status.proto";
1110
import "udpa/annotations/versioning.proto";
1211

@@ -59,7 +58,7 @@ message ServerInfo {
5958
config.core.v3.Node node = 7;
6059
}
6160

62-
// [#next-free-field: 37]
61+
// [#next-free-field: 38]
6362
message CommandLineOptions {
6463
option (udpa.annotations.versioning).previous_message_type =
6564
"envoy.admin.v2alpha.CommandLineOptions";
@@ -190,4 +189,7 @@ message CommandLineOptions {
190189

191190
// See :option:`--socket-mode` for details.
192191
uint32 socket_mode = 36;
192+
193+
// See :option:`--enable-core-dump` for details.
194+
bool enable_core_dump = 37;
193195
}

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ message Clusters {
2929
}
3030

3131
// Details an individual cluster's current status.
32-
// [#next-free-field: 7]
32+
// [#next-free-field: 8]
3333
message ClusterStatus {
3434
option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ClusterStatus";
3535

@@ -80,6 +80,9 @@ message ClusterStatus {
8080

8181
// :ref:`Circuit breaking <arch_overview_circuit_break>` settings of the cluster.
8282
config.cluster.v4alpha.CircuitBreakers circuit_breakers = 6;
83+
84+
// Observability name of the cluster.
85+
string observability_name = 7;
8386
}
8487

8588
// Current state of a particular host.
@@ -139,7 +142,7 @@ message HostStatus {
139142
}
140143

141144
// Health status for a host.
142-
// [#next-free-field: 7]
145+
// [#next-free-field: 9]
143146
message HostHealthStatus {
144147
option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.HostHealthStatus";
145148

@@ -159,6 +162,13 @@ message HostHealthStatus {
159162
// The host has not yet been health checked.
160163
bool pending_active_hc = 6;
161164

165+
// The host should be excluded from panic, spillover, etc. calculations because it was explicitly
166+
// taken out of rotation via protocol signal and is not meant to be routed to.
167+
bool excluded_via_immediate_hc_fail = 7;
168+
169+
// The host failed active HC due to timeout.
170+
bool active_hc_timeout = 8;
171+
162172
// Health status as reported by EDS. Note: only HEALTHY and UNHEALTHY are currently supported
163173
// here.
164174
// [#comment:TODO(mrice32): pipe through remaining EDS health status possibilities.]

0 commit comments

Comments
 (0)