diff --git a/pkg/cloudprovider/providers/gce/gce.go b/pkg/cloudprovider/providers/gce/gce.go index be4b5bf04e7..0d2ee3e893c 100644 --- a/pkg/cloudprovider/providers/gce/gce.go +++ b/pkg/cloudprovider/providers/gce/gce.go @@ -28,8 +28,6 @@ import ( "strings" "time" - "gopkg.in/gcfg.v1" - "k8s.io/kubernetes/pkg/api" apiservice "k8s.io/kubernetes/pkg/api/service" "k8s.io/kubernetes/pkg/api/unversioned" @@ -48,6 +46,7 @@ import ( container "google.golang.org/api/container/v1" "google.golang.org/api/googleapi" "google.golang.org/cloud/compute/metadata" + "gopkg.in/gcfg.v1" ) const ( @@ -326,6 +325,16 @@ func CreateGCECloud(projectID, region, zone string, managedZones []string, netwo glog.Infof("Using existing Token Source %#v", tokenSource) } + if err := wait.PollImmediate(5*time.Second, 30*time.Second, func() (bool, error) { + if _, err := tokenSource.Token(); err != nil { + glog.Errorf("error fetching initial token: %v", err) + return false, nil + } + return true, nil + }); err != nil { + return nil, err + } + client := oauth2.NewClient(oauth2.NoContext, tokenSource) svc, err := compute.New(client) if err != nil {