From 14ea0196276a433e0ee59d86a5bc51862151dc87 Mon Sep 17 00:00:00 2001 From: PapaCharlie Date: Tue, 23 Jan 2024 14:40:42 -0800 Subject: [PATCH] Only enable xds credentials if the target is an xDS target --- grpcurl.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/grpcurl.go b/grpcurl.go index 891b447..a3d62f4 100644 --- a/grpcurl.go +++ b/grpcurl.go @@ -635,9 +635,14 @@ func BlockingDial(ctx context.Context, network, address string, creds credential } var err error - creds, err = xdsCredentials.NewClientCredentials(xdsCredentials.ClientOptions{FallbackCreds: creds}) - if err != nil { - return nil, err + if strings.HasPrefix(address, "xds:///") { + // The xds:/// prefix is used to signal to the gRPC client to use an xDS server to resolve the + // target. The relevant credentials will be automatically pulled from the GRPC_XDS_BOOTSTRAP or + // GRPC_XDS_BOOTSTRAP_CONFIG env vars. + creds, err = xdsCredentials.NewClientCredentials(xdsCredentials.ClientOptions{FallbackCreds: creds}) + if err != nil { + return nil, err + } } dialer := func(ctx context.Context, address string) (net.Conn, error) {