Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xDS: add fields specified in xRFC TP3 #37818

Merged
merged 4 commits into from
Jan 2, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 27 additions & 2 deletions api/envoy/service/discovery/v3/discovery.proto
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,17 @@ message ResourceName {
DynamicParameterConstraints dynamic_parameter_constraints = 2;
}

// [#not-implemented-hide:]
// An error associated with a specific resource name, returned to the
// client by the server.
message ResourceError {
// The name of the resource.
ResourceName resource_name = 1;

// The error reported for the resource.
google.rpc.Status error_detail = 2;
}

// A DiscoveryRequest requests a set of versioned resources of the same type for
// a given Envoy node on some API.
// [#next-free-field: 8]
Expand Down Expand Up @@ -96,7 +107,7 @@ message DiscoveryRequest {
google.rpc.Status error_detail = 6;
}

// [#next-free-field: 7]
// [#next-free-field: 8]
message DiscoveryResponse {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.DiscoveryResponse";

Expand Down Expand Up @@ -138,6 +149,13 @@ message DiscoveryResponse {

// The control plane instance that sent the response.
config.core.v3.ControlPlane control_plane = 6;

// [#not-implemented-hide:]
// Errors associated with specific resources. Clients are expected to
// remember the most recent error for a given resource across responses;
// the error condition is not considered to be cleared until a response is
// received that contains the resource in the 'resources' field.
repeated ResourceError resource_errors = 7;
}

// DeltaDiscoveryRequest and DeltaDiscoveryResponse are used in a new gRPC
Expand Down Expand Up @@ -247,7 +265,7 @@ message DeltaDiscoveryRequest {
google.rpc.Status error_detail = 7;
}

// [#next-free-field: 9]
// [#next-free-field: 10]
message DeltaDiscoveryResponse {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.DeltaDiscoveryResponse";
Expand Down Expand Up @@ -281,6 +299,13 @@ message DeltaDiscoveryResponse {
// [#not-implemented-hide:]
// The control plane instance that sent the response.
config.core.v3.ControlPlane control_plane = 7;

// [#not-implemented-hide:]
// Errors associated with specific resources. Note that a resource in
// this field with a status of NOT_FOUND should be treated the same as
// a resource listed in the 'removed_resources' or 'removed_resource_names'
// fields.
repeated ResourceError resource_errors = 9;
}

// A set of dynamic parameter constraints associated with a variant of an individual xDS resource.
Expand Down
5 changes: 5 additions & 0 deletions api/envoy/service/status/v3/csds.proto
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ enum ClientConfigStatus {
// config dump is not the NACKed version, but the most recent accepted one. If
// no config is accepted yet, the attached config dump will be empty.
CLIENT_NACKED = 3;

// Client received an error from the control plane. The attached config
// dump is the most recent accepted one. If no config is accepted yet,
// the attached config dump will be empty.
CLIENT_RECEIVED_ERROR = 4;
}

// Request for client status of clients identified by a list of NodeMatchers.
Expand Down