From 5251ed3128dd5e21cac5af4c9ec4ac2838261e11 Mon Sep 17 00:00:00 2001 From: Matt DeBoer <matt.deboer@gettyimages.com> Date: Thu, 23 Mar 2017 10:27:22 -0700 Subject: [PATCH] still join existing, even if we are already a member --- pkg/discovery/discovery.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/discovery/discovery.go b/pkg/discovery/discovery.go index 6f58bab..d39efb3 100644 --- a/pkg/discovery/discovery.go +++ b/pkg/discovery/discovery.go @@ -109,7 +109,7 @@ func (d *Discovery) DiscoverEnvironment() (map[string]string, error) { log.Debugf("Local master: %#v", *localMaster) } // this instance is an expected master - if len(currentMembers) > 0 && !containsMember(currentMembers, *localMaster) && uptime >= d.MinimumUptimeToJoin { + if len(currentMembers) > 0 && uptime >= d.MinimumUptimeToJoin { // there is an existing cluster if err = d.assertSaneClusterState(expectedMembers, currentMembers); err != nil { log.Fatal(err) @@ -119,8 +119,10 @@ func (d *Discovery) DiscoverEnvironment() (map[string]string, error) { log.Infof("Joining existing cluster as a master") // TODO: what if we encounter a state where not of the expected masters are // members of the current cluster? - if err := d.joinExistingCluster(membersAPI, expectedMembers, localMaster); err != nil { - log.Fatal(err) + if !containsMember(currentMembers, *localMaster) { + if err := d.joinExistingCluster(membersAPI, expectedMembers, localMaster); err != nil { + log.Fatal(err) + } } environment["ETCD_INITIAL_CLUSTER_STATE"] = "existing" } else {