You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
4.3 KiB
95 lines
4.3 KiB
syntax = "proto3"; |
|
|
|
package envoy.api.v2; |
|
option go_package = "v2"; |
|
|
|
import "envoy/api/v2/core/base.proto"; |
|
|
|
import "google/protobuf/any.proto"; |
|
import "google/rpc/status.proto"; |
|
import "gogoproto/gogo.proto"; |
|
|
|
option (gogoproto.equal_all) = true; |
|
|
|
// [#protodoc-title: Common discovery API components] |
|
|
|
// A DiscoveryRequest requests a set of versioned resources of the same type for |
|
// a given Envoy node on some API. |
|
message DiscoveryRequest { |
|
// The version_info provided in the request messages will be the version_info |
|
// received with the most recent successfully processed response or empty on |
|
// the first request. It is expected that no new request is sent after a |
|
// response is received until the Envoy instance is ready to ACK/NACK the new |
|
// configuration. ACK/NACK takes place by returning the new API config version |
|
// as applied or the previous API config version respectively. Each type_url |
|
// (see below) has an independent version associated with it. |
|
string version_info = 1; |
|
|
|
// The node making the request. |
|
core.Node node = 2; |
|
|
|
// List of resources to subscribe to, e.g. list of cluster names or a route |
|
// configuration name. If this is empty, all resources for the API are |
|
// returned. LDS/CDS expect empty resource_names, since this is global |
|
// discovery for the Envoy instance. The LDS and CDS responses will then imply |
|
// a number of resources that need to be fetched via EDS/RDS, which will be |
|
// explicitly enumerated in resource_names. |
|
repeated string resource_names = 3; |
|
|
|
// Type of the resource that is being requested, e.g. |
|
// "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment". This is implicit |
|
// in requests made via singleton xDS APIs such as CDS, LDS, etc. but is |
|
// required for ADS. |
|
string type_url = 4; |
|
|
|
// nonce corresponding to DiscoveryResponse being ACK/NACKed. See above |
|
// discussion on version_info and the DiscoveryResponse nonce comment. This |
|
// may be empty if no nonce is available, e.g. at startup or for non-stream |
|
// xDS implementations. |
|
string response_nonce = 5; |
|
|
|
// This is populated when the previous :ref:`DiscoveryResponse <envoy_api_msg_DiscoveryResponse>` |
|
// failed to update configuration. The *message* field in *error_details* provides the Envoy |
|
// internal exception related to the failure. It is only intended for consumption during manual |
|
// debugging, the string provided is not guaranteed to be stable across Envoy versions. |
|
google.rpc.Status error_detail = 6; |
|
} |
|
|
|
message DiscoveryResponse { |
|
// The version of the response data. |
|
string version_info = 1; |
|
|
|
// The response resources. These resources are typed and depend on the API being called. |
|
repeated google.protobuf.Any resources = 2 [(gogoproto.nullable) = false]; |
|
|
|
// [#not-implemented-hide:] |
|
// Canary is used to support two Envoy command line flags: |
|
// |
|
// * --terminate-on-canary-transition-failure. When set, Envoy is able to |
|
// terminate if it detects that configuration is stuck at canary. Consider |
|
// this example sequence of updates: |
|
// - Management server applies a canary config successfully. |
|
// - Management server rolls back to a production config. |
|
// - Envoy rejects the new production config. |
|
// Since there is no sensible way to continue receiving configuration |
|
// updates, Envoy will then terminate and apply production config from a |
|
// clean slate. |
|
// * --dry-run-canary. When set, a canary response will never be applied, only |
|
// validated via a dry run. |
|
bool canary = 3; |
|
|
|
// Type URL for resources. This must be consistent with the type_url in the |
|
// Any messages for resources if resources is non-empty. This effectively |
|
// identifies the xDS API when muxing over ADS. |
|
string type_url = 4; |
|
|
|
// For gRPC based subscriptions, the nonce provides a way to explicitly ack a |
|
// specific DiscoveryResponse in a following DiscoveryRequest. Additional |
|
// messages may have been sent by Envoy to the management server for the |
|
// previous version on the stream prior to this DiscoveryResponse, that were |
|
// unprocessed at response send time. The nonce allows the management server |
|
// to ignore any further DiscoveryRequests for the previous version until a |
|
// DiscoveryRequest bearing the nonce. The nonce is optional and is not |
|
// required for non-stream based xDS implementations. |
|
string nonce = 5; |
|
}
|
|
|