From aa763ba267593a3b18851df858c81ed76720eb4b Mon Sep 17 00:00:00 2001 From: Ishan Tyagi Date: Wed, 19 Jul 2023 12:50:54 +0530 Subject: [PATCH 1/2] Skip scale-up checks for first member of etcd cluster. --- pkg/initializer/initializer.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/initializer/initializer.go b/pkg/initializer/initializer.go index d887d4d7f..e8f082910 100644 --- a/pkg/initializer/initializer.go +++ b/pkg/initializer/initializer.go @@ -19,6 +19,7 @@ import ( "fmt" "os" "path/filepath" + "strings" "time" "github.com/gardener/etcd-backup-restore/pkg/errors" @@ -57,8 +58,14 @@ func (e *EtcdInitializer) Initialize(mode validator.Mode, failBelowRevision int6 ctx := context.Background() var err error - //Etcd cluster scale-up case - if miscellaneous.IsMultiNode(logger) { + podName, err := miscellaneous.GetEnvVarOrError("POD_NAME") + if err != nil { + logger.Fatalf("Error reading POD_NAME env var : %v", err) + } + + // Etcd cluster scale-up case + // Note: first member of etcd cluster can never be part of scale-up case. + if miscellaneous.IsMultiNode(logger) && !strings.HasSuffix(podName, "0") { clientSet, err := miscellaneous.GetKubernetesClientSetOrError() if err != nil { logger.Fatalf("failed to create clientset, %v", err) From 2b99f5aa2fa0bf55493ed301b08576a1d3d9adb8 Mon Sep 17 00:00:00 2001 From: Ishan Tyagi Date: Tue, 1 Aug 2023 22:56:53 +0530 Subject: [PATCH 2/2] Add a TODO comment. --- pkg/initializer/initializer.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/initializer/initializer.go b/pkg/initializer/initializer.go index e8f082910..48dc6be9d 100644 --- a/pkg/initializer/initializer.go +++ b/pkg/initializer/initializer.go @@ -65,6 +65,7 @@ func (e *EtcdInitializer) Initialize(mode validator.Mode, failBelowRevision int6 // Etcd cluster scale-up case // Note: first member of etcd cluster can never be part of scale-up case. + // TODO: consider removing this special check for first cluster member when backup-restore can check presence of any member in cluster. if miscellaneous.IsMultiNode(logger) && !strings.HasSuffix(podName, "0") { clientSet, err := miscellaneous.GetKubernetesClientSetOrError() if err != nil {