xdstp: flatten resource locators/names to strings. (#14241)

As per discussion summarized in
#13555 (comment), we will not use structured
xdstp:// names/locators in the API initially. Instead, we will re-use existing string fields for
names and special case any name with a xdstp: prefix. We leave open the option of introducing
structured representation, in particular for efficiency wins, at a later point.

Risk level: Low (not in use yet)
Testing: CI

Signed-off-by: Harvey Tuch <htuch@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ d1ded6b381ca92cbacb2e0683adf997239b12272
pull/623/head
data-plane-api(Azure Pipelines) 4 years ago
parent 7707b56bbb
commit 3b5fc66c78
  1. 1
      envoy/config/bootstrap/v3/BUILD
  2. 25
      envoy/config/bootstrap/v3/bootstrap.proto
  3. 1
      envoy/config/bootstrap/v4alpha/BUILD
  4. 28
      envoy/config/bootstrap/v4alpha/bootstrap.proto
  5. 10
      envoy/config/cluster/v3/cluster.proto
  6. 15
      envoy/config/cluster/v4alpha/cluster.proto
  7. 7
      envoy/config/core/v3/config_source.proto
  8. 7
      envoy/config/core/v4alpha/config_source.proto
  9. 1
      envoy/extensions/common/tap/v3/BUILD
  10. 2
      envoy/extensions/common/tap/v3/common.proto
  11. 1
      envoy/extensions/common/tap/v4alpha/BUILD
  12. 2
      envoy/extensions/common/tap/v4alpha/common.proto
  13. 1
      envoy/extensions/filters/network/http_connection_manager/v3/BUILD
  14. 10
      envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto
  15. 1
      envoy/extensions/filters/network/http_connection_manager/v4alpha/BUILD
  16. 18
      envoy/extensions/filters/network/http_connection_manager/v4alpha/http_connection_manager.proto
  17. 1
      envoy/extensions/transport_sockets/tls/v3/BUILD
  18. 18
      envoy/extensions/transport_sockets/tls/v3/secret.proto
  19. 1
      envoy/extensions/transport_sockets/tls/v4alpha/BUILD
  20. 16
      envoy/extensions/transport_sockets/tls/v4alpha/secret.proto
  21. 1
      envoy/service/discovery/v3/BUILD
  22. 33
      envoy/service/discovery/v3/discovery.proto
  23. 1
      envoy/service/discovery/v4alpha/BUILD
  24. 36
      envoy/service/discovery/v4alpha/discovery.proto

@ -17,6 +17,5 @@ api_proto_package(
"//envoy/extensions/transport_sockets/tls/v3:pkg",
"//envoy/type/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -20,8 +20,6 @@ import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";
import "xds/core/v3/resource_locator.proto";
import "envoy/annotations/deprecation.proto";
import "udpa/annotations/migrate.proto";
import "udpa/annotations/security.proto";
@ -77,18 +75,18 @@ message Bootstrap {
// :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
core.v3.ConfigSource lds_config = 1;
// Resource locator for listener collection.
// xdstp:// resource locator for listener collection.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator lds_resources_locator = 5;
string lds_resources_locator = 5;
// All post-bootstrap :ref:`Cluster <envoy_api_msg_config.cluster.v3.Cluster>` definitions are
// provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
// configuration source.
core.v3.ConfigSource cds_config = 2;
// Resource locator for cluster collection.
// xdstp:// resource locator for cluster collection.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator cds_resources_locator = 6;
string cds_resources_locator = 6;
// A single :ref:`ADS <config_overview_ads>` source may be optionally
// specified. This must have :ref:`api_type
@ -110,7 +108,7 @@ message Bootstrap {
// A list of :ref:`Node <envoy_v3_api_msg_config.core.v3.Node>` field names
// that will be included in the context parameters of the effective
// *XdsResourceLocator* that is sent in a discovery request when resource
// xdstp:// URL that is sent in a discovery request when resource
// locators are used for LDS/CDS. Any non-string field will have its JSON
// encoding set as the context parameter value, with the exception of
// metadata, which will be flattened (see example below). The supported field
@ -248,9 +246,9 @@ message Bootstrap {
repeated FatalAction fatal_actions = 28;
// Configuration sources that will participate in
// *xds.core.v3.ResourceLocator* authority resolution. The algorithm is as
// xdstp:// URL authority resolution. The algorithm is as
// follows:
// 1. The authority field is taken from the *xds.core.v3.ResourceLocator*, call
// 1. The authority field is taken from the xdstp:// URL, call
// this *resource_authority*.
// 2. *resource_authority* is compared against the authorities in any peer
// *ConfigSource*. The peer *ConfigSource* is the configuration source
@ -266,7 +264,7 @@ message Bootstrap {
// [#not-implemented-hide:]
repeated core.v3.ConfigSource config_sources = 22;
// Default configuration source for *xds.core.v3.ResourceLocator* if all
// Default configuration source for xdstp:// URLs if all
// other resolution fails.
// [#not-implemented-hide:]
core.v3.ConfigSource default_config_source = 23;
@ -511,12 +509,7 @@ message RuntimeLayer {
"envoy.config.bootstrap.v2.RuntimeLayer.RtdsLayer";
// Resource to subscribe to at *rtds_config* for the RTDS layer.
string name = 1 [(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"];
// Resource locator for RTDS layer. This is mutually exclusive to *name*.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator rtds_resource_locator = 3
[(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"];
string name = 1;
// RTDS configuration source.
core.v3.ConfigSource rtds_config = 2;

@ -16,6 +16,5 @@ api_proto_package(
"//envoy/extensions/transport_sockets/tls/v4alpha:pkg",
"//envoy/type/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -19,8 +19,6 @@ import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";
import "xds/core/v3/resource_locator.proto";
import "envoy/annotations/deprecation.proto";
import "udpa/annotations/security.proto";
import "udpa/annotations/status.proto";
@ -75,18 +73,18 @@ message Bootstrap {
// :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
core.v4alpha.ConfigSource lds_config = 1;
// Resource locator for listener collection.
// xdstp:// resource locator for listener collection.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator lds_resources_locator = 5;
string lds_resources_locator = 5;
// All post-bootstrap :ref:`Cluster <envoy_api_msg_config.cluster.v4alpha.Cluster>` definitions are
// provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
// configuration source.
core.v4alpha.ConfigSource cds_config = 2;
// Resource locator for cluster collection.
// xdstp:// resource locator for cluster collection.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator cds_resources_locator = 6;
string cds_resources_locator = 6;
// A single :ref:`ADS <config_overview_ads>` source may be optionally
// specified. This must have :ref:`api_type
@ -108,7 +106,7 @@ message Bootstrap {
// A list of :ref:`Node <envoy_v3_api_msg_config.core.v3.Node>` field names
// that will be included in the context parameters of the effective
// *XdsResourceLocator* that is sent in a discovery request when resource
// xdstp:// URL that is sent in a discovery request when resource
// locators are used for LDS/CDS. Any non-string field will have its JSON
// encoding set as the context parameter value, with the exception of
// metadata, which will be flattened (see example below). The supported field
@ -234,9 +232,9 @@ message Bootstrap {
repeated FatalAction fatal_actions = 28;
// Configuration sources that will participate in
// *xds.core.v3.ResourceLocator* authority resolution. The algorithm is as
// xdstp:// URL authority resolution. The algorithm is as
// follows:
// 1. The authority field is taken from the *xds.core.v3.ResourceLocator*, call
// 1. The authority field is taken from the xdstp:// URL, call
// this *resource_authority*.
// 2. *resource_authority* is compared against the authorities in any peer
// *ConfigSource*. The peer *ConfigSource* is the configuration source
@ -252,7 +250,7 @@ message Bootstrap {
// [#not-implemented-hide:]
repeated core.v4alpha.ConfigSource config_sources = 22;
// Default configuration source for *xds.core.v3.ResourceLocator* if all
// Default configuration source for xdstp:// URLs if all
// other resolution fails.
// [#not-implemented-hide:]
core.v4alpha.ConfigSource default_config_source = 23;
@ -505,14 +503,8 @@ message RuntimeLayer {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.bootstrap.v3.RuntimeLayer.RtdsLayer";
oneof name_specifier {
// Resource to subscribe to at *rtds_config* for the RTDS layer.
string name = 1;
// Resource locator for RTDS layer. This is mutually exclusive to *name*.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator rtds_resource_locator = 3;
}
// Resource to subscribe to at *rtds_config* for the RTDS layer.
string name = 1;
// RTDS configuration source.
core.v4alpha.ConfigSource rtds_config = 2;

@ -20,7 +20,6 @@ import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";
import "xds/core/v3/collection_entry.proto";
import "xds/core/v3/resource_locator.proto";
import "envoy/annotations/deprecation.proto";
import "udpa/annotations/migrate.proto";
@ -187,13 +186,8 @@ message Cluster {
// Optional alternative to cluster name to present to EDS. This does not
// have the same restrictions as cluster name, i.e. it may be arbitrary
// length.
string service_name = 2 [(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"];
// Resource locator for EDS. This is mutually exclusive to *service_name*.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator eds_resource_locator = 3
[(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"];
// length. This may be a xdstp:// URL.
string service_name = 2;
}
// Optionally divide the endpoints in this cluster into subsets defined by

@ -19,7 +19,6 @@ import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";
import "xds/core/v3/collection_entry.proto";
import "xds/core/v3/resource_locator.proto";
import "envoy/annotations/deprecation.proto";
import "udpa/annotations/security.proto";
@ -186,16 +185,10 @@ message Cluster {
// Configuration for the source of EDS updates for this Cluster.
core.v4alpha.ConfigSource eds_config = 1;
oneof name_specifier {
// Optional alternative to cluster name to present to EDS. This does not
// have the same restrictions as cluster name, i.e. it may be arbitrary
// length.
string service_name = 2;
// Resource locator for EDS. This is mutually exclusive to *service_name*.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator eds_resource_locator = 3;
}
// Optional alternative to cluster name to present to EDS. This does not
// have the same restrictions as cluster name, i.e. it may be arbitrary
// length. This may be a xdstp:// URL.
string service_name = 2;
}
// Optionally divide the endpoints in this cluster into subsets defined by

@ -152,10 +152,9 @@ message RateLimitSettings {
message ConfigSource {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.ConfigSource";
// Authorities that this config source may be used for. An authority specified
// in a *xds.core.v3.ResourceLocator* is resolved to a *ConfigSource* prior
// to configuration fetch. This field provides the association between
// authority name and configuration source.
// Authorities that this config source may be used for. An authority specified in a xdstp:// URL
// is resolved to a *ConfigSource* prior to configuration fetch. This field provides the
// association between authority name and configuration source.
// [#not-implemented-hide:]
repeated xds.core.v3.Authority authorities = 7;

@ -154,10 +154,9 @@ message RateLimitSettings {
message ConfigSource {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.core.v3.ConfigSource";
// Authorities that this config source may be used for. An authority specified
// in a *xds.core.v3.ResourceLocator* is resolved to a *ConfigSource* prior
// to configuration fetch. This field provides the association between
// authority name and configuration source.
// Authorities that this config source may be used for. An authority specified in a xdstp:// URL
// is resolved to a *ConfigSource* prior to configuration fetch. This field provides the
// association between authority name and configuration source.
// [#not-implemented-hide:]
repeated xds.core.v3.Authority authorities = 7;

@ -9,6 +9,5 @@ api_proto_package(
"//envoy/config/common/tap/v2alpha:pkg",
"//envoy/config/tap/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -4,8 +4,6 @@ package envoy.extensions.common.tap.v3;
import "envoy/config/tap/v3/common.proto";
import "xds/core/v3/resource_locator.proto";
import "udpa/annotations/migrate.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";

@ -9,6 +9,5 @@ api_proto_package(
"//envoy/config/tap/v4alpha:pkg",
"//envoy/extensions/common/tap/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -4,8 +4,6 @@ package envoy.extensions.common.tap.v4alpha;
import "envoy/config/tap/v4alpha/common.proto";
import "xds/core/v3/resource_locator.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
import "validate/validate.proto";

@ -15,6 +15,5 @@ api_proto_package(
"//envoy/type/tracing/v3:pkg",
"//envoy/type/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -19,8 +19,6 @@ import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";
import "xds/core/v3/resource_locator.proto";
import "envoy/annotations/deprecation.proto";
import "udpa/annotations/migrate.proto";
import "udpa/annotations/security.proto";
@ -651,13 +649,7 @@ message Rds {
// API. This allows an Envoy configuration with multiple HTTP listeners (and
// associated HTTP connection manager filters) to use different route
// configurations.
string route_config_name = 2
[(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"];
// Resource locator for RDS. This is mutually exclusive to *route_config_name*.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator rds_resource_locator = 3
[(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"];
string route_config_name = 2;
}
// This message is used to work around the limitations with 'oneof' and repeated fields.

@ -15,6 +15,5 @@ api_proto_package(
"//envoy/type/tracing/v3:pkg",
"//envoy/type/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -19,8 +19,6 @@ import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";
import "xds/core/v3/resource_locator.proto";
import "envoy/annotations/deprecation.proto";
import "udpa/annotations/security.proto";
import "udpa/annotations/status.proto";
@ -652,17 +650,11 @@ message Rds {
// Configuration source specifier for RDS.
config.core.v4alpha.ConfigSource config_source = 1 [(validate.rules).message = {required: true}];
oneof name_specifier {
// The name of the route configuration. This name will be passed to the RDS
// API. This allows an Envoy configuration with multiple HTTP listeners (and
// associated HTTP connection manager filters) to use different route
// configurations.
string route_config_name = 2;
// Resource locator for RDS. This is mutually exclusive to *route_config_name*.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator rds_resource_locator = 3;
}
// The name of the route configuration. This name will be passed to the RDS
// API. This allows an Envoy configuration with multiple HTTP listeners (and
// associated HTTP connection manager filters) to use different route
// configurations.
string route_config_name = 2;
}
// This message is used to work around the limitations with 'oneof' and repeated fields.

@ -10,6 +10,5 @@ api_proto_package(
"//envoy/config/core/v3:pkg",
"//envoy/type/matcher/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -6,8 +6,6 @@ import "envoy/config/core/v3/base.proto";
import "envoy/config/core/v3/config_source.proto";
import "envoy/extensions/transport_sockets/tls/v3/common.proto";
import "xds/core/v3/resource_locator.proto";
import "udpa/annotations/migrate.proto";
import "udpa/annotations/sensitive.proto";
import "udpa/annotations/status.proto";
@ -31,18 +29,10 @@ message GenericSecret {
message SdsSecretConfig {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.auth.SdsSecretConfig";
// Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
// When both name and config are specified, then secret can be fetched and/or reloaded via
// SDS. When only name is specified, then secret will be loaded from static resources.
string name = 1 [
(validate.rules).string = {min_len: 1},
(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"
];
// Resource locator for SDS. This is mutually exclusive to *name*.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator sds_resource_locator = 3
[(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"];
// Name by which the secret can be uniquely referred to. When both name and config are specified,
// then secret can be fetched and/or reloaded via SDS. When only name is specified, then secret
// will be loaded from static resources.
string name = 1 [(validate.rules).string = {min_len: 1}];
config.core.v3.ConfigSource sds_config = 2;
}

@ -10,6 +10,5 @@ api_proto_package(
"//envoy/extensions/transport_sockets/tls/v3:pkg",
"//envoy/type/matcher/v4alpha:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -6,8 +6,6 @@ import "envoy/config/core/v4alpha/base.proto";
import "envoy/config/core/v4alpha/config_source.proto";
import "envoy/extensions/transport_sockets/tls/v4alpha/common.proto";
import "xds/core/v3/resource_locator.proto";
import "udpa/annotations/sensitive.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
@ -32,16 +30,10 @@ message SdsSecretConfig {
option (udpa.annotations.versioning).previous_message_type =
"envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig";
oneof name_specifier {
// Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
// When both name and config are specified, then secret can be fetched and/or reloaded via
// SDS. When only name is specified, then secret will be loaded from static resources.
string name = 1 [(validate.rules).string = {min_len: 1}];
// Resource locator for SDS. This is mutually exclusive to *name*.
// [#not-implemented-hide:]
xds.core.v3.ResourceLocator sds_resource_locator = 3;
}
// Name by which the secret can be uniquely referred to. When both name and config are specified,
// then secret can be fetched and/or reloaded via SDS. When only name is specified, then secret
// will be loaded from static resources.
string name = 1 [(validate.rules).string = {min_len: 1}];
config.core.v4alpha.ConfigSource sds_config = 2;
}

@ -11,6 +11,5 @@ api_proto_package(
"//envoy/config/core/v3:pkg",
"//envoy/service/discovery/v2:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -8,9 +8,6 @@ import "google/protobuf/any.proto";
import "google/protobuf/duration.proto";
import "google/rpc/status.proto";
import "xds/core/v3/resource_locator.proto";
import "xds/core/v3/resource_name.proto";
import "udpa/annotations/migrate.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
@ -145,7 +142,7 @@ message DiscoveryResponse {
// In particular, initial_resource_versions being sent at the "start" of every
// gRPC stream actually entails a message for each type_url, each with its own
// initial_resource_versions.
// [#next-free-field: 10]
// [#next-free-field: 8]
message DeltaDiscoveryRequest {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.DeltaDiscoveryRequest";
@ -181,22 +178,9 @@ message DeltaDiscoveryRequest {
// A list of Resource names to add to the list of tracked resources.
repeated string resource_names_subscribe = 3;
// As with *resource_names_subscribe* but used when subscribing to resources indicated
// by a *xds.core.v3.ResourceLocator*. The directives in the resource locator
// are ignored and the context parameters are matched with
// *context_param_specifier* specific semantics.
// [#not-implemented-hide:]
repeated xds.core.v3.ResourceLocator xds_resources_subscribe = 8;
// A list of Resource names to remove from the list of tracked resources.
repeated string resource_names_unsubscribe = 4;
// As with *resource_names_unsubscribe* but used when unsubscribing to resources indicated by a
// *xds.core.v3.ResourceLocator*. This must match a previously subscribed
// resource locator provided in *xds_resources_subscribe*.
// [#not-implemented-hide:]
repeated xds.core.v3.ResourceLocator xds_resources_unsubscribe = 9;
// Informs the server of the versions of the resources the xDS client knows of, to enable the
// client to continue the same logical xDS session even in the face of gRPC stream reconnection.
// It will not be populated: [1] in the very first stream of a session, since the client will
@ -219,7 +203,7 @@ message DeltaDiscoveryRequest {
google.rpc.Status error_detail = 7;
}
// [#next-free-field: 8]
// [#next-free-field: 7]
message DeltaDiscoveryResponse {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.DeltaDiscoveryResponse";
@ -235,19 +219,12 @@ message DeltaDiscoveryResponse {
// Type URL for resources. Identifies the xDS API when muxing over ADS.
// Must be consistent with the type_url in the Any within 'resources' if 'resources' is non-empty.
// This does not need to be set if *udpa_removed_resources* is used instead of
// *removed_resources*.
string type_url = 4;
// Resources names of resources that have be deleted and to be removed from the xDS Client.
// Removed resources for missing resources can be ignored.
repeated string removed_resources = 6;
// As with *removed_resources* but used when a removed resource was named in
// its *Resource*s with a *xds.core.v3.ResourceName*.
// [#not-implemented-hide:]
repeated xds.core.v3.ResourceName udpa_removed_resources = 7;
// The nonce provides a way for DeltaDiscoveryRequests to uniquely
// reference a DeltaDiscoveryResponse when (N)ACKing. The nonce is required.
string nonce = 5;
@ -267,11 +244,7 @@ message Resource {
}
// The resource's name, to distinguish it from others of the same type of resource.
string name = 3 [(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"];
// Used instead of *name* when a resource with a *xds.core.v3.ResourceName* is delivered.
xds.core.v3.ResourceName xds_resource_name = 5
[(udpa.annotations.field_migrate).oneof_promotion = "name_specifier"];
string name = 3;
// The aliases are a list of other names that this resource can go by.
repeated string aliases = 4;

@ -10,6 +10,5 @@ api_proto_package(
"//envoy/config/core/v4alpha:pkg",
"//envoy/service/discovery/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/core/v3:pkg",
],
)

@ -8,9 +8,6 @@ import "google/protobuf/any.proto";
import "google/protobuf/duration.proto";
import "google/rpc/status.proto";
import "xds/core/v3/resource_locator.proto";
import "xds/core/v3/resource_name.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
@ -146,7 +143,7 @@ message DiscoveryResponse {
// In particular, initial_resource_versions being sent at the "start" of every
// gRPC stream actually entails a message for each type_url, each with its own
// initial_resource_versions.
// [#next-free-field: 10]
// [#next-free-field: 8]
message DeltaDiscoveryRequest {
option (udpa.annotations.versioning).previous_message_type =
"envoy.service.discovery.v3.DeltaDiscoveryRequest";
@ -183,22 +180,9 @@ message DeltaDiscoveryRequest {
// A list of Resource names to add to the list of tracked resources.
repeated string resource_names_subscribe = 3;
// As with *resource_names_subscribe* but used when subscribing to resources indicated
// by a *xds.core.v3.ResourceLocator*. The directives in the resource locator
// are ignored and the context parameters are matched with
// *context_param_specifier* specific semantics.
// [#not-implemented-hide:]
repeated xds.core.v3.ResourceLocator xds_resources_subscribe = 8;
// A list of Resource names to remove from the list of tracked resources.
repeated string resource_names_unsubscribe = 4;
// As with *resource_names_unsubscribe* but used when unsubscribing to resources indicated by a
// *xds.core.v3.ResourceLocator*. This must match a previously subscribed
// resource locator provided in *xds_resources_subscribe*.
// [#not-implemented-hide:]
repeated xds.core.v3.ResourceLocator xds_resources_unsubscribe = 9;
// Informs the server of the versions of the resources the xDS client knows of, to enable the
// client to continue the same logical xDS session even in the face of gRPC stream reconnection.
// It will not be populated: [1] in the very first stream of a session, since the client will
@ -221,7 +205,7 @@ message DeltaDiscoveryRequest {
google.rpc.Status error_detail = 7;
}
// [#next-free-field: 8]
// [#next-free-field: 7]
message DeltaDiscoveryResponse {
option (udpa.annotations.versioning).previous_message_type =
"envoy.service.discovery.v3.DeltaDiscoveryResponse";
@ -237,19 +221,12 @@ message DeltaDiscoveryResponse {
// Type URL for resources. Identifies the xDS API when muxing over ADS.
// Must be consistent with the type_url in the Any within 'resources' if 'resources' is non-empty.
// This does not need to be set if *udpa_removed_resources* is used instead of
// *removed_resources*.
string type_url = 4;
// Resources names of resources that have be deleted and to be removed from the xDS Client.
// Removed resources for missing resources can be ignored.
repeated string removed_resources = 6;
// As with *removed_resources* but used when a removed resource was named in
// its *Resource*s with a *xds.core.v3.ResourceName*.
// [#not-implemented-hide:]
repeated xds.core.v3.ResourceName udpa_removed_resources = 7;
// The nonce provides a way for DeltaDiscoveryRequests to uniquely
// reference a DeltaDiscoveryResponse when (N)ACKing. The nonce is required.
string nonce = 5;
@ -272,13 +249,8 @@ message Resource {
bool do_not_cache = 1;
}
oneof name_specifier {
// The resource's name, to distinguish it from others of the same type of resource.
string name = 3;
// Used instead of *name* when a resource with a *xds.core.v3.ResourceName* is delivered.
xds.core.v3.ResourceName xds_resource_name = 5;
}
// The resource's name, to distinguish it from others of the same type of resource.
string name = 3;
// The aliases are a list of other names that this resource can go by.
repeated string aliases = 4;

Loading…
Cancel
Save