From 847ef05122a633d18038e1dd79403f95a5a7cadc Mon Sep 17 00:00:00 2001 From: RawanMostafa08 Date: Thu, 18 Dec 2025 15:38:06 +0200 Subject: [PATCH] feat: fallback to a healthy master --- backend/internal/deployment/kubedeployer/core.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/backend/internal/deployment/kubedeployer/core.go b/backend/internal/deployment/kubedeployer/core.go index a7bf272f..af2a888c 100644 --- a/backend/internal/deployment/kubedeployer/core.go +++ b/backend/internal/deployment/kubedeployer/core.go @@ -94,7 +94,18 @@ func (c *Client) DeployNode(ctx context.Context, cluster *Cluster, node Node, ma return fmt.Errorf("failed to get leader node IP: %v", err) } - leaderIP = leaderNode.IP + if leaderNode.Healthy { + leaderIP = leaderNode.IP + } else { + // fallback to a healthy master if the leader is not healthy + for _, n := range cluster.Nodes { + if n.Type == NodeTypeMaster && n.Healthy { + leaderIP = n.IP + log.Debug().Str("node_name", n.Name).Str("node_ip", n.IP).Msg("Using alternative healthy master") + break + } + } + } } if cluster.Token == "" {