reverse_tunnel: Add protos for contrib reverse tunnel reporting service#44327
Conversation
1c42b3d to
da27d8b
Compare
basundhara-c
left a comment
There was a problem hiding this comment.
@aakugan let's try to keep this interface as thin as we can.
| repeated string removed_tunnel_names = 3 | ||
| [(validate.rules).repeated = {items {string {min_len: 1}}}]; | ||
|
|
||
| // Optional metadata for additional context or debugging information. |
There was a problem hiding this comment.
We want to keep this interface as lean as possible. Seems like the Node struct already supports a metadata field. In that case, let's remove this and use the Node.metadata instead.
| message StreamReverseTunnelsResponse { | ||
| // Node identifier acknowledging which Envoy instance this response is for. | ||
| // Should match the node from the corresponding request. | ||
| config.core.v3.Node node = 1; |
There was a problem hiding this comment.
Why are we echoing back the entire Node proto? Can't we just use the node.id?
There was a problem hiding this comment.
Initially wanted to have the flexibility if needed but yes we can make new fields in the future too made the changes
|
|
||
| // Unique nonce for this request to enable proper ACK/NACK handling. | ||
| // Must be non-negative and should increment for each request. | ||
| // This can also be modified to be used for checksum and tracking in the future.a |
da27d8b to
2d2ce10
Compare
31f9a7b to
e5ebf6d
Compare
|
CC @envoyproxy/dependency-shepherds: Your approval is needed for changes made to |
e5ebf6d to
698abc0
Compare
|
/retest |
|
|
||
| // Maximum events to buffer at any given time | ||
| // Default is 1,000,000. | ||
| uint32 max_buffer = 6; |
There was a problem hiding this comment.
nit: call it max_buffer_count for better understanding of it as event count?
Signed-off-by: aakugan <aakashganapathy2@gmail.com>
698abc0 to
ff44e98
Compare
…ce (envoyproxy#44327) ## Commit Message Add protos for contrib reverse tunnel reporting service ## Additional Description: The reporting service allows Envoy to push reverse tunnel connection state to a remote server. Three proto files are introduced: 1. `event_reporter.proto`: Configuration for the EventReporter, which aggregates connection/disconnection events and fans them out to one or more pluggable clients. 2. `grpc_client.proto`: Configuration for the gRPC streaming client, which sends batched events to a cluster over a bidirectional stream using an ACK/NACK protocol similar to xDS. 3. `stream_reverse_tunnels.proto`: The gRPC service definition and request/response messages for the bidirectional reporting stream. Includes tunnel identity, nonce-based ACK/NACK, and server-driven send interval adjustment. All protos use v3alpha versioning under the contrib API path. Risk Level: Low Testing: Proto builds verified Docs Changes: N/A Release Notes: N/A Signed-off-by: aakugan <aakashganapathy2@gmail.com>
Commit Message
Add protos for contrib reverse tunnel reporting service
Additional Description:
The reporting service allows Envoy to push reverse tunnel connection state to a remote server.
Three proto files are introduced:
event_reporter.proto: Configuration for the EventReporter, which aggregates connection/disconnection events and fans them out to one or more pluggable clients.grpc_client.proto: Configuration for the gRPC streaming client, which sends batched events to a cluster over a bidirectional stream using an ACK/NACK protocol similar to xDS.stream_reverse_tunnels.proto: The gRPC service definition and request/response messages for the bidirectional reporting stream. Includes tunnel identity, nonce-based ACK/NACK, and server-driven send interval adjustment.All protos use v3alpha versioning under the contrib API path.
Risk Level: Low
Testing: Proto builds verified
Docs Changes: N/A
Release Notes: N/A