Skip to content

Commit 27704a7

Browse files
Hold startup until etcd has stabilized cluster version
Uncomment gate for version detection.
1 parent 2d26eae commit 27704a7

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

pkg/cmd/server/etcd/etcdserver/run.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ func RunEtcd(etcdServerConfig *configapi.EtcdConfig) {
7070
glog.Fatalf("Unable to start etcd: %v", err)
7171
}
7272

73+
ready := make(chan struct{})
7374
go func() {
7475
defer e.Close()
7576

@@ -80,13 +81,15 @@ func RunEtcd(etcdServerConfig *configapi.EtcdConfig) {
8081
for min := semver.Must(semver.NewVersion("3.0.0")); e.Server.ClusterVersion() == nil || e.Server.ClusterVersion().LessThan(*min); {
8182
time.Sleep(25 * time.Millisecond)
8283
}
84+
close(ready)
8385
glog.Infof("Started etcd at %s", etcdServerConfig.Address)
8486
case <-time.After(60 * time.Second):
8587
glog.Warning("etcd took too long to start, stopped")
8688
e.Server.Stop() // trigger a shutdown
8789
}
8890
glog.Fatalf("etcd has returned an error: %v", <-e.Err())
8991
}()
92+
<-ready
9093
}
9194

9295
// addressToURLs turns a host:port comma delimited list into an array valid

pkg/cmd/server/start/start_master.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -474,16 +474,15 @@ func StartAPI(oc *origin.MasterConfig, kc *kubernetes.MasterConfig) error {
474474
}
475475

476476
// verify we can connect to etcd with the provided config
477-
// TODO(post-1.6.1-rebase): uncomment etcd3 support
478-
//if len(kc.Options.APIServerArguments) > 0 && len(kc.Options.APIServerArguments["storage-backend"]) > 0 && kc.Options.APIServerArguments["storage-backend"][0] == "etcd2" {
479-
if _, err := etcd.GetAndTestEtcdClient(oc.Options.EtcdClientInfo); err != nil {
480-
return err
477+
if len(kc.Options.APIServerArguments) > 0 && len(kc.Options.APIServerArguments["storage-backend"]) > 0 && kc.Options.APIServerArguments["storage-backend"][0] == "etcd3" {
478+
if _, err := etcd.GetAndTestEtcdClientV3(oc.Options.EtcdClientInfo); err != nil {
479+
return err
480+
}
481+
} else {
482+
if _, err := etcd.GetAndTestEtcdClient(oc.Options.EtcdClientInfo); err != nil {
483+
return err
484+
}
481485
}
482-
//} else {
483-
//if _, err := etcd.GetAndTestEtcdClientV3(oc.Options.EtcdClientInfo); err != nil {
484-
//return err
485-
//}
486-
//}
487486

488487
// Must start policy caching immediately
489488
oc.Informers.StartCore(utilwait.NeverStop)

0 commit comments

Comments
 (0)