in pkg/gcp/gcp-kubeconfig.go [426:458]
func GKECluster(ctx context.Context, kr *mesh.KRun, p, l, clusterName string) (*Cluster, error) {
opts := []option.ClientOption{}
if p != kr.ProjectId {
opts = append(opts, option.WithQuotaProject(p))
}
cl, err := container.NewClusterManagerClient(ctx, opts...)
if err != nil {
log.Println("Failed NewClusterManagerClient", p, l, clusterName, err)
return nil, err
}
for i := 0; i < 5; i++ {
gcr := &containerpb.GetClusterRequest{
Name: fmt.Sprintf("projects/%s/locations/%s/cluster/%s", p, l, clusterName),
}
c, e := cl.GetCluster(ctx, gcr)
if e == nil {
rc := &Cluster{
ProjectId: p,
ClusterLocation: c.Location,
ClusterName: c.Name,
GKECluster: c,
KubeConfig: addClusterConfig(c, p, l, clusterName),
}
return rc, nil
}
log.Println("Failed GetCluster, retry", gcr, p, l, clusterName, err)
time.Sleep(1 * time.Second)
err = e
}
return nil, err
}