From bdd4774c05323bcefcfeb891ecea3ad6b79dbc18 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 8 Oct 2025 10:24:37 +0000
Subject: [PATCH] fix(deps): update module google.golang.org/grpc to v1.76.0
---
go.mod | 4 +-
go.sum | 8 +-
pkg/push/go.mod | 10 +-
pkg/push/go.sum | 16 +--
.../go-jose/go-jose/v4/CHANGELOG.md | 101 -----------------
.../github.com/go-jose/go-jose/v4/README.md | 76 ++++++-------
.../github.com/go-jose/go-jose/v4/crypter.go | 4 +
vendor/github.com/go-jose/go-jose/v4/jwk.go | 59 +++++++---
.../github.com/go-jose/go-jose/v4/shared.go | 1 -
vendor/google.golang.org/grpc/CONTRIBUTING.md | 99 +++++++++++++----
.../balancer/grpclb/grpclb_remote_balancer.go | 10 +-
.../grpc/balancer/pickfirst/pickfirst.go | 2 +-
.../pickfirst/pickfirstleaf/pickfirstleaf.go | 11 +-
vendor/google.golang.org/grpc/clientconn.go | 2 +-
.../grpc/encoding/proto/proto.go | 20 +++-
.../grpc/internal/buffer/unbounded.go | 1 +
.../grpc/internal/channelz/trace.go | 2 +-
.../grpc/internal/envconfig/xds.go | 6 +
.../internal/grpcsync/callback_serializer.go | 22 +---
.../grpc/internal/transport/http2_client.go | 33 ++++--
.../xds}/balancer/balancer.go | 12 +-
.../xds}/balancer/cdsbalancer/cdsbalancer.go | 6 +-
.../balancer/cdsbalancer/cluster_watcher.go | 2 +-
.../xds}/balancer/cdsbalancer/logging.go | 0
.../xds}/balancer/clusterimpl/clusterimpl.go | 15 ++-
.../xds}/balancer/clusterimpl/config.go | 0
.../xds}/balancer/clusterimpl/logging.go | 0
.../xds}/balancer/clusterimpl/picker.go | 8 +-
.../clustermanager/balancerstateaggregator.go | 0
.../balancer/clustermanager/clustermanager.go | 0
.../xds}/balancer/clustermanager/config.go | 0
.../xds}/balancer/clustermanager/picker.go | 0
.../clusterresolver/clusterresolver.go | 8 +-
.../xds}/balancer/clusterresolver/config.go | 2 +-
.../balancer/clusterresolver/configbuilder.go | 16 +--
.../configbuilder_childname.go | 4 +-
.../xds}/balancer/clusterresolver/logging.go | 0
.../clusterresolver/resource_resolver.go | 2 +-
.../clusterresolver/resource_resolver_dns.go | 0
.../clusterresolver/resource_resolver_eds.go | 2 +-
.../balancer/loadstore/load_store_wrapper.go | 4 +-
.../balancer/outlierdetection/balancer.go | 0
.../balancer/outlierdetection/callcounter.go | 0
.../xds}/balancer/outlierdetection/config.go | 0
.../xds}/balancer/outlierdetection/logging.go | 0
.../outlierdetection/subconn_wrapper.go | 0
.../xds}/balancer/priority/balancer.go | 0
.../xds}/balancer/priority/balancer_child.go | 0
.../balancer/priority/balancer_priority.go | 0
.../xds}/balancer/priority/config.go | 0
.../balancer/priority/ignore_resolve_now.go | 18 +--
.../xds}/balancer/priority/logging.go | 0
.../xds}/balancer/wrrlocality/balancer.go | 4 +-
.../xds}/balancer/wrrlocality/logging.go | 0
.../xds}/clients/config.go | 0
.../clients/grpctransport/grpc_transport.go | 2 +-
.../xds}/clients/internal/backoff/backoff.go | 0
.../xds}/clients/internal/buffer/unbounded.go | 0
.../xds}/clients/internal/internal.go | 2 +-
.../xds}/clients/internal/pretty/pretty.go | 0
.../internal/syncutil/callback_serializer.go | 24 +---
.../xds}/clients/internal/syncutil/event.go | 0
.../clients/lrsclient/internal/internal.go | 0
.../xds}/clients/lrsclient/load_store.go | 4 +-
.../xds}/clients/lrsclient/logging.go | 0
.../xds}/clients/lrsclient/lrs_stream.go | 2 +-
.../xds}/clients/lrsclient/lrsclient.go | 6 +-
.../xds}/clients/lrsclient/lrsconfig.go | 2 +-
.../xds}/clients/transport_builder.go | 0
.../xds}/clients/xdsclient/ads_stream.go | 16 +--
.../xds}/clients/xdsclient/authority.go | 103 +++++++-----------
.../xds}/clients/xdsclient/channel.go | 58 +---------
.../clients/xdsclient/clientimpl_watchers.go | 2 +-
.../clients/xdsclient/internal/internal.go | 4 -
.../internal/xdsresource/ads_stream.go | 0
.../xdsclient/internal/xdsresource/errors.go | 0
.../xdsclient/internal/xdsresource/name.go | 0
.../xdsclient/internal/xdsresource/type.go | 0
.../xdsclient/internal/xdsresource/version.go | 0
.../xds}/clients/xdsclient/logging.go | 0
.../xds}/clients/xdsclient/metrics/metrics.go | 0
.../xds}/clients/xdsclient/resource_type.go | 0
.../clients/xdsclient/resource_watcher.go | 0
.../xds}/clients/xdsclient/xdsclient.go | 56 +++-------
.../xds}/clients/xdsclient/xdsconfig.go | 11 +-
.../clusterspecifier/cluster_specifier.go | 0
.../xds}/clusterspecifier/rls/rls.go | 2 +-
.../xds}/httpfilter/fault/fault.go | 2 +-
.../xds}/httpfilter/httpfilter.go | 0
.../xds}/httpfilter/rbac/rbac.go | 2 +-
.../xds}/httpfilter/router/router.go | 2 +-
.../xds}/resolver/internal/internal.go | 0
.../xds}/resolver/logging.go | 0
.../xds}/resolver/serviceconfig.go | 6 +-
.../xds}/resolver/watch_service.go | 2 +-
.../xds}/resolver/xds_resolver.go | 6 +-
.../xds}/server/conn_wrapper.go | 2 +-
.../xds}/server/listener_wrapper.go | 2 +-
.../xds}/server/rds_handler.go | 2 +-
.../grpc/internal/xds/xds.go | 66 ++++++++++-
.../xds}/xdsclient/attributes.go | 0
.../xds}/xdsclient/client.go | 4 +-
.../xds}/xdsclient/clientimpl.go | 29 ++---
.../xds}/xdsclient/clientimpl_loadreport.go | 6 +-
.../xds}/xdsclient/clientimpl_watchers.go | 2 +-
.../xds}/xdsclient/logging.go | 0
.../xds}/xdsclient/pool.go | 9 +-
.../xds}/xdsclient/requests_counter.go | 0
.../xds}/xdsclient/resource_types.go | 6 +-
.../xdslbregistry/converter/converter.go | 4 +-
.../xdsclient/xdslbregistry/xdslbregistry.go | 0
.../xdsresource/cluster_resource_type.go | 4 +-
.../xdsresource/endpoints_resource_type.go | 4 +-
.../xds}/xdsclient/xdsresource/errors.go | 0
.../xdsclient/xdsresource/filter_chain.go | 4 +-
.../xdsresource/listener_resource_type.go | 4 +-
.../xds}/xdsclient/xdsresource/logging.go | 0
.../xds}/xdsclient/xdsresource/matcher.go | 0
.../xdsclient/xdsresource/matcher_path.go | 0
.../xds/xdsclient/xdsresource/metadata.go | 93 ++++++++++++++++
.../xds}/xdsclient/xdsresource/name.go | 0
.../xdsclient/xdsresource/resource_type.go | 6 +-
.../xdsresource/route_config_resource_type.go | 4 +-
.../xds}/xdsclient/xdsresource/type.go | 2 +-
.../xds}/xdsclient/xdsresource/type_cds.go | 0
.../xds}/xdsclient/xdsresource/type_eds.go | 4 +-
.../xds}/xdsclient/xdsresource/type_lds.go | 2 +-
.../xds}/xdsclient/xdsresource/type_rds.go | 4 +-
.../xdsclient/xdsresource/unmarshal_cds.go | 4 +-
.../xdsclient/xdsresource/unmarshal_eds.go | 89 ++++++++++++---
.../xdsclient/xdsresource/unmarshal_lds.go | 2 +-
.../xdsclient/xdsresource/unmarshal_rds.go | 2 +-
.../xdsclient/xdsresource/version/version.go | 0
vendor/google.golang.org/grpc/stream.go | 17 ++-
vendor/google.golang.org/grpc/version.go | 2 +-
.../google.golang.org/grpc/xds/csds/csds.go | 2 +-
.../grpc/xds/googledirectpath/googlec2p.go | 9 +-
.../grpc/xds/internal/internal.go | 84 --------------
vendor/google.golang.org/grpc/xds/server.go | 6 +-
.../grpc/xds/server_options.go | 2 +-
vendor/google.golang.org/grpc/xds/xds.go | 14 +--
vendor/modules.txt | 79 +++++++-------
142 files changed, 760 insertions(+), 719 deletions(-)
delete mode 100644 vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/balancer.go (75%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/cdsbalancer/cdsbalancer.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/cdsbalancer/cluster_watcher.go (97%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/cdsbalancer/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterimpl/clusterimpl.go (97%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterimpl/config.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterimpl/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterimpl/picker.go (95%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clustermanager/balancerstateaggregator.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clustermanager/clustermanager.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clustermanager/config.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clustermanager/picker.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterresolver/clusterresolver.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterresolver/config.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterresolver/configbuilder.go (96%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterresolver/configbuilder_childname.go (96%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterresolver/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterresolver/resource_resolver.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterresolver/resource_resolver_dns.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/clusterresolver/resource_resolver_eds.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/loadstore/load_store_wrapper.go (97%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/outlierdetection/balancer.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/outlierdetection/callcounter.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/outlierdetection/config.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/outlierdetection/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/outlierdetection/subconn_wrapper.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/priority/balancer.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/priority/balancer_child.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/priority/balancer_priority.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/priority/config.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/priority/ignore_resolve_now.go (77%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/priority/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/wrrlocality/balancer.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/balancer/wrrlocality/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/config.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/grpctransport/grpc_transport.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/internal/backoff/backoff.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/internal/buffer/unbounded.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/internal/internal.go (97%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/internal/pretty/pretty.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/internal/syncutil/callback_serializer.go (84%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/internal/syncutil/event.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/lrsclient/internal/internal.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/lrsclient/load_store.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/lrsclient/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/lrsclient/lrs_stream.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/lrsclient/lrsclient.go (96%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/lrsclient/lrsconfig.go (95%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/transport_builder.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/ads_stream.go (97%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/authority.go (93%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/channel.go (86%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/clientimpl_watchers.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/internal/internal.go (86%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/internal/xdsresource/ads_stream.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/internal/xdsresource/errors.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/internal/xdsresource/name.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/internal/xdsresource/type.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/internal/xdsresource/version.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/metrics/metrics.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/resource_type.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/resource_watcher.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/xdsclient.go (90%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clients/xdsclient/xdsconfig.go (88%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clusterspecifier/cluster_specifier.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/clusterspecifier/rls/rls.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/httpfilter/fault/fault.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/httpfilter/httpfilter.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/httpfilter/rbac/rbac.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/httpfilter/router/router.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/resolver/internal/internal.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/resolver/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/resolver/serviceconfig.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/resolver/watch_service.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/resolver/xds_resolver.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/server/conn_wrapper.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/server/listener_wrapper.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/server/rds_handler.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/attributes.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/client.go (95%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/clientimpl.go (90%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/clientimpl_loadreport.go (90%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/clientimpl_watchers.go (95%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/pool.go (97%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/requests_counter.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/resource_types.go (91%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdslbregistry/converter/converter.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdslbregistry/xdslbregistry.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/cluster_resource_type.go (97%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/endpoints_resource_type.go (97%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/errors.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/filter_chain.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/listener_resource_type.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/logging.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/matcher.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/matcher_path.go (100%)
create mode 100644 vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/metadata.go
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/name.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/resource_type.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/route_config_resource_type.go (97%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/type.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/type_cds.go (100%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/type_eds.go (95%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/type_lds.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/type_rds.go (98%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/unmarshal_cds.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/unmarshal_eds.go (72%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/unmarshal_lds.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/unmarshal_rds.go (99%)
rename vendor/google.golang.org/grpc/{xds/internal => internal/xds}/xdsclient/xdsresource/version/version.go (100%)
delete mode 100644 vendor/google.golang.org/grpc/xds/internal/internal.go
diff --git a/go.mod b/go.mod
index ed97538293f4e..304555d1132a0 100644
--- a/go.mod
+++ b/go.mod
@@ -105,7 +105,7 @@ require (
golang.org/x/sys v0.36.0
golang.org/x/time v0.13.0
google.golang.org/api v0.252.0
- google.golang.org/grpc v1.75.1
+ google.golang.org/grpc v1.76.0
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.1
k8s.io/klog/v2 v2.130.1
@@ -206,7 +206,7 @@ require (
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
github.com/go-ini/ini v1.67.0 // indirect
- github.com/go-jose/go-jose/v4 v4.1.1 // indirect
+ github.com/go-jose/go-jose/v4 v4.1.2 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-viper/mapstructure/v2 v2.3.0 // indirect
github.com/gobwas/glob v0.2.3 // indirect
diff --git a/go.sum b/go.sum
index 345adc9513c5c..e184bc47b720a 100644
--- a/go.sum
+++ b/go.sum
@@ -473,8 +473,8 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
-github.com/go-jose/go-jose/v4 v4.1.1 h1:JYhSgy4mXXzAdF3nUx3ygx347LRXJRrpgyU3adRmkAI=
-github.com/go-jose/go-jose/v4 v4.1.1/go.mod h1:BdsZGqgdO3b6tTc6LSE56wcDbMMLuPsw5d4ZD5f94kA=
+github.com/go-jose/go-jose/v4 v4.1.2 h1:TK/7NqRQZfgAh+Td8AlsrvtPoUyiHh0LqVvokh+1vHI=
+github.com/go-jose/go-jose/v4 v4.1.2/go.mod h1:22cg9HWM1pOlnRiY+9cQYJ9XHmya1bYW8OeDM6Ku6Oo=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
@@ -1839,8 +1839,8 @@ google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI=
-google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
+google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A=
+google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
diff --git a/pkg/push/go.mod b/pkg/push/go.mod
index baf706e994081..94800e239a0f1 100644
--- a/pkg/push/go.mod
+++ b/pkg/push/go.mod
@@ -1,22 +1,22 @@
module github.com/grafana/loki/pkg/push
-go 1.23.0
+go 1.24.0
toolchain go1.24.3
require (
github.com/gogo/protobuf v1.3.2
github.com/stretchr/testify v1.11.1
- google.golang.org/grpc v1.75.1
+ google.golang.org/grpc v1.76.0
)
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- golang.org/x/net v0.41.0 // indirect
- golang.org/x/sys v0.33.0 // indirect
- golang.org/x/text v0.26.0 // indirect
+ golang.org/x/net v0.42.0 // indirect
+ golang.org/x/sys v0.34.0 // indirect
+ golang.org/x/text v0.27.0 // indirect
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
google.golang.org/protobuf v1.36.6 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
diff --git a/pkg/push/go.sum b/pkg/push/go.sum
index fc2ffe24a57a6..607bc3f6a0394 100644
--- a/pkg/push/go.sum
+++ b/pkg/push/go.sum
@@ -48,20 +48,20 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
-golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
+golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
+golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
-golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
+golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
-golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
+golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
+golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -74,8 +74,8 @@ gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
-google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI=
-google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
+google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A=
+google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md b/vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md
deleted file mode 100644
index 66a8a0f89a6f9..0000000000000
--- a/vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md
+++ /dev/null
@@ -1,101 +0,0 @@
-## Changed
-
- - Defined a custom error, ErrUnexpectedSignatureAlgorithm, returned when a JWS
- header contains an unsupported signature algorithm.
-
-# v4.0.4
-
-## Fixed
-
- - Reverted "Allow unmarshalling JSONWebKeySets with unsupported key types" as a
- breaking change. See #136 / #137.
-
-# v4.0.3
-
-## Changed
-
- - Allow unmarshalling JSONWebKeySets with unsupported key types (#130)
- - Document that OpaqueKeyEncrypter can't be implemented (for now) (#129)
- - Dependency updates
-
-# v4.0.2
-
-## Changed
-
- - Improved documentation of Verify() to note that JSONWebKeySet is a supported
- argument type (#104)
- - Defined exported error values for missing x5c header and unsupported elliptic
- curves error cases (#117)
-
-# v4.0.1
-
-## Fixed
-
- - An attacker could send a JWE containing compressed data that used large
- amounts of memory and CPU when decompressed by `Decrypt` or `DecryptMulti`.
- Those functions now return an error if the decompressed data would exceed
- 250kB or 10x the compressed size (whichever is larger). Thanks to
- Enze Wang@Alioth and Jianjun Chen@Zhongguancun Lab (@zer0yu and @chenjj)
- for reporting.
-
-# v4.0.0
-
-This release makes some breaking changes in order to more thoroughly
-address the vulnerabilities discussed in [Three New Attacks Against JSON Web
-Tokens][1], "Sign/encrypt confusion", "Billion hash attack", and "Polyglot
-token".
-
-## Changed
-
- - Limit JWT encryption types (exclude password or public key types) (#78)
- - Enforce minimum length for HMAC keys (#85)
- - jwt: match any audience in a list, rather than requiring all audiences (#81)
- - jwt: accept only Compact Serialization (#75)
- - jws: Add expected algorithms for signatures (#74)
- - Require specifying expected algorithms for ParseEncrypted,
- ParseSigned, ParseDetached, jwt.ParseEncrypted, jwt.ParseSigned,
- jwt.ParseSignedAndEncrypted (#69, #74)
- - Usually there is a small, known set of appropriate algorithms for a program
- to use and it's a mistake to allow unexpected algorithms. For instance the
- "billion hash attack" relies in part on programs accepting the PBES2
- encryption algorithm and doing the necessary work even if they weren't
- specifically configured to allow PBES2.
- - Revert "Strip padding off base64 strings" (#82)
- - The specs require base64url encoding without padding.
- - Minimum supported Go version is now 1.21
-
-## Added
-
- - ParseSignedCompact, ParseSignedJSON, ParseEncryptedCompact, ParseEncryptedJSON.
- - These allow parsing a specific serialization, as opposed to ParseSigned and
- ParseEncrypted, which try to automatically detect which serialization was
- provided. It's common to require a specific serialization for a specific
- protocol - for instance JWT requires Compact serialization.
-
-[1]: https://i.blackhat.com/BH-US-23/Presentations/US-23-Tervoort-Three-New-Attacks-Against-JSON-Web-Tokens.pdf
-
-# v3.0.2
-
-## Fixed
-
- - DecryptMulti: handle decompression error (#19)
-
-## Changed
-
- - jwe/CompactSerialize: improve performance (#67)
- - Increase the default number of PBKDF2 iterations to 600k (#48)
- - Return the proper algorithm for ECDSA keys (#45)
-
-## Added
-
- - Add Thumbprint support for opaque signers (#38)
-
-# v3.0.1
-
-## Fixed
-
- - Security issue: an attacker specifying a large "p2c" value can cause
- JSONWebEncryption.Decrypt and JSONWebEncryption.DecryptMulti to consume large
- amounts of CPU, causing a DoS. Thanks to Matt Schwager (@mschwager) for the
- disclosure and to Tom Tervoort for originally publishing the category of attack.
- https://i.blackhat.com/BH-US-23/Presentations/US-23-Tervoort-Three-New-Attacks-Against-JSON-Web-Tokens.pdf
diff --git a/vendor/github.com/go-jose/go-jose/v4/README.md b/vendor/github.com/go-jose/go-jose/v4/README.md
index 02b5749546b28..ca5f1d790b8e8 100644
--- a/vendor/github.com/go-jose/go-jose/v4/README.md
+++ b/vendor/github.com/go-jose/go-jose/v4/README.md
@@ -3,7 +3,6 @@
[](https://pkg.go.dev/github.com/go-jose/go-jose/v4)
[](https://pkg.go.dev/github.com/go-jose/go-jose/v4/jwt)
[](https://raw.githubusercontent.com/go-jose/go-jose/master/LICENSE)
-[](https://github.com/go-jose/go-jose/actions)
Package jose aims to provide an implementation of the Javascript Object Signing
and Encryption set of standards. This includes support for JSON Web Encryption,
@@ -29,17 +28,20 @@ libraries in other languages.
### Versions
-[Version 4](https://github.com/go-jose/go-jose)
-([branch](https://github.com/go-jose/go-jose/tree/main),
-[doc](https://pkg.go.dev/github.com/go-jose/go-jose/v4), [releases](https://github.com/go-jose/go-jose/releases)) is the current stable version:
+The forthcoming Version 5 will be released with several breaking API changes,
+and will require Golang's `encoding/json/v2`, which is currently requires
+Go 1.25 built with GOEXPERIMENT=jsonv2.
+
+Version 4 is the current stable version:
import "github.com/go-jose/go-jose/v4"
-The old [square/go-jose](https://github.com/square/go-jose) repo contains the prior v1 and v2 versions, which
-are still useable but not actively developed anymore.
+It supports at least the current and previous Golang release. Currently it
+requires Golang 1.23.
+
+Version 3 is only receiving critical security updates. Migration to Version 4 is recommended.
-Version 3, in this repo, is still receiving security fixes but not functionality
-updates.
+Versions 1 and 2 are obsolete, but can be found in the old repository, [square/go-jose](https://github.com/square/go-jose).
### Supported algorithms
@@ -47,36 +49,36 @@ See below for a table of supported algorithms. Algorithm identifiers match
the names in the [JSON Web Algorithms](https://dx.doi.org/10.17487/RFC7518)
standard where possible. The Godoc reference has a list of constants.
- Key encryption | Algorithm identifier(s)
- :------------------------- | :------------------------------
- RSA-PKCS#1v1.5 | RSA1_5
- RSA-OAEP | RSA-OAEP, RSA-OAEP-256
- AES key wrap | A128KW, A192KW, A256KW
- AES-GCM key wrap | A128GCMKW, A192GCMKW, A256GCMKW
- ECDH-ES + AES key wrap | ECDH-ES+A128KW, ECDH-ES+A192KW, ECDH-ES+A256KW
- ECDH-ES (direct) | ECDH-ES1
- Direct encryption | dir1
+| Key encryption | Algorithm identifier(s) |
+|:-----------------------|:-----------------------------------------------|
+| RSA-PKCS#1v1.5 | RSA1_5 |
+| RSA-OAEP | RSA-OAEP, RSA-OAEP-256 |
+| AES key wrap | A128KW, A192KW, A256KW |
+| AES-GCM key wrap | A128GCMKW, A192GCMKW, A256GCMKW |
+| ECDH-ES + AES key wrap | ECDH-ES+A128KW, ECDH-ES+A192KW, ECDH-ES+A256KW |
+| ECDH-ES (direct) | ECDH-ES1 |
+| Direct encryption | dir1 |
1. Not supported in multi-recipient mode
- Signing / MAC | Algorithm identifier(s)
- :------------------------- | :------------------------------
- RSASSA-PKCS#1v1.5 | RS256, RS384, RS512
- RSASSA-PSS | PS256, PS384, PS512
- HMAC | HS256, HS384, HS512
- ECDSA | ES256, ES384, ES512
- Ed25519 | EdDSA2
+| Signing / MAC | Algorithm identifier(s) |
+|:------------------|:------------------------|
+| RSASSA-PKCS#1v1.5 | RS256, RS384, RS512 |
+| RSASSA-PSS | PS256, PS384, PS512 |
+| HMAC | HS256, HS384, HS512 |
+| ECDSA | ES256, ES384, ES512 |
+| Ed25519 | EdDSA2 |
2. Only available in version 2 of the package
- Content encryption | Algorithm identifier(s)
- :------------------------- | :------------------------------
- AES-CBC+HMAC | A128CBC-HS256, A192CBC-HS384, A256CBC-HS512
- AES-GCM | A128GCM, A192GCM, A256GCM
+| Content encryption | Algorithm identifier(s) |
+|:-------------------|:--------------------------------------------|
+| AES-CBC+HMAC | A128CBC-HS256, A192CBC-HS384, A256CBC-HS512 |
+| AES-GCM | A128GCM, A192GCM, A256GCM |
- Compression | Algorithm identifiers(s)
- :------------------------- | -------------------------------
- DEFLATE (RFC 1951) | DEF
+| Compression | Algorithm identifiers(s) |
+|:-------------------|--------------------------|
+| DEFLATE (RFC 1951) | DEF |
### Supported key types
@@ -85,12 +87,12 @@ library, and can be passed to corresponding functions such as `NewEncrypter` or
`NewSigner`. Each of these keys can also be wrapped in a JWK if desired, which
allows attaching a key id.
- Algorithm(s) | Corresponding types
- :------------------------- | -------------------------------
- RSA | *[rsa.PublicKey](https://pkg.go.dev/crypto/rsa/#PublicKey), *[rsa.PrivateKey](https://pkg.go.dev/crypto/rsa/#PrivateKey)
- ECDH, ECDSA | *[ecdsa.PublicKey](https://pkg.go.dev/crypto/ecdsa/#PublicKey), *[ecdsa.PrivateKey](https://pkg.go.dev/crypto/ecdsa/#PrivateKey)
- EdDSA1 | [ed25519.PublicKey](https://pkg.go.dev/crypto/ed25519#PublicKey), [ed25519.PrivateKey](https://pkg.go.dev/crypto/ed25519#PrivateKey)
- AES, HMAC | []byte
+| Algorithm(s) | Corresponding types |
+|:------------------|--------------------------------------------------------------------------------------------------------------------------------------|
+| RSA | *[rsa.PublicKey](https://pkg.go.dev/crypto/rsa/#PublicKey), *[rsa.PrivateKey](https://pkg.go.dev/crypto/rsa/#PrivateKey) |
+| ECDH, ECDSA | *[ecdsa.PublicKey](https://pkg.go.dev/crypto/ecdsa/#PublicKey), *[ecdsa.PrivateKey](https://pkg.go.dev/crypto/ecdsa/#PrivateKey) |
+| EdDSA1 | [ed25519.PublicKey](https://pkg.go.dev/crypto/ed25519#PublicKey), [ed25519.PrivateKey](https://pkg.go.dev/crypto/ed25519#PrivateKey) |
+| AES, HMAC | []byte |
1. Only available in version 2 or later of the package
diff --git a/vendor/github.com/go-jose/go-jose/v4/crypter.go b/vendor/github.com/go-jose/go-jose/v4/crypter.go
index d81b03b447400..ab02a28e26b26 100644
--- a/vendor/github.com/go-jose/go-jose/v4/crypter.go
+++ b/vendor/github.com/go-jose/go-jose/v4/crypter.go
@@ -286,6 +286,10 @@ func makeJWERecipient(alg KeyAlgorithm, encryptionKey interface{}) (recipientKey
return newSymmetricRecipient(alg, encryptionKey)
case string:
return newSymmetricRecipient(alg, []byte(encryptionKey))
+ case JSONWebKey:
+ recipient, err := makeJWERecipient(alg, encryptionKey.Key)
+ recipient.keyID = encryptionKey.KeyID
+ return recipient, err
case *JSONWebKey:
recipient, err := makeJWERecipient(alg, encryptionKey.Key)
recipient.keyID = encryptionKey.KeyID
diff --git a/vendor/github.com/go-jose/go-jose/v4/jwk.go b/vendor/github.com/go-jose/go-jose/v4/jwk.go
index 9700f8906c41b..164d6a1619720 100644
--- a/vendor/github.com/go-jose/go-jose/v4/jwk.go
+++ b/vendor/github.com/go-jose/go-jose/v4/jwk.go
@@ -175,6 +175,8 @@ func (k JSONWebKey) MarshalJSON() ([]byte, error) {
}
// UnmarshalJSON reads a key from its JSON representation.
+//
+// Returns ErrUnsupportedKeyType for unrecognized or unsupported "kty" header values.
func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) {
var raw rawJSONWebKey
err = json.Unmarshal(data, &raw)
@@ -228,7 +230,7 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) {
}
key, err = raw.symmetricKey()
case "OKP":
- if raw.Crv == "Ed25519" && raw.X != nil {
+ if raw.Crv == "Ed25519" {
if raw.D != nil {
key, err = raw.edPrivateKey()
if err == nil {
@@ -238,17 +240,27 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) {
key, err = raw.edPublicKey()
keyPub = key
}
- } else {
- return fmt.Errorf("go-jose/go-jose: unknown curve '%s'", raw.Crv)
}
- default:
- return fmt.Errorf("go-jose/go-jose: unknown json web key type '%s'", raw.Kty)
+ case "":
+ // kty MUST be present
+ err = fmt.Errorf("go-jose/go-jose: missing json web key type")
}
if err != nil {
return
}
+ if key == nil {
+ // RFC 7517:
+ // 5. JWK Set Format
+ // ...
+ // Implementations SHOULD ignore JWKs within a JWK Set that use "kty"
+ // (key type) values that are not understood by them, that are missing
+ // required members, or for which values are out of the supported
+ // ranges.
+ return ErrUnsupportedKeyType
+ }
+
if certPub != nil && keyPub != nil {
if !reflect.DeepEqual(certPub, keyPub) {
return errors.New("go-jose/go-jose: invalid JWK, public keys in key and x5c fields do not match")
@@ -581,10 +593,10 @@ func fromEcPublicKey(pub *ecdsa.PublicKey) (*rawJSONWebKey, error) {
func (key rawJSONWebKey) edPrivateKey() (ed25519.PrivateKey, error) {
var missing []string
- switch {
- case key.D == nil:
+ if key.D == nil {
missing = append(missing, "D")
- case key.X == nil:
+ }
+ if key.X == nil {
missing = append(missing, "X")
}
@@ -611,19 +623,21 @@ func (key rawJSONWebKey) edPublicKey() (ed25519.PublicKey, error) {
func (key rawJSONWebKey) rsaPrivateKey() (*rsa.PrivateKey, error) {
var missing []string
- switch {
- case key.N == nil:
+ if key.N == nil {
missing = append(missing, "N")
- case key.E == nil:
+ }
+ if key.E == nil {
missing = append(missing, "E")
- case key.D == nil:
+ }
+ if key.D == nil {
missing = append(missing, "D")
- case key.P == nil:
+ }
+ if key.P == nil {
missing = append(missing, "P")
- case key.Q == nil:
+ }
+ if key.Q == nil {
missing = append(missing, "Q")
}
-
if len(missing) > 0 {
return nil, fmt.Errorf("go-jose/go-jose: invalid RSA private key, missing %s value(s)", strings.Join(missing, ", "))
}
@@ -698,8 +712,19 @@ func (key rawJSONWebKey) ecPrivateKey() (*ecdsa.PrivateKey, error) {
return nil, fmt.Errorf("go-jose/go-jose: unsupported elliptic curve '%s'", key.Crv)
}
- if key.X == nil || key.Y == nil || key.D == nil {
- return nil, fmt.Errorf("go-jose/go-jose: invalid EC private key, missing x/y/d values")
+ var missing []string
+ if key.X == nil {
+ missing = append(missing, "X")
+ }
+ if key.Y == nil {
+ missing = append(missing, "Y")
+ }
+ if key.D == nil {
+ missing = append(missing, "D")
+ }
+
+ if len(missing) > 0 {
+ return nil, fmt.Errorf("go-jose/go-jose: invalid EC private key, missing %s value(s)", strings.Join(missing, ", "))
}
// The length of this octet string MUST be the full size of a coordinate for
diff --git a/vendor/github.com/go-jose/go-jose/v4/shared.go b/vendor/github.com/go-jose/go-jose/v4/shared.go
index 1ec33961265b9..56a81b258d04f 100644
--- a/vendor/github.com/go-jose/go-jose/v4/shared.go
+++ b/vendor/github.com/go-jose/go-jose/v4/shared.go
@@ -22,7 +22,6 @@ import (
"encoding/base64"
"errors"
"fmt"
-
"github.com/go-jose/go-jose/v4/json"
)
diff --git a/vendor/google.golang.org/grpc/CONTRIBUTING.md b/vendor/google.golang.org/grpc/CONTRIBUTING.md
index 1de0ce66691dd..2079de7b0ed88 100644
--- a/vendor/google.golang.org/grpc/CONTRIBUTING.md
+++ b/vendor/google.golang.org/grpc/CONTRIBUTING.md
@@ -33,17 +33,21 @@ guidelines, there may be valid reasons to do so, but it should be rare.
## Guidelines for Pull Requests
-How to get your contributions merged smoothly and quickly:
+Please read the following carefully to ensure your contributions can be merged
+smoothly and quickly.
+
+### PR Contents
- Create **small PRs** that are narrowly focused on **addressing a single
concern**. We often receive PRs that attempt to fix several things at the same
time, and if one part of the PR has a problem, that will hold up the entire
PR.
-- For **speculative changes**, consider opening an issue and discussing it
- first. If you are suggesting a behavioral or API change, consider starting
- with a [gRFC proposal](https://github.com/grpc/proposal). Many new features
- that are not bug fixes will require cross-language agreement.
+- If your change does not address an **open issue** with an **agreed
+ resolution**, consider opening an issue and discussing it first. If you are
+ suggesting a behavioral or API change, consider starting with a [gRFC
+ proposal](https://github.com/grpc/proposal). Many new features that are not
+ bug fixes will require cross-language agreement.
- If you want to fix **formatting or style**, consider whether your changes are
an obvious improvement or might be considered a personal preference. If a
@@ -56,16 +60,6 @@ How to get your contributions merged smoothly and quickly:
often written as "iff". Please do not make spelling correction changes unless
you are certain they are misspellings.
-- Provide a good **PR description** as a record of **what** change is being made
- and **why** it was made. Link to a GitHub issue if it exists.
-
-- Maintain a **clean commit history** and use **meaningful commit messages**.
- PRs with messy commit histories are difficult to review and won't be merged.
- Before sending your PR, ensure your changes are based on top of the latest
- `upstream/master` commits, and avoid rebasing in the middle of a code review.
- You should **never use `git push -f`** unless absolutely necessary during a
- review, as it can interfere with GitHub's tracking of comments.
-
- **All tests need to be passing** before your change can be merged. We
recommend you run tests locally before creating your PR to catch breakages
early on:
@@ -81,15 +75,80 @@ How to get your contributions merged smoothly and quickly:
GitHub, which will trigger a GitHub Actions run that you can use to verify
everything is passing.
-- If you are adding a new file, make sure it has the **copyright message**
+- Note that there are two GitHub actions checks that need not be green:
+
+ 1. We test the freshness of the generated proto code we maintain via the
+ `vet-proto` check. If the source proto files are updated, but our repo is
+ not updated, an optional checker will fail. This will be fixed by our team
+ in a separate PR and will not prevent the merge of your PR.
+
+ 2. We run a checker that will fail if there is any change in dependencies of
+ an exported package via the `dependencies` check. If new dependencies are
+ added that are not appropriate, we may not accept your PR (see below).
+
+- If you are adding a **new file**, make sure it has the **copyright message**
template at the top as a comment. You can copy the message from an existing
file and update the year.
- The grpc package should only depend on standard Go packages and a small number
of exceptions. **If your contribution introduces new dependencies**, you will
- need a discussion with gRPC-Go maintainers. A GitHub action check will run on
- every PR, and will flag any transitive dependency changes from any public
- package.
+ need a discussion with gRPC-Go maintainers.
+
+### PR Descriptions
+
+- **PR titles** should start with the name of the component being addressed, or
+ the type of change. Examples: transport, client, server, round_robin, xds,
+ cleanup, deps.
+
+- Read and follow the **guidelines for PR titles and descriptions** here:
+ https://google.github.io/eng-practices/review/developer/cl-descriptions.html
+
+ *particularly* the sections "First Line" and "Body is Informative".
+
+ Note: your PR description will be used as the git commit message in a
+ squash-and-merge if your PR is approved. We may make changes to this as
+ necessary.
+
+- **Does this PR relate to an open issue?** On the first line, please use the
+ tag `Fixes #` to ensure the issue is closed when the PR is merged. Or
+ use `Updates #` if the PR is related to an open issue, but does not fix
+ it. Consider filing an issue if one does not already exist.
+
+- PR descriptions *must* conclude with **release notes** as follows:
+
+ ```
+ RELEASE NOTES:
+ * :
+ ```
+
+ This need not match the PR title.
+
+ The summary must:
+
+ * be something that gRPC users will understand.
+
+ * clearly explain the feature being added, the issue being fixed, or the
+ behavior being changed, etc. If fixing a bug, be clear about how the bug
+ can be triggered by an end-user.
+
+ * begin with a capital letter and use complete sentences.
+
+ * be as short as possible to describe the change being made.
+
+ If a PR is *not* end-user visible -- e.g. a cleanup, testing change, or
+ GitHub-related, use `RELEASE NOTES: n/a`.
+
+### PR Process
+
+- Please **self-review** your code changes before sending your PR. This will
+ prevent simple, obvious errors from causing delays.
+
+- Maintain a **clean commit history** and use **meaningful commit messages**.
+ PRs with messy commit histories are difficult to review and won't be merged.
+ Before sending your PR, ensure your changes are based on top of the latest
+ `upstream/master` commits, and avoid rebasing in the middle of a code review.
+ You should **never use `git push -f`** unless absolutely necessary during a
+ review, as it can interfere with GitHub's tracking of comments.
- Unless your PR is trivial, you should **expect reviewer comments** that you
will need to address before merging. We'll label the PR as `Status: Requires
@@ -98,5 +157,3 @@ How to get your contributions merged smoothly and quickly:
`stale`, and we will automatically close it after 7 days if we don't hear back
from you. Please feel free to ping issues or bugs if you do not get a response
within a week.
-
-- Exceptions to the rules can be made if there's a compelling reason to do so.
diff --git a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go
index f2df56120fecd..0020521205703 100644
--- a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go
+++ b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go
@@ -82,14 +82,8 @@ func (lb *lbBalancer) processServerList(l *lbpb.ServerList) {
}
md := metadata.Pairs(lbTokenKey, s.LoadBalanceToken)
- ip := net.IP(s.IpAddress)
- ipStr := ip.String()
- if ip.To4() == nil {
- // Add square brackets to ipv6 addresses, otherwise net.Dial() and
- // net.SplitHostPort() will return too many colons error.
- ipStr = fmt.Sprintf("[%s]", ipStr)
- }
- addr := imetadata.Set(resolver.Address{Addr: fmt.Sprintf("%s:%d", ipStr, s.Port)}, md)
+ ipStr := net.IP(s.IpAddress).String()
+ addr := imetadata.Set(resolver.Address{Addr: net.JoinHostPort(ipStr, fmt.Sprintf("%d", s.Port))}, md)
if lb.logger.V(2) {
lb.logger.Infof("Server list entry:|%d|, ipStr:|%s|, port:|%d|, load balancer token:|%v|", i, ipStr, s.Port, s.LoadBalanceToken)
}
diff --git a/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go b/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go
index ea8899818c22e..b15c10e46b0a0 100644
--- a/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go
+++ b/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go
@@ -169,7 +169,7 @@ func (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState
addrs = state.ResolverState.Addresses
if cfg.ShuffleAddressList {
addrs = append([]resolver.Address{}, addrs...)
- rand.Shuffle(len(addrs), func(i, j int) { addrs[i], addrs[j] = addrs[j], addrs[i] })
+ internal.RandShuffle(len(addrs), func(i, j int) { addrs[i], addrs[j] = addrs[j], addrs[i] })
}
}
diff --git a/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go b/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go
index 67f315a0dbc46..9ffdd28a01efc 100644
--- a/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go
+++ b/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go
@@ -283,7 +283,7 @@ func (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState
newAddrs = state.ResolverState.Addresses
if cfg.ShuffleAddressList {
newAddrs = append([]resolver.Address{}, newAddrs...)
- internal.RandShuffle(len(endpoints), func(i, j int) { endpoints[i], endpoints[j] = endpoints[j], endpoints[i] })
+ internal.RandShuffle(len(newAddrs), func(i, j int) { newAddrs[i], newAddrs[j] = newAddrs[j], newAddrs[i] })
}
}
@@ -351,6 +351,13 @@ func (b *pickfirstBalancer) ExitIdle() {
b.mu.Lock()
defer b.mu.Unlock()
if b.state == connectivity.Idle {
+ // Move the balancer into CONNECTING state immediately. This is done to
+ // avoid staying in IDLE if a resolver update arrives before the first
+ // SubConn reports CONNECTING.
+ b.updateBalancerState(balancer.State{
+ ConnectivityState: connectivity.Connecting,
+ Picker: &picker{err: balancer.ErrNoSubConnAvailable},
+ })
b.startFirstPassLocked()
}
}
@@ -604,7 +611,7 @@ func (b *pickfirstBalancer) updateSubConnState(sd *scData, newState balancer.Sub
if !b.addressList.seekTo(sd.addr) {
// This should not fail as we should have only one SubConn after
// entering READY. The SubConn should be present in the addressList.
- b.logger.Errorf("Address %q not found address list in %v", sd.addr, b.addressList.addresses)
+ b.logger.Errorf("Address %q not found address list in %v", sd.addr, b.addressList.addresses)
return
}
if !b.healthCheckingEnabled {
diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go
index 3f762285db712..a3c315f2d76eb 100644
--- a/vendor/google.golang.org/grpc/clientconn.go
+++ b/vendor/google.golang.org/grpc/clientconn.go
@@ -456,7 +456,7 @@ func (cc *ClientConn) validateTransportCredentials() error {
func (cc *ClientConn) channelzRegistration(target string) {
parentChannel, _ := cc.dopts.channelzParent.(*channelz.Channel)
cc.channelz = channelz.RegisterChannel(parentChannel, target)
- cc.addTraceEvent("created")
+ cc.addTraceEvent(fmt.Sprintf("created for target %q", target))
}
// chainUnaryClientInterceptors chains all unary client interceptors into one.
diff --git a/vendor/google.golang.org/grpc/encoding/proto/proto.go b/vendor/google.golang.org/grpc/encoding/proto/proto.go
index ceec319dd2fb4..1ab874c7ad264 100644
--- a/vendor/google.golang.org/grpc/encoding/proto/proto.go
+++ b/vendor/google.golang.org/grpc/encoding/proto/proto.go
@@ -46,9 +46,25 @@ func (c *codecV2) Marshal(v any) (data mem.BufferSlice, err error) {
return nil, fmt.Errorf("proto: failed to marshal, message is %T, want proto.Message", v)
}
+ // Important: if we remove this Size call then we cannot use
+ // UseCachedSize in MarshalOptions below.
size := proto.Size(vv)
+
+ // MarshalOptions with UseCachedSize allows reusing the result from the
+ // previous Size call. This is safe here because:
+ //
+ // 1. We just computed the size.
+ // 2. We assume the message is not being mutated concurrently.
+ //
+ // Important: If the proto.Size call above is removed, using UseCachedSize
+ // becomes unsafe and may lead to incorrect marshaling.
+ //
+ // For more details, see the doc of UseCachedSize:
+ // https://pkg.go.dev/google.golang.org/protobuf/proto#MarshalOptions
+ marshalOptions := proto.MarshalOptions{UseCachedSize: true}
+
if mem.IsBelowBufferPoolingThreshold(size) {
- buf, err := proto.Marshal(vv)
+ buf, err := marshalOptions.Marshal(vv)
if err != nil {
return nil, err
}
@@ -56,7 +72,7 @@ func (c *codecV2) Marshal(v any) (data mem.BufferSlice, err error) {
} else {
pool := mem.DefaultBufferPool()
buf := pool.Get(size)
- if _, err := (proto.MarshalOptions{}).MarshalAppend((*buf)[:0], vv); err != nil {
+ if _, err := marshalOptions.MarshalAppend((*buf)[:0], vv); err != nil {
pool.Put(buf)
return nil, err
}
diff --git a/vendor/google.golang.org/grpc/internal/buffer/unbounded.go b/vendor/google.golang.org/grpc/internal/buffer/unbounded.go
index 11f91668ac9be..467392b8d4555 100644
--- a/vendor/google.golang.org/grpc/internal/buffer/unbounded.go
+++ b/vendor/google.golang.org/grpc/internal/buffer/unbounded.go
@@ -83,6 +83,7 @@ func (b *Unbounded) Load() {
default:
}
} else if b.closing && !b.closed {
+ b.closed = true
close(b.c)
}
}
diff --git a/vendor/google.golang.org/grpc/internal/channelz/trace.go b/vendor/google.golang.org/grpc/internal/channelz/trace.go
index 2bffe4777684d..3b7ba59662537 100644
--- a/vendor/google.golang.org/grpc/internal/channelz/trace.go
+++ b/vendor/google.golang.org/grpc/internal/channelz/trace.go
@@ -194,7 +194,7 @@ func (r RefChannelType) String() string {
// If channelz is not turned ON, this will simply log the event descriptions.
func AddTraceEvent(l grpclog.DepthLoggerV2, e Entity, depth int, desc *TraceEvent) {
// Log only the trace description associated with the bottom most entity.
- d := fmt.Sprintf("[%s]%s", e, desc.Desc)
+ d := fmt.Sprintf("[%s] %s", e, desc.Desc)
switch desc.Severity {
case CtUnknown, CtInfo:
l.InfoDepth(depth+1, d)
diff --git a/vendor/google.golang.org/grpc/internal/envconfig/xds.go b/vendor/google.golang.org/grpc/internal/envconfig/xds.go
index e87551552ad7e..b1f883bcac1ed 100644
--- a/vendor/google.golang.org/grpc/internal/envconfig/xds.go
+++ b/vendor/google.golang.org/grpc/internal/envconfig/xds.go
@@ -68,4 +68,10 @@ var (
// trust. For more details, see:
// https://github.com/grpc/proposal/blob/master/A87-mtls-spiffe-support.md
XDSSPIFFEEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_MTLS_SPIFFE", false)
+
+ // XDSHTTPConnectEnabled is true if gRPC should parse custom Metadata
+ // configuring use of an HTTP CONNECT proxy via xDS from cluster resources.
+ // For more details, see:
+ // https://github.com/grpc/proposal/blob/master/A86-xds-http-connect.md
+ XDSHTTPConnectEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_HTTP_CONNECT", false)
)
diff --git a/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go b/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go
index 8e8e861280a07..9b6d8a1fa3fe7 100644
--- a/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go
+++ b/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go
@@ -80,25 +80,11 @@ func (cs *CallbackSerializer) ScheduleOr(f func(ctx context.Context), onFailure
func (cs *CallbackSerializer) run(ctx context.Context) {
defer close(cs.done)
- // TODO: when Go 1.21 is the oldest supported version, this loop and Close
- // can be replaced with:
- //
- // context.AfterFunc(ctx, cs.callbacks.Close)
- for ctx.Err() == nil {
- select {
- case <-ctx.Done():
- // Do nothing here. Next iteration of the for loop will not happen,
- // since ctx.Err() would be non-nil.
- case cb := <-cs.callbacks.Get():
- cs.callbacks.Load()
- cb.(func(context.Context))(ctx)
- }
- }
-
- // Close the buffer to prevent new callbacks from being added.
- cs.callbacks.Close()
+ // Close the buffer when the context is canceled
+ // to prevent new callbacks from being added.
+ context.AfterFunc(ctx, cs.callbacks.Close)
- // Run all pending callbacks.
+ // Run all callbacks.
for cb := range cs.callbacks.Get() {
cs.callbacks.Load()
cb.(func(context.Context))(ctx)
diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go
index 5467fe9715a3e..7cb238794fb53 100644
--- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go
+++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go
@@ -556,6 +556,19 @@ func (t *http2Client) createHeaderFields(ctx context.Context, callHdr *CallHdr)
// Make the slice of certain predictable size to reduce allocations made by append.
hfLen := 7 // :method, :scheme, :path, :authority, content-type, user-agent, te
hfLen += len(authData) + len(callAuthData)
+ registeredCompressors := t.registeredCompressors
+ if callHdr.PreviousAttempts > 0 {
+ hfLen++
+ }
+ if callHdr.SendCompress != "" {
+ hfLen++
+ }
+ if registeredCompressors != "" {
+ hfLen++
+ }
+ if _, ok := ctx.Deadline(); ok {
+ hfLen++
+ }
headerFields := make([]hpack.HeaderField, 0, hfLen)
headerFields = append(headerFields, hpack.HeaderField{Name: ":method", Value: "POST"})
headerFields = append(headerFields, hpack.HeaderField{Name: ":scheme", Value: t.scheme})
@@ -568,7 +581,6 @@ func (t *http2Client) createHeaderFields(ctx context.Context, callHdr *CallHdr)
headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-previous-rpc-attempts", Value: strconv.Itoa(callHdr.PreviousAttempts)})
}
- registeredCompressors := t.registeredCompressors
if callHdr.SendCompress != "" {
headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-encoding", Value: callHdr.SendCompress})
// Include the outgoing compressor name when compressor is not registered
@@ -1499,13 +1511,6 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) {
case "grpc-message":
grpcMessage = decodeGrpcMessage(hf.Value)
case ":status":
- if hf.Value == "200" {
- httpStatusErr = ""
- statusCode := 200
- httpStatusCode = &statusCode
- break
- }
-
c, err := strconv.ParseInt(hf.Value, 10, 32)
if err != nil {
se := status.New(codes.Internal, fmt.Sprintf("transport: malformed http-status: %v", err))
@@ -1513,7 +1518,19 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) {
return
}
statusCode := int(c)
+ if statusCode >= 100 && statusCode < 200 {
+ if endStream {
+ se := status.New(codes.Internal, fmt.Sprintf(
+ "protocol error: informational header with status code %d must not have END_STREAM set", statusCode))
+ t.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream)
+ }
+ return
+ }
httpStatusCode = &statusCode
+ if statusCode == 200 {
+ httpStatusErr = ""
+ break
+ }
httpStatusErr = fmt.Sprintf(
"unexpected HTTP status code received from server: %d (%s)",
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/balancer.go b/vendor/google.golang.org/grpc/internal/xds/balancer/balancer.go
similarity index 75%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/balancer.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/balancer.go
index ff27af026db59..af3f999a12042 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/balancer.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/balancer.go
@@ -22,10 +22,10 @@ package balancer
import (
_ "google.golang.org/grpc/balancer/leastrequest" // Register the least_request_experimental balancer
_ "google.golang.org/grpc/balancer/weightedtarget" // Register the weighted_target balancer
- _ "google.golang.org/grpc/xds/internal/balancer/cdsbalancer" // Register the CDS balancer
- _ "google.golang.org/grpc/xds/internal/balancer/clusterimpl" // Register the xds_cluster_impl balancer
- _ "google.golang.org/grpc/xds/internal/balancer/clustermanager" // Register the xds_cluster_manager balancer
- _ "google.golang.org/grpc/xds/internal/balancer/clusterresolver" // Register the xds_cluster_resolver balancer
- _ "google.golang.org/grpc/xds/internal/balancer/outlierdetection" // Register the outlier_detection balancer
- _ "google.golang.org/grpc/xds/internal/balancer/priority" // Register the priority balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/cdsbalancer" // Register the CDS balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/clusterimpl" // Register the xds_cluster_impl balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/clustermanager" // Register the xds_cluster_manager balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/clusterresolver" // Register the xds_cluster_resolver balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/outlierdetection" // Register the outlier_detection balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/priority" // Register the priority balancer
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cdsbalancer.go b/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cdsbalancer.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cdsbalancer.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cdsbalancer.go
index b413b8acdb989..0ad77b85e9f18 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cdsbalancer.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cdsbalancer.go
@@ -35,11 +35,11 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
"google.golang.org/grpc/internal/pretty"
+ "google.golang.org/grpc/internal/xds/balancer/clusterresolver"
+ "google.golang.org/grpc/internal/xds/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/serviceconfig"
- "google.golang.org/grpc/xds/internal/balancer/clusterresolver"
- "google.golang.org/grpc/xds/internal/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
const (
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cluster_watcher.go b/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cluster_watcher.go
similarity index 97%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cluster_watcher.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cluster_watcher.go
index a9adea0c80407..dd702b125b326 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cluster_watcher.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cluster_watcher.go
@@ -19,7 +19,7 @@ package cdsbalancer
import (
"context"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// clusterWatcher implements the xdsresource.ClusterWatcher interface, and is
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/logging.go b/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/clusterimpl.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/clusterimpl.go
similarity index 97%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/clusterimpl.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/clusterimpl.go
index 006be4c4eef9a..ffe0a3db55a87 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/clusterimpl.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/clusterimpl.go
@@ -38,15 +38,14 @@ import (
"google.golang.org/grpc/internal/balancer/gracefulswitch"
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/pretty"
- "google.golang.org/grpc/internal/xds"
+ xdsinternal "google.golang.org/grpc/internal/xds"
+ "google.golang.org/grpc/internal/xds/balancer/loadstore"
"google.golang.org/grpc/internal/xds/bootstrap"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/serviceconfig"
- xdsinternal "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/balancer/loadstore"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
- "google.golang.org/grpc/xds/internal/xdsclient"
)
const (
@@ -436,7 +435,7 @@ func (b *clusterImplBalancer) NewSubConn(addrs []resolver.Address, opts balancer
clusterName := b.getClusterName()
newAddrs := make([]resolver.Address, len(addrs))
for i, addr := range addrs {
- newAddrs[i] = xds.SetXDSHandshakeClusterName(addr, clusterName)
+ newAddrs[i] = xdsinternal.SetXDSHandshakeClusterName(addr, clusterName)
}
var sc balancer.SubConn
scw := &scWrapper{}
@@ -475,7 +474,7 @@ func (b *clusterImplBalancer) UpdateAddresses(sc balancer.SubConn, addrs []resol
newAddrs := make([]resolver.Address, len(addrs))
var lID clients.Locality
for i, addr := range addrs {
- newAddrs[i] = xds.SetXDSHandshakeClusterName(addr, clusterName)
+ newAddrs[i] = xdsinternal.SetXDSHandshakeClusterName(addr, clusterName)
lID = xdsinternal.GetLocalityID(newAddrs[i])
}
if scw, ok := sc.(*scWrapper); ok {
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/config.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/config.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/config.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/config.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/logging.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/picker.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/picker.go
similarity index 95%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/picker.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/picker.go
index 9ed16ffbe4676..fab09fa0978b4 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/picker.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/picker.go
@@ -27,10 +27,10 @@ import (
"google.golang.org/grpc/connectivity"
"google.golang.org/grpc/internal/stats"
"google.golang.org/grpc/internal/wrr"
+ xdsinternal "google.golang.org/grpc/internal/xds"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/xdsclient"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/xdsclient"
)
// NewRandomWRR is used when calculating drops. It's exported so that tests can
@@ -155,7 +155,7 @@ func (d *picker) Pick(info balancer.PickInfo) (balancer.PickResult, error) {
}
if labels := telemetryLabels(info.Ctx); labels != nil {
- labels["grpc.lb.locality"] = internal.LocalityString(lID)
+ labels["grpc.lb.locality"] = xdsinternal.LocalityString(lID)
}
if d.loadStore != nil {
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/balancerstateaggregator.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/balancerstateaggregator.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/balancerstateaggregator.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/balancerstateaggregator.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/clustermanager.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/clustermanager.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/clustermanager.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/clustermanager.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/config.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/config.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/config.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/config.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/picker.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/picker.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/picker.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/picker.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/clusterresolver.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/clusterresolver.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/clusterresolver.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/clusterresolver.go
index f9ce57293393a..f5a30e1acbec9 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/clusterresolver.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/clusterresolver.go
@@ -35,12 +35,12 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
"google.golang.org/grpc/internal/pretty"
+ "google.golang.org/grpc/internal/xds/balancer/outlierdetection"
+ "google.golang.org/grpc/internal/xds/balancer/priority"
+ "google.golang.org/grpc/internal/xds/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/serviceconfig"
- "google.golang.org/grpc/xds/internal/balancer/outlierdetection"
- "google.golang.org/grpc/xds/internal/balancer/priority"
- "google.golang.org/grpc/xds/internal/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
// Name is the name of the cluster_resolver balancer.
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/config.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/config.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/config.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/config.go
index 7614b0fc57bd2..f3b4c6bf61460 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/config.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/config.go
@@ -23,9 +23,9 @@ import (
"fmt"
internalserviceconfig "google.golang.org/grpc/internal/serviceconfig"
+ "google.golang.org/grpc/internal/xds/balancer/outlierdetection"
"google.golang.org/grpc/internal/xds/bootstrap"
"google.golang.org/grpc/serviceconfig"
- "google.golang.org/grpc/xds/internal/balancer/outlierdetection"
)
// DiscoveryMechanismType is the type of discovery mechanism.
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder.go
similarity index 96%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder.go
index 9c7fed8629bae..3d8e08972c1df 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder.go
@@ -26,14 +26,14 @@ import (
"google.golang.org/grpc/internal/balancer/weight"
"google.golang.org/grpc/internal/hierarchy"
internalserviceconfig "google.golang.org/grpc/internal/serviceconfig"
+ xdsinternal "google.golang.org/grpc/internal/xds"
+ "google.golang.org/grpc/internal/xds/balancer/clusterimpl"
+ "google.golang.org/grpc/internal/xds/balancer/outlierdetection"
+ "google.golang.org/grpc/internal/xds/balancer/priority"
+ "google.golang.org/grpc/internal/xds/balancer/wrrlocality"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/resolver/ringhash"
- "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/balancer/clusterimpl"
- "google.golang.org/grpc/xds/internal/balancer/outlierdetection"
- "google.golang.org/grpc/xds/internal/balancer/priority"
- "google.golang.org/grpc/xds/internal/balancer/wrrlocality"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
const million = 1000000
@@ -257,7 +257,7 @@ func priorityLocalitiesToClusterImpl(localities []xdsresource.Locality, priority
if locality.Weight != 0 {
lw = locality.Weight
}
- localityStr := internal.LocalityString(locality.ID)
+ localityStr := xdsinternal.LocalityString(locality.ID)
for _, endpoint := range locality.Endpoints {
// Filter out all "unhealthy" endpoints (unknown and healthy are
// both considered to be healthy:
@@ -270,7 +270,7 @@ func priorityLocalitiesToClusterImpl(localities []xdsresource.Locality, priority
resolverEndpoint.Addresses = append(resolverEndpoint.Addresses, resolver.Address{Addr: as})
}
resolverEndpoint = hierarchy.SetInEndpoint(resolverEndpoint, []string{priorityName, localityStr})
- resolverEndpoint = internal.SetLocalityIDInEndpoint(resolverEndpoint, locality.ID)
+ resolverEndpoint = xdsinternal.SetLocalityIDInEndpoint(resolverEndpoint, locality.ID)
// "To provide the xds_wrr_locality load balancer information about
// locality weights received from EDS, the cluster resolver will
// populate a new locality weight attribute for each address The
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder_childname.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder_childname.go
similarity index 96%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder_childname.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder_childname.go
index bf4e33496ec73..296ed740e4019 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder_childname.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder_childname.go
@@ -20,8 +20,8 @@ package clusterresolver
import (
"fmt"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// nameGenerator generates a child name for a list of priorities (each priority
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/logging.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver.go
index c1a656c59726d..90e950c733322 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver.go
@@ -24,8 +24,8 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
// resourceUpdate is a combined update from all the resources, in the order of
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_dns.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_dns.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_dns.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_dns.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_eds.go b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_eds.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_eds.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_eds.go
index 043def95079d7..18b517f111d92 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_eds.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_eds.go
@@ -23,7 +23,7 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
type edsDiscoveryMechanism struct {
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/loadstore/load_store_wrapper.go b/vendor/google.golang.org/grpc/internal/xds/balancer/loadstore/load_store_wrapper.go
similarity index 97%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/loadstore/load_store_wrapper.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/loadstore/load_store_wrapper.go
index 48a2b7d1ed495..89d5ad8751a13 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/loadstore/load_store_wrapper.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/loadstore/load_store_wrapper.go
@@ -22,8 +22,8 @@ package loadstore
import (
"sync"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
)
// NewWrapper creates a Wrapper.
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/balancer.go b/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/balancer.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/balancer.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/balancer.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/callcounter.go b/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/callcounter.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/callcounter.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/callcounter.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/config.go b/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/config.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/config.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/config.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/logging.go b/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/subconn_wrapper.go b/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/subconn_wrapper.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/subconn_wrapper.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/subconn_wrapper.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer.go b/vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer_child.go b/vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer_child.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer_child.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer_child.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer_priority.go b/vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer_priority.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer_priority.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer_priority.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/priority/config.go b/vendor/google.golang.org/grpc/internal/xds/balancer/priority/config.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/priority/config.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/priority/config.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/priority/ignore_resolve_now.go b/vendor/google.golang.org/grpc/internal/xds/balancer/priority/ignore_resolve_now.go
similarity index 77%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/priority/ignore_resolve_now.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/priority/ignore_resolve_now.go
index 792ee4b3f242c..df9ec46c5706b 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/priority/ignore_resolve_now.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/priority/ignore_resolve_now.go
@@ -29,29 +29,21 @@ import (
// ResolveNow() method to ignore those calls if the ignoreResolveNow bit is set.
type ignoreResolveNowClientConn struct {
balancer.ClientConn
- ignoreResolveNow *uint32
+ ignoreResolveNow atomic.Bool
}
func newIgnoreResolveNowClientConn(cc balancer.ClientConn, ignore bool) *ignoreResolveNowClientConn {
- ret := &ignoreResolveNowClientConn{
- ClientConn: cc,
- ignoreResolveNow: new(uint32),
- }
+ ret := &ignoreResolveNowClientConn{ClientConn: cc}
ret.updateIgnoreResolveNow(ignore)
return ret
}
func (i *ignoreResolveNowClientConn) updateIgnoreResolveNow(b bool) {
- if b {
- atomic.StoreUint32(i.ignoreResolveNow, 1)
- return
- }
- atomic.StoreUint32(i.ignoreResolveNow, 0)
-
+ i.ignoreResolveNow.Store(b)
}
-func (i ignoreResolveNowClientConn) ResolveNow(o resolver.ResolveNowOptions) {
- if atomic.LoadUint32(i.ignoreResolveNow) != 0 {
+func (i *ignoreResolveNowClientConn) ResolveNow(o resolver.ResolveNowOptions) {
+ if i.ignoreResolveNow.Load() {
return
}
i.ClientConn.ResolveNow(o)
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/priority/logging.go b/vendor/google.golang.org/grpc/internal/xds/balancer/priority/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/priority/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/priority/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/balancer.go b/vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/balancer.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/balancer.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/balancer.go
index 0c99c108f769e..b11aaa17e550e 100644
--- a/vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/balancer.go
+++ b/vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/balancer.go
@@ -31,9 +31,9 @@ import (
"google.golang.org/grpc/balancer/weightedtarget"
"google.golang.org/grpc/internal/grpclog"
internalserviceconfig "google.golang.org/grpc/internal/serviceconfig"
+ xdsinternal "google.golang.org/grpc/internal/xds"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/serviceconfig"
- "google.golang.org/grpc/xds/internal"
)
// Name is the name of wrr_locality balancer.
@@ -171,7 +171,7 @@ func (b *wrrLocalityBalancer) UpdateClientConnState(s balancer.ClientConnState)
// shouldn't happen though (this attribute that is set actually gets
// used to build localities in the first place), and thus don't error
// out, and just build a weighted target with undefined behavior.
- locality := internal.LocalityString(internal.GetLocalityID(addr))
+ locality := xdsinternal.LocalityString(xdsinternal.GetLocalityID(addr))
ai, ok := getAddrInfo(addr)
if !ok {
return fmt.Errorf("xds_wrr_locality: missing locality weight information in address %q", addr)
diff --git a/vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/logging.go b/vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/config.go b/vendor/google.golang.org/grpc/internal/xds/clients/config.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/config.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/config.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/grpctransport/grpc_transport.go b/vendor/google.golang.org/grpc/internal/xds/clients/grpctransport/grpc_transport.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/clients/grpctransport/grpc_transport.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/grpctransport/grpc_transport.go
index 2659c301e5bfd..841029dc2eee3 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/grpctransport/grpc_transport.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/grpctransport/grpc_transport.go
@@ -29,8 +29,8 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/grpclog"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/grpc/keepalive"
- "google.golang.org/grpc/xds/internal/clients"
)
var (
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/internal/backoff/backoff.go b/vendor/google.golang.org/grpc/internal/xds/clients/internal/backoff/backoff.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/internal/backoff/backoff.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/internal/backoff/backoff.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/internal/buffer/unbounded.go b/vendor/google.golang.org/grpc/internal/xds/clients/internal/buffer/unbounded.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/internal/buffer/unbounded.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/internal/buffer/unbounded.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/internal/internal.go b/vendor/google.golang.org/grpc/internal/xds/clients/internal/internal.go
similarity index 97%
rename from vendor/google.golang.org/grpc/xds/internal/clients/internal/internal.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/internal/internal.go
index 371b4d19d691c..60cf82b2e4434 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/internal/internal.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/internal/internal.go
@@ -20,7 +20,7 @@
package internal
import (
- "google.golang.org/grpc/xds/internal/clients"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/structpb"
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/internal/pretty/pretty.go b/vendor/google.golang.org/grpc/internal/xds/clients/internal/pretty/pretty.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/internal/pretty/pretty.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/internal/pretty/pretty.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/callback_serializer.go b/vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/callback_serializer.go
similarity index 84%
rename from vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/callback_serializer.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/callback_serializer.go
index 9ad1be517c94e..baab133f24432 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/callback_serializer.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/callback_serializer.go
@@ -21,7 +21,7 @@ package syncutil
import (
"context"
- "google.golang.org/grpc/xds/internal/clients/internal/buffer"
+ "google.golang.org/grpc/internal/xds/clients/internal/buffer"
)
// CallbackSerializer provides a mechanism to schedule callbacks in a
@@ -80,25 +80,11 @@ func (cs *CallbackSerializer) ScheduleOr(f func(ctx context.Context), onFailure
func (cs *CallbackSerializer) run(ctx context.Context) {
defer close(cs.done)
- // TODO: when Go 1.21 is the oldest supported version, this loop and Close
- // can be replaced with:
- //
- // context.AfterFunc(ctx, cs.callbacks.Close)
- for ctx.Err() == nil {
- select {
- case <-ctx.Done():
- // Do nothing here. Next iteration of the for loop will not happen,
- // since ctx.Err() would be non-nil.
- case cb := <-cs.callbacks.Get():
- cs.callbacks.Load()
- cb.(func(context.Context))(ctx)
- }
- }
-
- // Close the buffer to prevent new callbacks from being added.
- cs.callbacks.Close()
+ // Close the buffer when the context is canceled
+ // to prevent new callbacks from being added.
+ context.AfterFunc(ctx, cs.callbacks.Close)
- // Run all pending callbacks.
+ // Run all callbacks.
for cb := range cs.callbacks.Get() {
cs.callbacks.Load()
cb.(func(context.Context))(ctx)
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/event.go b/vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/event.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/event.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/event.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/internal/internal.go b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/internal/internal.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/internal/internal.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/internal/internal.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/load_store.go b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/load_store.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/load_store.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/load_store.go
index 6b35fd979aab4..fcc6247ed784d 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/load_store.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/load_store.go
@@ -24,8 +24,8 @@ import (
"sync/atomic"
"time"
- "google.golang.org/grpc/xds/internal/clients"
- lrsclientinternal "google.golang.org/grpc/xds/internal/clients/lrsclient/internal"
+ "google.golang.org/grpc/internal/xds/clients"
+ lrsclientinternal "google.golang.org/grpc/internal/xds/clients/lrsclient/internal"
)
// A LoadStore aggregates loads for multiple clusters and services that are
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/logging.go b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrs_stream.go b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrs_stream.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrs_stream.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrs_stream.go
index bb275bdb468e7..9a95983b0f693 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrs_stream.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrs_stream.go
@@ -27,7 +27,7 @@ import (
"google.golang.org/grpc/internal/backoff"
igrpclog "google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/pretty"
- "google.golang.org/grpc/xds/internal/clients"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/durationpb"
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsclient.go b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsclient.go
similarity index 96%
rename from vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsclient.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsclient.go
index 21636fd8a5c68..3e45949576197 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsclient.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsclient.go
@@ -30,9 +30,9 @@ import (
"google.golang.org/grpc/grpclog"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- clientsinternal "google.golang.org/grpc/xds/internal/clients/internal"
- "google.golang.org/grpc/xds/internal/clients/internal/backoff"
+ "google.golang.org/grpc/internal/xds/clients"
+ clientsinternal "google.golang.org/grpc/internal/xds/clients/internal"
+ "google.golang.org/grpc/internal/xds/clients/internal/backoff"
)
const (
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsconfig.go b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsconfig.go
similarity index 95%
rename from vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsconfig.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsconfig.go
index c4862ff767944..6dde1b46bf9d6 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsconfig.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsconfig.go
@@ -19,7 +19,7 @@
package lrsclient
import (
- "google.golang.org/grpc/xds/internal/clients"
+ "google.golang.org/grpc/internal/xds/clients"
)
// Config is used to configure an LRS client. After one has been passed to the
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/transport_builder.go b/vendor/google.golang.org/grpc/internal/xds/clients/transport_builder.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/transport_builder.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/transport_builder.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/ads_stream.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/ads_stream.go
similarity index 97%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/ads_stream.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/ads_stream.go
index 9f5e99ac2d85e..83f8a5df03f13 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/ads_stream.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/ads_stream.go
@@ -27,11 +27,11 @@ import (
"google.golang.org/grpc/grpclog"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/internal/backoff"
- "google.golang.org/grpc/xds/internal/clients/internal/buffer"
- "google.golang.org/grpc/xds/internal/clients/internal/pretty"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/internal/backoff"
+ "google.golang.org/grpc/internal/xds/clients/internal/buffer"
+ "google.golang.org/grpc/internal/xds/clients/internal/pretty"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
@@ -71,7 +71,6 @@ type adsStreamEventHandler interface {
onStreamError(error) // Called when the ADS stream breaks.
onWatchExpiry(ResourceType, string) // Called when the watch timer expires for a resource.
onResponse(response, func()) ([]string, error) // Called when a response is received on the ADS stream.
- onRequest(typeURL string) // Called when a request is about to be sent on the ADS stream.
}
// state corresponding to a resource type.
@@ -445,11 +444,6 @@ func (s *adsStreamImpl) sendMessageLocked(stream clients.Stream, names []string,
}
}
- // Call the event handler to remove unsubscribed cache entries. It is to
- // ensure the cache entries are deleted even if discovery request fails. In
- // case of failure when the stream restarts, nonce is reset anyways.
- s.eventHandler.onRequest(url)
-
msg, err := proto.Marshal(req)
if err != nil {
s.logger.Warningf("Failed to marshal DiscoveryRequest: %v", err)
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/authority.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/authority.go
similarity index 93%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/authority.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/authority.go
index f50e0ba5f1dbd..49a4480cf1549 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/authority.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/authority.go
@@ -20,16 +20,17 @@ package xdsclient
import (
"context"
+ "errors"
"fmt"
"sync"
"sync/atomic"
"google.golang.org/grpc/grpclog"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/internal/syncutil"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/metrics"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/internal/syncutil"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/metrics"
"google.golang.org/protobuf/types/known/anypb"
"google.golang.org/protobuf/types/known/timestamppb"
@@ -293,9 +294,6 @@ func (a *authority) fallbackToServer(xc *xdsChannelWithConfig) bool {
// Subscribe to all existing resources from the new management server.
for typ, resources := range a.resources {
for name, state := range resources {
- if len(state.watchers) == 0 {
- continue
- }
if a.logger.V(2) {
a.logger.Infof("Resubscribing to resource of type %q and name %q", typ.TypeName, name)
}
@@ -685,17 +683,6 @@ func (a *authority) watchResource(rType ResourceType, resourceName string, watch
}
resources[resourceName] = state
xdsChannel.channel.subscribe(rType, resourceName)
- } else if len(state.watchers) == 0 {
- if a.logger.V(2) {
- a.logger.Infof("Re-watch for type %q, resource name %q before unsubscription", rType.TypeName, resourceName)
- }
- // Add the active channel to the resource's channel configs if not
- // already present.
- state.xdsChannelConfigs[xdsChannel] = true
- // Ensure the resource is subscribed on the active channel. We do this
- // even if resource is present in cache as re-watches might occur
- // after unsubscribes or channel changes.
- xdsChannel.channel.subscribe(rType, resourceName)
}
// Always add the new watcher to the set of watchers.
state.watchers[watcher] = true
@@ -773,16 +760,32 @@ func (a *authority) unwatchResource(rType ResourceType, resourceName string, wat
}
// There are no more watchers for this resource. Unsubscribe this
- // resource from all channels where it was subscribed to but do not
- // delete the state associated with it in case the resource is
- // re-requested later before un-subscription request is completed by
- // the management server.
+ // resource from all channels where it was subscribed to and delete
+ // the state associated with it.
if a.logger.V(2) {
a.logger.Infof("Removing last watch for resource name %q", resourceName)
}
for xcc := range state.xdsChannelConfigs {
xcc.channel.unsubscribe(rType, resourceName)
}
+ delete(resources, resourceName)
+
+ // If there are no more watchers for this resource type, delete the
+ // resource type from the top-level map.
+ if len(resources) == 0 {
+ if a.logger.V(2) {
+ a.logger.Infof("Removing last watch for resource type %q", rType.TypeName)
+ }
+ delete(a.resources, rType)
+ }
+ // If there are no more watchers for any resource type, release the
+ // reference to the xdsChannels.
+ if len(a.resources) == 0 {
+ if a.logger.V(2) {
+ a.logger.Infof("Removing last watch for for any resource type, releasing reference to the xdsChannel")
+ }
+ a.closeXDSChannels()
+ }
}, func() { close(done) })
<-done
})
@@ -834,7 +837,7 @@ func (a *authority) closeXDSChannels() {
func (a *authority) watcherExistsForUncachedResource() bool {
for _, resourceStates := range a.resources {
for _, state := range resourceStates {
- if len(state.watchers) > 0 && state.md.Status == xdsresource.ServiceStatusRequested {
+ if state.md.Status == xdsresource.ServiceStatusRequested {
return true
}
}
@@ -866,9 +869,6 @@ func (a *authority) resourceConfig() []*v3statuspb.ClientConfig_GenericXdsConfig
for rType, resourceStates := range a.resources {
typeURL := rType.TypeURL
for name, state := range resourceStates {
- if len(state.watchers) == 0 {
- continue
- }
var raw *anypb.Any
if state.cache != nil {
raw = &anypb.Any{TypeUrl: typeURL, Value: state.cache.Bytes()}
@@ -902,43 +902,6 @@ func (a *authority) close() {
}
}
-// removeUnsubscribedCacheEntries iterates through all resources of the given type and
-// removes the state for resources that have no active watchers. This is called
-// after sending a discovery request to ensure that resources that were
-// unsubscribed (and thus have no watchers) are eventually removed from the
-// authority's cache.
-//
-// This method is only executed in the context of a serializer callback.
-func (a *authority) removeUnsubscribedCacheEntries(rType ResourceType) {
- resources := a.resources[rType]
- if resources == nil {
- return
- }
-
- for name, state := range resources {
- if len(state.watchers) == 0 {
- if a.logger.V(2) {
- a.logger.Infof("Removing resource state for %q of type %q as it has no watchers", name, rType.TypeName)
- }
- delete(resources, name)
- }
- }
-
- if len(resources) == 0 {
- if a.logger.V(2) {
- a.logger.Infof("Removing resource type %q from cache as it has no more resources", rType.TypeName)
- }
- delete(a.resources, rType)
- }
-
- if len(a.resources) == 0 {
- if a.logger.V(2) {
- a.logger.Infof("Removing last watch for any resource type, releasing reference to the xdsChannels")
- }
- a.closeXDSChannels()
- }
-}
-
func serviceStatusToProto(serviceStatus xdsresource.ServiceStatus) v3adminpb.ClientResourceStatus {
switch serviceStatus {
case xdsresource.ServiceStatusUnknown:
@@ -955,3 +918,17 @@ func serviceStatusToProto(serviceStatus xdsresource.ServiceStatus) v3adminpb.Cli
return v3adminpb.ClientResourceStatus_UNKNOWN
}
}
+
+func (a *authority) resourceWatchStateForTesting(rType ResourceType, resourceName string) (state xdsresource.ResourceWatchState, err error) {
+ done := make(chan struct{})
+ a.xdsClientSerializer.ScheduleOr(func(context.Context) {
+ state, err = a.activeXDSChannel.channel.ads.adsResourceWatchStateForTesting(rType, resourceName)
+ close(done)
+ }, func() {
+ err = errors.New("failed to retrieve resource watch state because the xDS client is closed")
+ close(done)
+ })
+ <-done
+
+ return state, err
+}
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/channel.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/channel.go
similarity index 86%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/channel.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/channel.go
index 3d65ce6b4eabc..e36e362201d6b 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/channel.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/channel.go
@@ -26,11 +26,11 @@ import (
"google.golang.org/grpc/grpclog"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/internal"
- "google.golang.org/grpc/xds/internal/clients/internal/backoff"
- "google.golang.org/grpc/xds/internal/clients/internal/syncutil"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/internal"
+ "google.golang.org/grpc/internal/xds/clients/internal/backoff"
+ "google.golang.org/grpc/internal/xds/clients/internal/syncutil"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
)
const (
@@ -59,10 +59,6 @@ type xdsChannelEventHandler interface {
// adsResourceDoesNotExist is called when the xdsChannel determines that a
// requested ADS resource does not exist.
adsResourceDoesNotExist(ResourceType, string)
-
- // adsResourceRemoveUnsubscribedCacheEntries is called when the xdsChannel
- // needs to remove unsubscribed cache entries.
- adsResourceRemoveUnsubscribedCacheEntries(ResourceType)
}
// xdsChannelOpts holds the options for creating a new xdsChannel.
@@ -140,32 +136,8 @@ type xdsChannel struct {
}
func (xc *xdsChannel) close() {
- if xc.closed.HasFired() {
- return
- }
xc.closed.Fire()
-
- // Get the resource types that this specific ADS stream was handling
- // before stopping it.
- //
- // TODO: Revisit if we can avoid acquiring the lock of ads (another type).
- xc.ads.mu.Lock()
- typesHandledByStream := make([]ResourceType, 0, len(xc.ads.resourceTypeState))
- for typ := range xc.ads.resourceTypeState {
- typesHandledByStream = append(typesHandledByStream, typ)
- }
- xc.ads.mu.Unlock()
-
xc.ads.Stop()
-
- // Schedule removeUnsubscribedCacheEntries for the types this stream was handling,
- // on all authorities that were interested in this channel.
- if _, ok := xc.eventHandler.(*channelState); ok {
- for _, typ := range typesHandledByStream {
- xc.eventHandler.adsResourceRemoveUnsubscribedCacheEntries(typ)
- }
- }
-
xc.transport.Close()
xc.logger.Infof("Shutdown")
}
@@ -256,26 +228,6 @@ func (xc *xdsChannel) onResponse(resp response, onDone func()) ([]string, error)
return names, err
}
-// onRequest invoked when a request is about to be sent on the ADS stream. It
-// removes the cache entries for the resource type that are no longer subscribed to.
-func (xc *xdsChannel) onRequest(typeURL string) {
- if xc.closed.HasFired() {
- if xc.logger.V(2) {
- xc.logger.Infof("Received an update from the ADS stream on closed ADS stream")
- }
- return
- }
-
- // Lookup the resource parser based on the resource type.
- rType, ok := xc.clientConfig.ResourceTypes[typeURL]
- if !ok {
- logger.Warningf("Resource type URL %q unknown in response from server", typeURL)
- return
- }
-
- xc.eventHandler.adsResourceRemoveUnsubscribedCacheEntries(rType)
-}
-
// decodeResponse decodes the resources in the given ADS response.
//
// The opts parameter provides configuration options for decoding the resources.
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/clientimpl_watchers.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/clientimpl_watchers.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/clientimpl_watchers.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/clientimpl_watchers.go
index 913e313e1e243..68b29295ce288 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/clientimpl_watchers.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/clientimpl_watchers.go
@@ -21,7 +21,7 @@ package xdsclient
import (
"fmt"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
)
// wrappingWatcher is a wrapper around an xdsresource.ResourceWatcher that adds
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/internal.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/internal.go
similarity index 86%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/internal.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/internal.go
index 7adb671909392..38d2473e5c6c2 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/internal.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/internal.go
@@ -21,10 +21,6 @@ package internal
import "time"
var (
- // WatchExpiryTimeout is the watch expiry timeout for xDS client. It can be
- // overridden by tests to change the default watch expiry timeout.
- WatchExpiryTimeout time.Duration
-
// StreamBackoff is the stream backoff for xDS client. It can be overridden
// by tests to change the default backoff strategy.
StreamBackoff func(int) time.Duration
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/ads_stream.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/ads_stream.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/ads_stream.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/ads_stream.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/errors.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/errors.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/errors.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/errors.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/name.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/name.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/name.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/name.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/type.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/type.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/type.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/type.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/version.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/version.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/version.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/version.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/logging.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/metrics/metrics.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/metrics/metrics.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/metrics/metrics.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/metrics/metrics.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/resource_type.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/resource_type.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/resource_type.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/resource_type.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/resource_watcher.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/resource_watcher.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/resource_watcher.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/resource_watcher.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsclient.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsclient.go
similarity index 90%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsclient.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsclient.go
index 93d26217480d9..cc7d5c4e264d3 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsclient.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsclient.go
@@ -39,13 +39,13 @@ import (
"time"
"google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- clientsinternal "google.golang.org/grpc/xds/internal/clients/internal"
- "google.golang.org/grpc/xds/internal/clients/internal/backoff"
- "google.golang.org/grpc/xds/internal/clients/internal/syncutil"
- xdsclientinternal "google.golang.org/grpc/xds/internal/clients/xdsclient/internal"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/metrics"
+ "google.golang.org/grpc/internal/xds/clients"
+ clientsinternal "google.golang.org/grpc/internal/xds/clients/internal"
+ "google.golang.org/grpc/internal/xds/clients/internal/backoff"
+ "google.golang.org/grpc/internal/xds/clients/internal/syncutil"
+ xdsclientinternal "google.golang.org/grpc/internal/xds/clients/xdsclient/internal"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/metrics"
"google.golang.org/protobuf/proto"
v3statuspb "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
@@ -61,7 +61,6 @@ var (
)
func init() {
- xdsclientinternal.WatchExpiryTimeout = defaultWatchExpiryTimeout
xdsclientinternal.StreamBackoff = defaultExponentialBackoff
xdsclientinternal.ResourceWatchStateForTesting = resourceWatchStateForTesting
}
@@ -108,7 +107,9 @@ func New(config Config) (*XDSClient, error) {
case config.Authorities == nil && config.Servers == nil:
return nil, errors.New("xdsclient: no servers or authorities specified")
}
-
+ if config.WatchExpiryTimeout == 0 {
+ config.WatchExpiryTimeout = defaultWatchExpiryTimeout
+ }
client, err := newClient(&config, name)
if err != nil {
return nil, err
@@ -116,12 +117,6 @@ func New(config Config) (*XDSClient, error) {
return client, nil
}
-// SetWatchExpiryTimeoutForTesting override the default watch expiry timeout
-// with provided timeout value.
-func (c *XDSClient) SetWatchExpiryTimeoutForTesting(watchExpiryTimeout time.Duration) {
- c.watchExpiryTimeout = watchExpiryTimeout
-}
-
// newClient returns a new XDSClient with the given config.
func newClient(config *Config, target string) (*XDSClient, error) {
ctx, cancel := context.WithCancel(context.Background())
@@ -130,7 +125,7 @@ func newClient(config *Config, target string) (*XDSClient, error) {
done: syncutil.NewEvent(),
authorities: make(map[string]*authority),
config: config,
- watchExpiryTimeout: xdsclientinternal.WatchExpiryTimeout,
+ watchExpiryTimeout: config.WatchExpiryTimeout,
backoff: xdsclientinternal.StreamBackoff,
serializer: syncutil.NewCallbackSerializer(ctx),
serializerClose: cancel,
@@ -437,29 +432,12 @@ func (cs *channelState) adsResourceDoesNotExist(typ ResourceType, resourceName s
}
}
-func (cs *channelState) adsResourceRemoveUnsubscribedCacheEntries(rType ResourceType) {
- if cs.parent.done.HasFired() {
- return
- }
-
- cs.parent.channelsMu.Lock()
- defer cs.parent.channelsMu.Unlock()
-
- for authority := range cs.interestedAuthorities {
- authority.xdsClientSerializer.TrySchedule(func(context.Context) {
- authority.removeUnsubscribedCacheEntries(rType)
- })
- }
-}
-
func resourceWatchStateForTesting(c *XDSClient, rType ResourceType, resourceName string) (xdsresource.ResourceWatchState, error) {
- c.channelsMu.Lock()
- defer c.channelsMu.Unlock()
-
- for _, state := range c.xdsActiveChannels {
- if st, err := state.channel.ads.adsResourceWatchStateForTesting(rType, resourceName); err == nil {
- return st, nil
- }
+ n := xdsresource.ParseName(resourceName)
+ a := c.getAuthorityForResource(n)
+ if a == nil {
+ return xdsresource.ResourceWatchState{}, fmt.Errorf("unable to find authority for resource name %q", resourceName)
}
- return xdsresource.ResourceWatchState{}, fmt.Errorf("unable to find watch state for resource type %q and name %q", rType.TypeName, resourceName)
+ return a.resourceWatchStateForTesting(rType, resourceName)
+
}
diff --git a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsconfig.go b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsconfig.go
similarity index 88%
rename from vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsconfig.go
rename to vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsconfig.go
index a276309dff47b..9d376e508c4fc 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsconfig.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsconfig.go
@@ -19,7 +19,9 @@
package xdsclient
import (
- "google.golang.org/grpc/xds/internal/clients"
+ "time"
+
+ "google.golang.org/grpc/internal/xds/clients"
)
// Config is used to configure an xDS client. After one has been passed to the
@@ -60,6 +62,13 @@ type Config struct {
// MetricsReporter is used to report registered metrics. If unset, no
// metrics will be reported.
MetricsReporter clients.MetricsReporter
+
+ // WatchExpiryTimeout is the duration after which a resource watch expires
+ // if the requested resource is not received from the management server.
+ // Most users will not need to set this. If zero, a default value of 15
+ // seconds is used as specified here:
+ // envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#knowing-when-a-requested-resource-does-not-exist
+ WatchExpiryTimeout time.Duration
}
// ServerConfig contains configuration for an xDS management server.
diff --git a/vendor/google.golang.org/grpc/xds/internal/clusterspecifier/cluster_specifier.go b/vendor/google.golang.org/grpc/internal/xds/clusterspecifier/cluster_specifier.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/clusterspecifier/cluster_specifier.go
rename to vendor/google.golang.org/grpc/internal/xds/clusterspecifier/cluster_specifier.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/clusterspecifier/rls/rls.go b/vendor/google.golang.org/grpc/internal/xds/clusterspecifier/rls/rls.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/clusterspecifier/rls/rls.go
rename to vendor/google.golang.org/grpc/internal/xds/clusterspecifier/rls/rls.go
index 50f58cd43a09b..ce2c22537a124 100644
--- a/vendor/google.golang.org/grpc/xds/internal/clusterspecifier/rls/rls.go
+++ b/vendor/google.golang.org/grpc/internal/xds/clusterspecifier/rls/rls.go
@@ -26,7 +26,7 @@ import (
"google.golang.org/grpc/balancer"
"google.golang.org/grpc/internal"
rlspb "google.golang.org/grpc/internal/proto/grpc_lookup_v1"
- "google.golang.org/grpc/xds/internal/clusterspecifier"
+ "google.golang.org/grpc/internal/xds/clusterspecifier"
"google.golang.org/protobuf/encoding/protojson"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/vendor/google.golang.org/grpc/xds/internal/httpfilter/fault/fault.go b/vendor/google.golang.org/grpc/internal/xds/httpfilter/fault/fault.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/httpfilter/fault/fault.go
rename to vendor/google.golang.org/grpc/internal/xds/httpfilter/fault/fault.go
index 0ffa9c827279f..3acd4aec6aaa5 100644
--- a/vendor/google.golang.org/grpc/xds/internal/httpfilter/fault/fault.go
+++ b/vendor/google.golang.org/grpc/internal/xds/httpfilter/fault/fault.go
@@ -31,9 +31,9 @@ import (
"google.golang.org/grpc/codes"
iresolver "google.golang.org/grpc/internal/resolver"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/httpfilter"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/vendor/google.golang.org/grpc/xds/internal/httpfilter/httpfilter.go b/vendor/google.golang.org/grpc/internal/xds/httpfilter/httpfilter.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/httpfilter/httpfilter.go
rename to vendor/google.golang.org/grpc/internal/xds/httpfilter/httpfilter.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/httpfilter/rbac/rbac.go b/vendor/google.golang.org/grpc/internal/xds/httpfilter/rbac/rbac.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/httpfilter/rbac/rbac.go
rename to vendor/google.golang.org/grpc/internal/xds/httpfilter/rbac/rbac.go
index 260dad7566421..0155009034e46 100644
--- a/vendor/google.golang.org/grpc/xds/internal/httpfilter/rbac/rbac.go
+++ b/vendor/google.golang.org/grpc/internal/xds/httpfilter/rbac/rbac.go
@@ -26,8 +26,8 @@ import (
"strings"
"google.golang.org/grpc/internal/resolver"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/grpc/internal/xds/rbac"
- "google.golang.org/grpc/xds/internal/httpfilter"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/vendor/google.golang.org/grpc/xds/internal/httpfilter/router/router.go b/vendor/google.golang.org/grpc/internal/xds/httpfilter/router/router.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/httpfilter/router/router.go
rename to vendor/google.golang.org/grpc/internal/xds/httpfilter/router/router.go
index a781523d371e1..d3a498d677069 100644
--- a/vendor/google.golang.org/grpc/xds/internal/httpfilter/router/router.go
+++ b/vendor/google.golang.org/grpc/internal/xds/httpfilter/router/router.go
@@ -23,7 +23,7 @@ import (
"fmt"
iresolver "google.golang.org/grpc/internal/resolver"
- "google.golang.org/grpc/xds/internal/httpfilter"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/vendor/google.golang.org/grpc/xds/internal/resolver/internal/internal.go b/vendor/google.golang.org/grpc/internal/xds/resolver/internal/internal.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/resolver/internal/internal.go
rename to vendor/google.golang.org/grpc/internal/xds/resolver/internal/internal.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/resolver/logging.go b/vendor/google.golang.org/grpc/internal/xds/resolver/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/resolver/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/resolver/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/resolver/serviceconfig.go b/vendor/google.golang.org/grpc/internal/xds/resolver/serviceconfig.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/resolver/serviceconfig.go
rename to vendor/google.golang.org/grpc/internal/xds/resolver/serviceconfig.go
index 40f038b8a64e8..2b4e5a05d8927 100644
--- a/vendor/google.golang.org/grpc/xds/internal/resolver/serviceconfig.go
+++ b/vendor/google.golang.org/grpc/internal/xds/resolver/serviceconfig.go
@@ -35,11 +35,11 @@ import (
iringhash "google.golang.org/grpc/internal/ringhash"
"google.golang.org/grpc/internal/serviceconfig"
"google.golang.org/grpc/internal/wrr"
+ "google.golang.org/grpc/internal/xds/balancer/clustermanager"
+ "google.golang.org/grpc/internal/xds/httpfilter"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/balancer/clustermanager"
- "google.golang.org/grpc/xds/internal/httpfilter"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
const (
diff --git a/vendor/google.golang.org/grpc/xds/internal/resolver/watch_service.go b/vendor/google.golang.org/grpc/internal/xds/resolver/watch_service.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/resolver/watch_service.go
rename to vendor/google.golang.org/grpc/internal/xds/resolver/watch_service.go
index e8d52d0e07300..44b885c440552 100644
--- a/vendor/google.golang.org/grpc/xds/internal/resolver/watch_service.go
+++ b/vendor/google.golang.org/grpc/internal/xds/resolver/watch_service.go
@@ -21,7 +21,7 @@ package resolver
import (
"context"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
type listenerWatcher struct {
diff --git a/vendor/google.golang.org/grpc/xds/internal/resolver/xds_resolver.go b/vendor/google.golang.org/grpc/internal/xds/resolver/xds_resolver.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/resolver/xds_resolver.go
rename to vendor/google.golang.org/grpc/internal/xds/resolver/xds_resolver.go
index a66719d0685fc..70291f8ce9bc9 100644
--- a/vendor/google.golang.org/grpc/xds/internal/resolver/xds_resolver.go
+++ b/vendor/google.golang.org/grpc/internal/xds/resolver/xds_resolver.go
@@ -33,10 +33,10 @@ import (
iresolver "google.golang.org/grpc/internal/resolver"
"google.golang.org/grpc/internal/wrr"
"google.golang.org/grpc/internal/xds/bootstrap"
+ rinternal "google.golang.org/grpc/internal/xds/resolver/internal"
+ "google.golang.org/grpc/internal/xds/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
- rinternal "google.golang.org/grpc/xds/internal/resolver/internal"
- "google.golang.org/grpc/xds/internal/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
// Scheme is the xDS resolver's scheme.
diff --git a/vendor/google.golang.org/grpc/xds/internal/server/conn_wrapper.go b/vendor/google.golang.org/grpc/internal/xds/server/conn_wrapper.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/server/conn_wrapper.go
rename to vendor/google.golang.org/grpc/internal/xds/server/conn_wrapper.go
index 92d07e7fb6d13..840da7ca68fd4 100644
--- a/vendor/google.golang.org/grpc/xds/internal/server/conn_wrapper.go
+++ b/vendor/google.golang.org/grpc/internal/xds/server/conn_wrapper.go
@@ -28,7 +28,7 @@ import (
"google.golang.org/grpc/credentials/tls/certprovider"
xdsinternal "google.golang.org/grpc/internal/credentials/xds"
"google.golang.org/grpc/internal/transport"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// connWrapper is a thin wrapper around a net.Conn returned by Accept(). It
diff --git a/vendor/google.golang.org/grpc/xds/internal/server/listener_wrapper.go b/vendor/google.golang.org/grpc/internal/xds/server/listener_wrapper.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/server/listener_wrapper.go
rename to vendor/google.golang.org/grpc/internal/xds/server/listener_wrapper.go
index 2c32ace8ab055..1f7da61175e6c 100644
--- a/vendor/google.golang.org/grpc/xds/internal/server/listener_wrapper.go
+++ b/vendor/google.golang.org/grpc/internal/xds/server/listener_wrapper.go
@@ -33,7 +33,7 @@ import (
internalgrpclog "google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
var (
diff --git a/vendor/google.golang.org/grpc/xds/internal/server/rds_handler.go b/vendor/google.golang.org/grpc/internal/xds/server/rds_handler.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/server/rds_handler.go
rename to vendor/google.golang.org/grpc/internal/xds/server/rds_handler.go
index 4b8eb22de8dbd..bf78c37c82921 100644
--- a/vendor/google.golang.org/grpc/xds/internal/server/rds_handler.go
+++ b/vendor/google.golang.org/grpc/internal/xds/server/rds_handler.go
@@ -22,7 +22,7 @@ import (
"sync"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// rdsHandler handles any RDS queries that need to be started for a given server
diff --git a/vendor/google.golang.org/grpc/internal/xds/xds.go b/vendor/google.golang.org/grpc/internal/xds/xds.go
index 024c388b7aa75..b9a4ec90a5ed8 100644
--- a/vendor/google.golang.org/grpc/internal/xds/xds.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xds.go
@@ -14,12 +14,17 @@
* limitations under the License.
*/
-// Package xds contains methods to Get/Set handshake cluster names. It is separated
-// out from the top level /internal package to avoid circular dependencies.
+// Package xds contains functions, structs, and utilities for working with
+// handshake cluster names, as well as shared components used by xds balancers
+// and resolvers. It is separated from the top-level /internal package to
+// avoid circular dependencies.
package xds
import (
+ "fmt"
+
"google.golang.org/grpc/attributes"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/grpc/resolver"
)
@@ -40,3 +45,60 @@ func GetXDSHandshakeClusterName(attr *attributes.Attributes) (string, bool) {
name, ok := v.(string)
return name, ok
}
+
+// LocalityString generates a string representation of clients.Locality in the
+// format specified in gRFC A76.
+func LocalityString(l clients.Locality) string {
+ return fmt.Sprintf("{region=%q, zone=%q, sub_zone=%q}", l.Region, l.Zone, l.SubZone)
+}
+
+// IsLocalityEqual allows the values to be compared by Attributes.Equal.
+func IsLocalityEqual(l clients.Locality, o any) bool {
+ ol, ok := o.(clients.Locality)
+ if !ok {
+ return false
+ }
+ return l.Region == ol.Region && l.Zone == ol.Zone && l.SubZone == ol.SubZone
+}
+
+// LocalityFromString converts a string representation of clients.locality as
+// specified in gRFC A76, into a LocalityID struct.
+func LocalityFromString(s string) (ret clients.Locality, _ error) {
+ _, err := fmt.Sscanf(s, "{region=%q, zone=%q, sub_zone=%q}", &ret.Region, &ret.Zone, &ret.SubZone)
+ if err != nil {
+ return clients.Locality{}, fmt.Errorf("%s is not a well formatted locality ID, error: %v", s, err)
+ }
+ return ret, nil
+}
+
+type localityKeyType string
+
+const localityKey = localityKeyType("grpc.xds.internal.address.locality")
+
+// GetLocalityID returns the locality ID of addr.
+func GetLocalityID(addr resolver.Address) clients.Locality {
+ path, _ := addr.BalancerAttributes.Value(localityKey).(clients.Locality)
+ return path
+}
+
+// SetLocalityID sets locality ID in addr to l.
+func SetLocalityID(addr resolver.Address, l clients.Locality) resolver.Address {
+ addr.BalancerAttributes = addr.BalancerAttributes.WithValue(localityKey, l)
+ return addr
+}
+
+// SetLocalityIDInEndpoint sets locality ID in endpoint to l.
+func SetLocalityIDInEndpoint(endpoint resolver.Endpoint, l clients.Locality) resolver.Endpoint {
+ endpoint.Attributes = endpoint.Attributes.WithValue(localityKey, l)
+ return endpoint
+}
+
+// ResourceTypeMapForTesting maps TypeUrl to corresponding ResourceType.
+var ResourceTypeMapForTesting map[string]any
+
+// UnknownCSMLabels are TelemetryLabels emitted from CDS if CSM Telemetry Label
+// data is not present in the CDS Resource.
+var UnknownCSMLabels = map[string]string{
+ "csm.service_name": "unknown",
+ "csm.service_namespace_name": "unknown",
+}
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/attributes.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/attributes.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/attributes.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/attributes.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/client.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/client.go
similarity index 95%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/client.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/client.go
index 42f1a28f0c083..514273164402a 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/client.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/client.go
@@ -25,8 +25,8 @@ import (
v3statuspb "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// XDSClient is a full fledged gRPC client which queries a set of discovery APIs
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl.go
similarity index 90%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl.go
index 6362ccae7b962..b1f797993fd7e 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl.go
@@ -29,12 +29,12 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/xds/bootstrap"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/grpctransport"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/metrics"
xdsbootstrap "google.golang.org/grpc/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/grpctransport"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
- "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/metrics"
)
const (
@@ -120,8 +120,8 @@ func (mr *metricsReporter) ReportMetric(metric any) {
}
}
-func newClientImpl(config *bootstrap.Config, metricsRecorder estats.MetricsRecorder, target string) (*clientImpl, error) {
- gConfig, err := buildXDSClientConfig(config, metricsRecorder, target)
+func newClientImpl(config *bootstrap.Config, metricsRecorder estats.MetricsRecorder, target string, watchExpiryTimeout time.Duration) (*clientImpl, error) {
+ gConfig, err := buildXDSClientConfig(config, metricsRecorder, target, watchExpiryTimeout)
if err != nil {
return nil, err
}
@@ -163,7 +163,7 @@ func (c *clientImpl) decrRef() int32 {
}
// buildXDSClientConfig builds the xdsclient.Config from the bootstrap.Config.
-func buildXDSClientConfig(config *bootstrap.Config, metricsRecorder estats.MetricsRecorder, target string) (xdsclient.Config, error) {
+func buildXDSClientConfig(config *bootstrap.Config, metricsRecorder estats.MetricsRecorder, target string, watchExpiryTimeout time.Duration) (xdsclient.Config, error) {
grpcTransportConfigs := make(map[string]grpctransport.Config)
gServerCfgMap := make(map[xdsclient.ServerConfig]*bootstrap.ServerConfig)
@@ -218,12 +218,13 @@ func buildXDSClientConfig(config *bootstrap.Config, metricsRecorder estats.Metri
}
return xdsclient.Config{
- Authorities: gAuthorities,
- Servers: gServerCfgs,
- Node: gNode,
- TransportBuilder: grpctransport.NewBuilder(grpcTransportConfigs),
- ResourceTypes: supportedResourceTypes(config, gServerCfgMap),
- MetricsReporter: &metricsReporter{recorder: metricsRecorder, target: target},
+ Authorities: gAuthorities,
+ Servers: gServerCfgs,
+ Node: gNode,
+ TransportBuilder: grpctransport.NewBuilder(grpcTransportConfigs),
+ ResourceTypes: supportedResourceTypes(config, gServerCfgMap),
+ MetricsReporter: &metricsReporter{recorder: metricsRecorder, target: target},
+ WatchExpiryTimeout: watchExpiryTimeout,
}, nil
}
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_loadreport.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_loadreport.go
similarity index 90%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_loadreport.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_loadreport.go
index d1202876db4b1..ffd0c90b8f543 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_loadreport.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_loadreport.go
@@ -22,9 +22,9 @@ import (
"sync"
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/grpctransport"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/grpctransport"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
)
// ReportLoad starts a load reporting stream to the given server. All load
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_watchers.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_watchers.go
similarity index 95%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_watchers.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_watchers.go
index 29435993f135c..398de1ed73b66 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_watchers.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_watchers.go
@@ -18,7 +18,7 @@
package xdsclient
import (
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// WatchResource uses xDS to discover the resource associated with the provided
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/logging.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/pool.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/pool.go
similarity index 97%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/pool.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/pool.go
index d1cc847623074..eb0197e09a7f9 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/pool.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/pool.go
@@ -99,7 +99,7 @@ func NewPool(config *bootstrap.Config) *Pool {
// expected to invoke once they are done using the client. It is safe for the
// caller to invoke this close function multiple times.
func (p *Pool) NewClient(name string, metricsRecorder estats.MetricsRecorder) (XDSClient, func(), error) {
- return p.newRefCounted(name, metricsRecorder)
+ return p.newRefCounted(name, metricsRecorder, defaultWatchExpiryTimeout)
}
// NewClientForTesting returns an xDS client configured with the provided
@@ -126,11 +126,10 @@ func (p *Pool) NewClientForTesting(opts OptionsForTesting) (XDSClient, func(), e
if opts.MetricsRecorder == nil {
opts.MetricsRecorder = istats.NewMetricsRecorderList(nil)
}
- c, cancel, err := p.newRefCounted(opts.Name, opts.MetricsRecorder)
+ c, cancel, err := p.newRefCounted(opts.Name, opts.MetricsRecorder, opts.WatchExpiryTimeout)
if err != nil {
return nil, nil, err
}
- c.SetWatchExpiryTimeoutForTesting(opts.WatchExpiryTimeout)
return c, cancel, nil
}
@@ -252,7 +251,7 @@ func (p *Pool) clientRefCountedClose(name string) {
// newRefCounted creates a new reference counted xDS client implementation for
// name, if one does not exist already. If an xDS client for the given name
// exists, it gets a reference to it and returns it.
-func (p *Pool) newRefCounted(name string, metricsRecorder estats.MetricsRecorder) (*clientImpl, func(), error) {
+func (p *Pool) newRefCounted(name string, metricsRecorder estats.MetricsRecorder, watchExpiryTimeout time.Duration) (*clientImpl, func(), error) {
p.mu.Lock()
defer p.mu.Unlock()
@@ -276,7 +275,7 @@ func (p *Pool) newRefCounted(name string, metricsRecorder estats.MetricsRecorder
return c, sync.OnceFunc(func() { p.clientRefCountedClose(name) }), nil
}
- c, err := newClientImpl(config, metricsRecorder, name)
+ c, err := newClientImpl(config, metricsRecorder, name, watchExpiryTimeout)
if err != nil {
return nil, nil, err
}
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/requests_counter.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/requests_counter.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/requests_counter.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/requests_counter.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/resource_types.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/resource_types.go
similarity index 91%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/resource_types.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/resource_types.go
index 2f76c83c8445f..88451ab8257e3 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/resource_types.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/resource_types.go
@@ -19,9 +19,9 @@ package xdsclient
import (
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
)
func supportedResourceTypes(config *bootstrap.Config, gServerCfgMap map[xdsclient.ServerConfig]*bootstrap.ServerConfig) map[string]xdsclient.ResourceType {
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter/converter.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter/converter.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter/converter.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter/converter.go
index 959c6588b0000..d38b9db82431c 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter/converter.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter/converter.go
@@ -35,8 +35,8 @@ import (
"google.golang.org/grpc/balancer/weightedroundrobin"
iringhash "google.golang.org/grpc/internal/ringhash"
internalserviceconfig "google.golang.org/grpc/internal/serviceconfig"
- "google.golang.org/grpc/xds/internal/balancer/wrrlocality"
- "google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry"
+ "google.golang.org/grpc/internal/xds/balancer/wrrlocality"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/structpb"
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/xdslbregistry.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/xdslbregistry.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/xdslbregistry.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/xdslbregistry.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/cluster_resource_type.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/cluster_resource_type.go
similarity index 97%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/cluster_resource_type.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/cluster_resource_type.go
index de63350814585..2a6a08f90647e 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/cluster_resource_type.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/cluster_resource_type.go
@@ -20,8 +20,8 @@ package xdsresource
import (
"google.golang.org/grpc/internal/pretty"
"google.golang.org/grpc/internal/xds/bootstrap"
- xdsclient "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ xdsclient "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/endpoints_resource_type.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/endpoints_resource_type.go
similarity index 97%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/endpoints_resource_type.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/endpoints_resource_type.go
index dd8a3b38c7f6a..7ca45ec6ad0c7 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/endpoints_resource_type.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/endpoints_resource_type.go
@@ -19,8 +19,8 @@ package xdsresource
import (
"google.golang.org/grpc/internal/pretty"
- xdsclient "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ xdsclient "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/errors.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/errors.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/errors.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/errors.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/filter_chain.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/filter_chain.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/filter_chain.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/filter_chain.go
index 46bbcaf4a1f28..76ace1090d682 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/filter_chain.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/filter_chain.go
@@ -25,9 +25,9 @@ import (
"google.golang.org/grpc/codes"
"google.golang.org/grpc/internal/resolver"
+ "google.golang.org/grpc/internal/xds/httpfilter"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/httpfilter"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
v3listenerpb "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3"
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/listener_resource_type.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/listener_resource_type.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/listener_resource_type.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/listener_resource_type.go
index 29ff88704553c..100a06f97b672 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/listener_resource_type.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/listener_resource_type.go
@@ -22,8 +22,8 @@ import (
"google.golang.org/grpc/internal/pretty"
"google.golang.org/grpc/internal/xds/bootstrap"
- xdsclient "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ xdsclient "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/logging.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/logging.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/logging.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/logging.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/matcher.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/matcher.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/matcher.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/matcher.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/matcher_path.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/matcher_path.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/matcher_path.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/matcher_path.go
diff --git a/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/metadata.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/metadata.go
new file mode 100644
index 0000000000000..b56c309d6f270
--- /dev/null
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/metadata.go
@@ -0,0 +1,93 @@
+/*
+ *
+ * Copyright 2025 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package xdsresource
+
+import (
+ "fmt"
+ "net/netip"
+
+ v3corepb "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
+ "google.golang.org/protobuf/types/known/anypb"
+)
+
+func init() {
+ registerMetadataConverter("type.googleapis.com/envoy.config.core.v3.Address", proxyAddressConvertor{})
+}
+
+var (
+ // metdataRegistry is a map from proto type to metadataConverter.
+ metdataRegistry = make(map[string]metadataConverter)
+)
+
+// metadataConverter converts xds metadata entries in
+// Metadata.typed_filter_metadata into an internal form with the fields relevant
+// to gRPC.
+type metadataConverter interface {
+ // convert parses the Any proto into a concrete struct.
+ convert(*anypb.Any) (any, error)
+}
+
+// registerMetadataConverter registers the converter to the map keyed on a proto
+// type_url. Must be called at init time. Not thread safe.
+func registerMetadataConverter(protoType string, c metadataConverter) {
+ metdataRegistry[protoType] = c
+}
+
+// metadataConverterForType retrieves a converter based on key given.
+func metadataConverterForType(typeURL string) metadataConverter {
+ return metdataRegistry[typeURL]
+}
+
+// StructMetadataValue stores the values in a google.protobuf.Struct from
+// FilterMetadata.
+type StructMetadataValue struct {
+ // Data stores the parsed JSON representation of a google.protobuf.Struct.
+ Data map[string]any
+}
+
+// ProxyAddressMetadataValue holds the address parsed from the
+// envoy.config.core.v3.Address proto message, as specified in gRFC A86.
+type ProxyAddressMetadataValue struct {
+ // Address stores the proxy address configured (A86). It will be in the form
+ // of host:port. It has to be either IPv6 or IPv4.
+ Address string
+}
+
+// proxyAddressConvertor implements the metadataConverter interface to handle
+// the conversion of envoy.config.core.v3.Address protobuf messages into an
+// internal representation.
+type proxyAddressConvertor struct{}
+
+func (proxyAddressConvertor) convert(anyProto *anypb.Any) (any, error) {
+ addressProto := &v3corepb.Address{}
+ if err := anyProto.UnmarshalTo(addressProto); err != nil {
+ return nil, fmt.Errorf("failed to unmarshal resource from Any proto: %v", err)
+ }
+ socketaddress := addressProto.GetSocketAddress()
+ if socketaddress == nil {
+ return nil, fmt.Errorf("no socket_address field in metadata")
+ }
+ if _, err := netip.ParseAddr(socketaddress.GetAddress()); err != nil {
+ return nil, fmt.Errorf("address field is not a valid IPv4 or IPv6 address: %q", socketaddress.GetAddress())
+ }
+ portvalue := socketaddress.GetPortValue()
+ if portvalue == 0 {
+ return nil, fmt.Errorf("port value not set in socket_address")
+ }
+ return ProxyAddressMetadataValue{Address: parseAddress(socketaddress)}, nil
+}
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/name.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/name.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/name.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/name.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/resource_type.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/resource_type.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/resource_type.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/resource_type.go
index 4ecf63a1c378c..2c591312f1be7 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/resource_type.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/resource_type.go
@@ -27,10 +27,10 @@ package xdsresource
import (
"fmt"
+ xdsinternal "google.golang.org/grpc/internal/xds"
"google.golang.org/grpc/internal/xds/bootstrap"
- xdsinternal "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/route_config_resource_type.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/route_config_resource_type.go
similarity index 97%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/route_config_resource_type.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/route_config_resource_type.go
index 344932e93d948..912dc1b762b4a 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/route_config_resource_type.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/route_config_resource_type.go
@@ -19,8 +19,8 @@ package xdsresource
import (
"google.golang.org/grpc/internal/pretty"
- xdsclient "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ xdsclient "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type.go
index 994204101835f..7f85c1da21056 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type.go
@@ -21,7 +21,7 @@ import (
"time"
v3discoverypb "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_cds.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_cds.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_cds.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_cds.go
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_eds.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_eds.go
similarity index 95%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_eds.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_eds.go
index 12294626f3927..a8d568e182637 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_eds.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_eds.go
@@ -18,7 +18,7 @@
package xdsresource
import (
- "google.golang.org/grpc/xds/internal/clients"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/protobuf/types/known/anypb"
)
@@ -53,6 +53,7 @@ type Endpoint struct {
HealthStatus EndpointHealthStatus
Weight uint32
HashKey string
+ Metadata map[string]any
}
// Locality contains information of a locality.
@@ -61,6 +62,7 @@ type Locality struct {
ID clients.Locality
Priority uint32
Weight uint32
+ Metadata map[string]any
}
// EndpointsUpdate contains an EDS update.
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_lds.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_lds.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_lds.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_lds.go
index a71e38ea9a524..a2e057b0e7a31 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_lds.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_lds.go
@@ -20,7 +20,7 @@ package xdsresource
import (
"time"
- "google.golang.org/grpc/xds/internal/httpfilter"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_rds.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_rds.go
similarity index 98%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_rds.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_rds.go
index 42da391263937..44bc27891f1b8 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_rds.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_rds.go
@@ -22,9 +22,9 @@ import (
"time"
"google.golang.org/grpc/codes"
+ "google.golang.org/grpc/internal/xds/clusterspecifier"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/grpc/internal/xds/matcher"
- "google.golang.org/grpc/xds/internal/clusterspecifier"
- "google.golang.org/grpc/xds/internal/httpfilter"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_cds.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_cds.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_cds.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_cds.go
index 43247c5b8d9fe..d7133c996cb3c 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_cds.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_cds.go
@@ -36,8 +36,8 @@ import (
iserviceconfig "google.golang.org/grpc/internal/serviceconfig"
"google.golang.org/grpc/internal/xds/bootstrap"
"google.golang.org/grpc/internal/xds/matcher"
- "google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
"google.golang.org/protobuf/types/known/structpb"
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_eds.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_eds.go
similarity index 72%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_eds.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_eds.go
index d56b42dd360e2..c5b9723a79a3c 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_eds.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_eds.go
@@ -28,8 +28,8 @@ import (
v3typepb "github.com/envoyproxy/go-control-plane/envoy/type/v3"
"google.golang.org/grpc/internal/envconfig"
"google.golang.org/grpc/internal/pretty"
- "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/clients"
+ xdsinternal "google.golang.org/grpc/internal/xds"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
@@ -108,30 +108,42 @@ func parseEndpoints(lbEndpoints []*v3endpointpb.LbEndpoint, uniqueEndpointAddrs
}
uniqueEndpointAddrs[a] = true
}
+
+ var endpointMetadata map[string]any
+ var hashKey string
+ if envconfig.XDSHTTPConnectEnabled || !envconfig.XDSEndpointHashKeyBackwardCompat {
+ var err error
+ endpointMetadata, err = validateAndConstructMetadata(lbEndpoint.GetMetadata())
+ if err != nil {
+ return nil, err
+ }
+
+ // "The xDS resolver, described in A74, will be changed to set the hash_key
+ // endpoint attribute to the value of LbEndpoint.Metadata envoy.lb hash_key
+ // field, as described in Envoy's documentation for the ring hash load
+ // balancer." - A76
+ if !envconfig.XDSEndpointHashKeyBackwardCompat {
+ hashKey = hashKeyFromMetadata(endpointMetadata)
+ }
+ }
endpoints = append(endpoints, Endpoint{
HealthStatus: EndpointHealthStatus(lbEndpoint.GetHealthStatus()),
Addresses: addrs,
Weight: weight,
- HashKey: hashKey(lbEndpoint),
+ HashKey: hashKey,
+ Metadata: endpointMetadata,
})
}
return endpoints, nil
}
-// hashKey extracts and returns the hash key from the given LbEndpoint. If no
-// hash key is found, it returns an empty string.
-func hashKey(lbEndpoint *v3endpointpb.LbEndpoint) string {
- // "The xDS resolver, described in A74, will be changed to set the hash_key
- // endpoint attribute to the value of LbEndpoint.Metadata envoy.lb hash_key
- // field, as described in Envoy's documentation for the ring hash load
- // balancer." - A76
- if envconfig.XDSEndpointHashKeyBackwardCompat {
- return ""
- }
- envoyLB := lbEndpoint.GetMetadata().GetFilterMetadata()["envoy.lb"]
- if envoyLB != nil {
- if h := envoyLB.GetFields()["hash_key"]; h != nil {
- return h.GetStringValue()
+// hashKey extracts and returns the hash key from the given endpoint metadata.
+// If no hash key is found, it returns an empty string.
+func hashKeyFromMetadata(metadata map[string]any) string {
+ envoyLB, ok := metadata["envoy.lb"].(StructMetadataValue)
+ if ok {
+ if h, ok := envoyLB.Data["hash_key"].(string); ok {
+ return h
}
}
return ""
@@ -170,7 +182,7 @@ func parseEDSRespProto(m *v3endpointpb.ClusterLoadAssignment) (EndpointsUpdate,
Zone: l.Zone,
SubZone: l.SubZone,
}
- lidStr := internal.LocalityString(lid)
+ lidStr := xdsinternal.LocalityString(lid)
// "Since an xDS configuration can place a given locality under multiple
// priorities, it is possible to see locality weight attributes with
@@ -190,11 +202,21 @@ func parseEDSRespProto(m *v3endpointpb.ClusterLoadAssignment) (EndpointsUpdate,
if err != nil {
return EndpointsUpdate{}, err
}
+ var localityMetadata map[string]any
+ if envconfig.XDSHTTPConnectEnabled {
+ var err error
+ localityMetadata, err = validateAndConstructMetadata(locality.GetMetadata())
+ if err != nil {
+ return EndpointsUpdate{}, err
+ }
+ }
+
ret.Localities = append(ret.Localities, Locality{
ID: lid,
Endpoints: endpoints,
Weight: weight,
Priority: priority,
+ Metadata: localityMetadata,
})
}
for i := 0; i < len(priorities); i++ {
@@ -204,3 +226,34 @@ func parseEDSRespProto(m *v3endpointpb.ClusterLoadAssignment) (EndpointsUpdate,
}
return ret, nil
}
+
+func validateAndConstructMetadata(metadataProto *v3corepb.Metadata) (map[string]any, error) {
+ if metadataProto == nil {
+ return nil, nil
+ }
+ metadata := make(map[string]any)
+ // First go through TypedFilterMetadata.
+ for key, anyProto := range metadataProto.GetTypedFilterMetadata() {
+ converter := metadataConverterForType(anyProto.GetTypeUrl())
+ // Ignore types we don't have a converter for.
+ if converter == nil {
+ continue
+ }
+ val, err := converter.convert(anyProto)
+ if err != nil {
+ // If the converter fails, nack the whole resource.
+ return nil, fmt.Errorf("metadata conversion for key %q and type %q failed: %v", key, anyProto.GetTypeUrl(), err)
+ }
+ metadata[key] = val
+ }
+
+ // Process FilterMetadata for any keys not already handled.
+ for key, structProto := range metadataProto.GetFilterMetadata() {
+ // Skip keys already added from TyperFilterMetadata.
+ if metadata[key] != nil {
+ continue
+ }
+ metadata[key] = StructMetadataValue{Data: structProto.AsMap()}
+ }
+ return metadata, nil
+}
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_lds.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_lds.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_lds.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_lds.go
index 475300cefcc0f..25c607b48a4d3 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_lds.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_lds.go
@@ -27,7 +27,7 @@ import (
v3listenerpb "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3"
v3routepb "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
v3httppb "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3"
- "google.golang.org/grpc/xds/internal/httpfilter"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_rds.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_rds.go
similarity index 99%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_rds.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_rds.go
index db862514eb58b..beab03ebb3276 100644
--- a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_rds.go
+++ b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_rds.go
@@ -25,8 +25,8 @@ import (
"time"
"google.golang.org/grpc/codes"
+ "google.golang.org/grpc/internal/xds/clusterspecifier"
"google.golang.org/grpc/internal/xds/matcher"
- "google.golang.org/grpc/xds/internal/clusterspecifier"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version/version.go b/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version/version.go
similarity index 100%
rename from vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version/version.go
rename to vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version/version.go
diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go
index d9bbd4c57cf6b..0a0af8961f056 100644
--- a/vendor/google.golang.org/grpc/stream.go
+++ b/vendor/google.golang.org/grpc/stream.go
@@ -549,6 +549,8 @@ type clientStream struct {
sentLast bool // sent an end stream
+ receivedFirstMsg bool // set after the first message is received
+
methodConfig *MethodConfig
ctx context.Context // the application's context, wrapped by stats/tracing
@@ -1144,11 +1146,16 @@ func (a *csAttempt) recvMsg(m any, payInfo *payloadInfo) (err error) {
if statusErr := a.transportStream.Status().Err(); statusErr != nil {
return statusErr
}
+ // Received no msg and status OK for non-server streaming rpcs.
+ if !cs.desc.ServerStreams && !cs.receivedFirstMsg {
+ return status.Error(codes.Internal, "cardinality violation: received no response message from non-server-streaming RPC")
+ }
return io.EOF // indicates successful end of stream.
}
return toRPCErr(err)
}
+ cs.receivedFirstMsg = true
if a.trInfo != nil {
a.mu.Lock()
if a.trInfo.tr != nil {
@@ -1177,7 +1184,7 @@ func (a *csAttempt) recvMsg(m any, payInfo *payloadInfo) (err error) {
} else if err != nil {
return toRPCErr(err)
}
- return status.Errorf(codes.Internal, "cardinality violation: expected for non server-streaming RPCs, but received another message")
+ return status.Error(codes.Internal, "cardinality violation: expected for non server-streaming RPCs, but received another message")
}
func (a *csAttempt) finish(err error) {
@@ -1359,6 +1366,7 @@ type addrConnStream struct {
transport transport.ClientTransport
ctx context.Context
sentLast bool
+ receivedFirstMsg bool
desc *StreamDesc
codec baseCodec
sendCompressorV0 Compressor
@@ -1484,10 +1492,15 @@ func (as *addrConnStream) RecvMsg(m any) (err error) {
if statusErr := as.transportStream.Status().Err(); statusErr != nil {
return statusErr
}
+ // Received no msg and status OK for non-server streaming rpcs.
+ if !as.desc.ServerStreams && !as.receivedFirstMsg {
+ return status.Error(codes.Internal, "cardinality violation: received no response message from non-server-streaming RPC")
+ }
return io.EOF // indicates successful end of stream.
}
return toRPCErr(err)
}
+ as.receivedFirstMsg = true
if as.desc.ServerStreams {
// Subsequent messages should be received by subsequent RecvMsg calls.
@@ -1501,7 +1514,7 @@ func (as *addrConnStream) RecvMsg(m any) (err error) {
} else if err != nil {
return toRPCErr(err)
}
- return status.Errorf(codes.Internal, "cardinality violation: expected for non server-streaming RPCs, but received another message")
+ return status.Error(codes.Internal, "cardinality violation: expected for non server-streaming RPCs, but received another message")
}
func (as *addrConnStream) finish(err error) {
diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go
index 468f1106588cd..76f2e0d060ffe 100644
--- a/vendor/google.golang.org/grpc/version.go
+++ b/vendor/google.golang.org/grpc/version.go
@@ -19,4 +19,4 @@
package grpc
// Version is the current grpc version.
-const Version = "1.75.1"
+const Version = "1.76.0"
diff --git a/vendor/google.golang.org/grpc/xds/csds/csds.go b/vendor/google.golang.org/grpc/xds/csds/csds.go
index 3d8398a72ff09..603819d6c7735 100644
--- a/vendor/google.golang.org/grpc/xds/csds/csds.go
+++ b/vendor/google.golang.org/grpc/xds/csds/csds.go
@@ -31,8 +31,8 @@ import (
"google.golang.org/grpc/codes"
"google.golang.org/grpc/grpclog"
internalgrpclog "google.golang.org/grpc/internal/grpclog"
+ "google.golang.org/grpc/internal/xds/xdsclient"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/xdsclient"
v3statusgrpc "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
v3statuspb "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
diff --git a/vendor/google.golang.org/grpc/xds/googledirectpath/googlec2p.go b/vendor/google.golang.org/grpc/xds/googledirectpath/googlec2p.go
index f75c022d9555e..9ef59f1a92a7b 100644
--- a/vendor/google.golang.org/grpc/xds/googledirectpath/googlec2p.go
+++ b/vendor/google.golang.org/grpc/xds/googledirectpath/googlec2p.go
@@ -38,8 +38,8 @@ import (
"google.golang.org/grpc/internal/googlecloud"
internalgrpclog "google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/xds/bootstrap"
+ "google.golang.org/grpc/internal/xds/xdsclient"
"google.golang.org/grpc/resolver"
- "google.golang.org/grpc/xds/internal/xdsclient"
_ "google.golang.org/grpc/xds" // To register xds resolvers and balancers.
)
@@ -182,6 +182,13 @@ func newNodeConfig(zone string, ipv6Capable bool) map[string]any {
"id": fmt.Sprintf("C2P-%d", randInt()),
"locality": map[string]any{"zone": zone},
}
+ if envconfig.NewPickFirstEnabled {
+ // Enable dualstack endpoints in TD.
+ // TODO(https://github.com/grpc/grpc-go/issues/8561): remove IPv6 metadata server queries entirely after old pick first is removed.
+ ipv6Capable = true
+ } else {
+ logger.Infof("GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST is disabled, setting ipv6Capable node metadata based on metadata server query")
+ }
if ipv6Capable {
node["metadata"] = map[string]any{ipv6CapableMetadataName: true}
}
diff --git a/vendor/google.golang.org/grpc/xds/internal/internal.go b/vendor/google.golang.org/grpc/xds/internal/internal.go
deleted file mode 100644
index 9e0b7931b5f74..0000000000000
--- a/vendor/google.golang.org/grpc/xds/internal/internal.go
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *
- * Copyright 2019 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Package internal contains functions/structs shared by xds
-// balancers/resolvers.
-package internal
-
-import (
- "fmt"
-
- "google.golang.org/grpc/resolver"
- "google.golang.org/grpc/xds/internal/clients"
-)
-
-// LocalityString generates a string representation of clients.Locality in the
-// format specified in gRFC A76.
-func LocalityString(l clients.Locality) string {
- return fmt.Sprintf("{region=%q, zone=%q, sub_zone=%q}", l.Region, l.Zone, l.SubZone)
-}
-
-// IsLocalityEqual allows the values to be compared by Attributes.Equal.
-func IsLocalityEqual(l clients.Locality, o any) bool {
- ol, ok := o.(clients.Locality)
- if !ok {
- return false
- }
- return l.Region == ol.Region && l.Zone == ol.Zone && l.SubZone == ol.SubZone
-}
-
-// LocalityFromString converts a string representation of clients.locality as
-// specified in gRFC A76, into a LocalityID struct.
-func LocalityFromString(s string) (ret clients.Locality, _ error) {
- _, err := fmt.Sscanf(s, "{region=%q, zone=%q, sub_zone=%q}", &ret.Region, &ret.Zone, &ret.SubZone)
- if err != nil {
- return clients.Locality{}, fmt.Errorf("%s is not a well formatted locality ID, error: %v", s, err)
- }
- return ret, nil
-}
-
-type localityKeyType string
-
-const localityKey = localityKeyType("grpc.xds.internal.address.locality")
-
-// GetLocalityID returns the locality ID of addr.
-func GetLocalityID(addr resolver.Address) clients.Locality {
- path, _ := addr.BalancerAttributes.Value(localityKey).(clients.Locality)
- return path
-}
-
-// SetLocalityID sets locality ID in addr to l.
-func SetLocalityID(addr resolver.Address, l clients.Locality) resolver.Address {
- addr.BalancerAttributes = addr.BalancerAttributes.WithValue(localityKey, l)
- return addr
-}
-
-// SetLocalityIDInEndpoint sets locality ID in endpoint to l.
-func SetLocalityIDInEndpoint(endpoint resolver.Endpoint, l clients.Locality) resolver.Endpoint {
- endpoint.Attributes = endpoint.Attributes.WithValue(localityKey, l)
- return endpoint
-}
-
-// ResourceTypeMapForTesting maps TypeUrl to corresponding ResourceType.
-var ResourceTypeMapForTesting map[string]any
-
-// UnknownCSMLabels are TelemetryLabels emitted from CDS if CSM Telemetry Label
-// data is not present in the CDS Resource.
-var UnknownCSMLabels = map[string]string{
- "csm.service_name": "unknown",
- "csm.service_namespace_name": "unknown",
-}
diff --git a/vendor/google.golang.org/grpc/xds/server.go b/vendor/google.golang.org/grpc/xds/server.go
index 5baf91def228a..d49396cec1d00 100644
--- a/vendor/google.golang.org/grpc/xds/server.go
+++ b/vendor/google.golang.org/grpc/xds/server.go
@@ -35,11 +35,11 @@ import (
istats "google.golang.org/grpc/internal/stats"
"google.golang.org/grpc/internal/transport"
"google.golang.org/grpc/internal/xds/bootstrap"
+ "google.golang.org/grpc/internal/xds/server"
+ "google.golang.org/grpc/internal/xds/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/server"
- "google.golang.org/grpc/xds/internal/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
const serverPrefix = "[xds-server %p] "
diff --git a/vendor/google.golang.org/grpc/xds/server_options.go b/vendor/google.golang.org/grpc/xds/server_options.go
index 4e3e3e9e27afa..c72d93ec3f614 100644
--- a/vendor/google.golang.org/grpc/xds/server_options.go
+++ b/vendor/google.golang.org/grpc/xds/server_options.go
@@ -24,7 +24,7 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc/connectivity"
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient"
)
type serverOptions struct {
diff --git a/vendor/google.golang.org/grpc/xds/xds.go b/vendor/google.golang.org/grpc/xds/xds.go
index 943d09f17e0f1..c6a1f25f7aadf 100644
--- a/vendor/google.golang.org/grpc/xds/xds.go
+++ b/vendor/google.golang.org/grpc/xds/xds.go
@@ -38,13 +38,13 @@ import (
"google.golang.org/grpc/xds/csds"
_ "google.golang.org/grpc/credentials/tls/certprovider/pemfile" // Register the file watcher certificate provider plugin.
- _ "google.golang.org/grpc/xds/internal/balancer" // Register the balancers.
- _ "google.golang.org/grpc/xds/internal/clusterspecifier/rls" // Register the RLS cluster specifier plugin. Note that this does not register the RLS LB policy.
- _ "google.golang.org/grpc/xds/internal/httpfilter/fault" // Register the fault injection filter.
- _ "google.golang.org/grpc/xds/internal/httpfilter/rbac" // Register the RBAC filter.
- _ "google.golang.org/grpc/xds/internal/httpfilter/router" // Register the router filter.
- _ "google.golang.org/grpc/xds/internal/resolver" // Register the xds_resolver.
- _ "google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter" // Register the xDS LB Registry Converters.
+ _ "google.golang.org/grpc/internal/xds/balancer" // Register the balancers.
+ _ "google.golang.org/grpc/internal/xds/clusterspecifier/rls" // Register the RLS cluster specifier plugin. Note that this does not register the RLS LB policy.
+ _ "google.golang.org/grpc/internal/xds/httpfilter/fault" // Register the fault injection filter.
+ _ "google.golang.org/grpc/internal/xds/httpfilter/rbac" // Register the RBAC filter.
+ _ "google.golang.org/grpc/internal/xds/httpfilter/router" // Register the router filter.
+ _ "google.golang.org/grpc/internal/xds/resolver" // Register the xds_resolver.
+ _ "google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter" // Register the xDS LB Registry Converters.
v3statusgrpc "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
)
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 1f652d4ab020d..848fa638ac591 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -888,7 +888,7 @@ github.com/gabriel-vasile/mimetype/internal/magic
# github.com/go-ini/ini v1.67.0
## explicit
github.com/go-ini/ini
-# github.com/go-jose/go-jose/v4 v4.1.1
+# github.com/go-jose/go-jose/v4 v4.1.2
## explicit; go 1.23.0
github.com/go-jose/go-jose/v4
github.com/go-jose/go-jose/v4/cipher
@@ -2482,8 +2482,8 @@ google.golang.org/genproto/googleapis/api/monitoredres
google.golang.org/genproto/googleapis/rpc/code
google.golang.org/genproto/googleapis/rpc/errdetails
google.golang.org/genproto/googleapis/rpc/status
-# google.golang.org/grpc v1.75.1
-## explicit; go 1.23.0
+# google.golang.org/grpc v1.76.0
+## explicit; go 1.24.0
google.golang.org/grpc
google.golang.org/grpc/attributes
google.golang.org/grpc/authz/audit
@@ -2575,10 +2575,46 @@ google.golang.org/grpc/internal/transport
google.golang.org/grpc/internal/transport/networktype
google.golang.org/grpc/internal/wrr
google.golang.org/grpc/internal/xds
+google.golang.org/grpc/internal/xds/balancer
+google.golang.org/grpc/internal/xds/balancer/cdsbalancer
+google.golang.org/grpc/internal/xds/balancer/clusterimpl
+google.golang.org/grpc/internal/xds/balancer/clustermanager
+google.golang.org/grpc/internal/xds/balancer/clusterresolver
+google.golang.org/grpc/internal/xds/balancer/loadstore
+google.golang.org/grpc/internal/xds/balancer/outlierdetection
+google.golang.org/grpc/internal/xds/balancer/priority
+google.golang.org/grpc/internal/xds/balancer/wrrlocality
google.golang.org/grpc/internal/xds/bootstrap
google.golang.org/grpc/internal/xds/bootstrap/tlscreds
+google.golang.org/grpc/internal/xds/clients
+google.golang.org/grpc/internal/xds/clients/grpctransport
+google.golang.org/grpc/internal/xds/clients/internal
+google.golang.org/grpc/internal/xds/clients/internal/backoff
+google.golang.org/grpc/internal/xds/clients/internal/buffer
+google.golang.org/grpc/internal/xds/clients/internal/pretty
+google.golang.org/grpc/internal/xds/clients/internal/syncutil
+google.golang.org/grpc/internal/xds/clients/lrsclient
+google.golang.org/grpc/internal/xds/clients/lrsclient/internal
+google.golang.org/grpc/internal/xds/clients/xdsclient
+google.golang.org/grpc/internal/xds/clients/xdsclient/internal
+google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource
+google.golang.org/grpc/internal/xds/clients/xdsclient/metrics
+google.golang.org/grpc/internal/xds/clusterspecifier
+google.golang.org/grpc/internal/xds/clusterspecifier/rls
+google.golang.org/grpc/internal/xds/httpfilter
+google.golang.org/grpc/internal/xds/httpfilter/fault
+google.golang.org/grpc/internal/xds/httpfilter/rbac
+google.golang.org/grpc/internal/xds/httpfilter/router
google.golang.org/grpc/internal/xds/matcher
google.golang.org/grpc/internal/xds/rbac
+google.golang.org/grpc/internal/xds/resolver
+google.golang.org/grpc/internal/xds/resolver/internal
+google.golang.org/grpc/internal/xds/server
+google.golang.org/grpc/internal/xds/xdsclient
+google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry
+google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter
+google.golang.org/grpc/internal/xds/xdsclient/xdsresource
+google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version
google.golang.org/grpc/keepalive
google.golang.org/grpc/mem
google.golang.org/grpc/metadata
@@ -2601,43 +2637,6 @@ google.golang.org/grpc/xds
google.golang.org/grpc/xds/bootstrap
google.golang.org/grpc/xds/csds
google.golang.org/grpc/xds/googledirectpath
-google.golang.org/grpc/xds/internal
-google.golang.org/grpc/xds/internal/balancer
-google.golang.org/grpc/xds/internal/balancer/cdsbalancer
-google.golang.org/grpc/xds/internal/balancer/clusterimpl
-google.golang.org/grpc/xds/internal/balancer/clustermanager
-google.golang.org/grpc/xds/internal/balancer/clusterresolver
-google.golang.org/grpc/xds/internal/balancer/loadstore
-google.golang.org/grpc/xds/internal/balancer/outlierdetection
-google.golang.org/grpc/xds/internal/balancer/priority
-google.golang.org/grpc/xds/internal/balancer/wrrlocality
-google.golang.org/grpc/xds/internal/clients
-google.golang.org/grpc/xds/internal/clients/grpctransport
-google.golang.org/grpc/xds/internal/clients/internal
-google.golang.org/grpc/xds/internal/clients/internal/backoff
-google.golang.org/grpc/xds/internal/clients/internal/buffer
-google.golang.org/grpc/xds/internal/clients/internal/pretty
-google.golang.org/grpc/xds/internal/clients/internal/syncutil
-google.golang.org/grpc/xds/internal/clients/lrsclient
-google.golang.org/grpc/xds/internal/clients/lrsclient/internal
-google.golang.org/grpc/xds/internal/clients/xdsclient
-google.golang.org/grpc/xds/internal/clients/xdsclient/internal
-google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource
-google.golang.org/grpc/xds/internal/clients/xdsclient/metrics
-google.golang.org/grpc/xds/internal/clusterspecifier
-google.golang.org/grpc/xds/internal/clusterspecifier/rls
-google.golang.org/grpc/xds/internal/httpfilter
-google.golang.org/grpc/xds/internal/httpfilter/fault
-google.golang.org/grpc/xds/internal/httpfilter/rbac
-google.golang.org/grpc/xds/internal/httpfilter/router
-google.golang.org/grpc/xds/internal/resolver
-google.golang.org/grpc/xds/internal/resolver/internal
-google.golang.org/grpc/xds/internal/server
-google.golang.org/grpc/xds/internal/xdsclient
-google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry
-google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter
-google.golang.org/grpc/xds/internal/xdsclient/xdsresource
-google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version
# google.golang.org/protobuf v1.36.10
## explicit; go 1.23
google.golang.org/protobuf/encoding/protodelim