Commit 0f99c59d authored by k8s-merge-robot's avatar k8s-merge-robot

Merge pull request #16413 from ddysher/controller-manager-start

Auto commit by PR queue bot
parents 98a434b6 638411d7
...@@ -55,6 +55,7 @@ import ( ...@@ -55,6 +55,7 @@ import (
"k8s.io/kubernetes/pkg/healthz" "k8s.io/kubernetes/pkg/healthz"
"k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/master/ports"
"k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/wait"
"github.com/golang/glog" "github.com/golang/glog"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
...@@ -309,7 +310,13 @@ func (s *CMServer) Run(_ []string) error { ...@@ -309,7 +310,13 @@ func (s *CMServer) Run(_ []string) error {
resourcequotacontroller.NewResourceQuotaController(kubeClient).Run(s.ResourceQuotaSyncPeriod) resourcequotacontroller.NewResourceQuotaController(kubeClient).Run(s.ResourceQuotaSyncPeriod)
versionStrings, err := client.ServerAPIVersions(kubeconfig) // If apiserver is not running we should wait for some time and fail only then. This is particularly
// important when we start apiserver and controller manager at the same time.
var versionStrings []string
err = wait.PollImmediate(time.Second, 10*time.Second, func() (bool, error) {
versionStrings, err = client.ServerAPIVersions(kubeconfig)
return err == nil, err
})
if err != nil { if err != nil {
glog.Fatalf("Failed to get api versions from server: %v", err) glog.Fatalf("Failed to get api versions from server: %v", err)
} }
......
...@@ -27,6 +27,7 @@ import ( ...@@ -27,6 +27,7 @@ import (
"k8s.io/kubernetes/pkg/registry/service" "k8s.io/kubernetes/pkg/registry/service"
"k8s.io/kubernetes/pkg/registry/service/ipallocator" "k8s.io/kubernetes/pkg/registry/service/ipallocator"
"k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/wait"
) )
// Repair is a controller loop that periodically examines all service ClusterIP allocations // Repair is a controller loop that periodically examines all service ClusterIP allocations
...@@ -84,13 +85,10 @@ func (c *Repair) RunOnce() error { ...@@ -84,13 +85,10 @@ func (c *Repair) RunOnce() error {
// important when we start apiserver and etcd at the same time. // important when we start apiserver and etcd at the same time.
var latest *api.RangeAllocation var latest *api.RangeAllocation
var err error var err error
for i := 0; i < 10; i++ { err = wait.PollImmediate(time.Second, 10*time.Second, func() (bool, error) {
if latest, err = c.alloc.Get(); err != nil { latest, err = c.alloc.Get()
time.Sleep(time.Second) return err == nil, err
} else { })
break
}
}
if err != nil { if err != nil {
return fmt.Errorf("unable to refresh the service IP block: %v", err) return fmt.Errorf("unable to refresh the service IP block: %v", err)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment