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) {