diff --git a/lib/teleterm/clusters/cluster_kubes.go b/lib/teleterm/clusters/cluster_kubes.go index 45e2aefec1df4..b9bf7f75d1bfc 100644 --- a/lib/teleterm/clusters/cluster_kubes.go +++ b/lib/teleterm/clusters/cluster_kubes.go @@ -21,6 +21,7 @@ import ( "github.com/gravitational/teleport/api/types" "github.com/gravitational/teleport/lib/auth" + "github.com/gravitational/teleport/lib/client" "github.com/gravitational/teleport/lib/teleterm/api/uri" "github.com/gravitational/trace" @@ -37,14 +38,11 @@ type Kube struct { // GetKubes returns kube services func (c *Cluster) GetKubes(ctx context.Context) ([]Kube, error) { var authClient auth.ClientI - err := addMetadataToRetryableError(ctx, func() error { - proxyClient, err := c.clusterClient.ConnectToProxy(ctx) - if err != nil { - return trace.Wrap(err) - } - defer proxyClient.Close() + var proxyClient *client.ProxyClient + var err error - authClient, err = proxyClient.ConnectToCluster(ctx, c.clusterClient.SiteName) + err = addMetadataToRetryableError(ctx, func() error { + proxyClient, err = c.clusterClient.ConnectToProxy(ctx) if err != nil { return trace.Wrap(err) } @@ -54,6 +52,12 @@ func (c *Cluster) GetKubes(ctx context.Context) ([]Kube, error) { if err != nil { return nil, trace.Wrap(err) } + defer proxyClient.Close() + + authClient, err = proxyClient.ConnectToCluster(ctx, c.clusterClient.SiteName) + if err != nil { + return nil, trace.Wrap(err) + } defer authClient.Close()