From 8133debaffb9a0bb4f4f8b4babee4bf3ec8dfc12 Mon Sep 17 00:00:00 2001 From: Brad Davidson Date: Thu, 12 Dec 2024 09:43:39 +0000 Subject: [PATCH] Handle cluster join as create if we're the only member Signed-off-by: Brad Davidson (cherry picked from commit 365372441b85579465b96de59c00389626a8ca2d) Signed-off-by: Brad Davidson --- pkg/etcd/etcd.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkg/etcd/etcd.go b/pkg/etcd/etcd.go index dfcce54336..64a74ab881 100644 --- a/pkg/etcd/etcd.go +++ b/pkg/etcd/etcd.go @@ -559,6 +559,7 @@ func (e *ETCD) join(ctx context.Context, clientAccessInfo *clientaccess.Info) er defer cancel() var ( + state string cluster []string add = true ) @@ -620,12 +621,19 @@ func (e *ETCD) join(ctx context.Context, clientAccessInfo *clientaccess.Info) er return err } cluster = append(cluster, fmt.Sprintf("%s=%s", e.name, e.peerURL())) + state = "existing" + } else if len(cluster) > 1 { + logrus.Infof("Starting etcd to join cluster with members %v", cluster) + state = "existing" + } else { + logrus.Infof("Starting etcd for new cluster") + state = "new" } - logrus.Infof("Starting etcd to join cluster with members %v", cluster) return e.cluster(ctx, false, executor.InitialOptions{ - Cluster: strings.Join(cluster, ","), - State: "existing", + AdvertisePeerURL: e.peerURL(), + Cluster: strings.Join(cluster, ","), + State: state, }) }