From d97c8c096db2272e6c35ddbde32e96484669aa8b Mon Sep 17 00:00:00 2001
From: kaiyou <dev@kaiyou.fr>
Date: Sun, 19 Feb 2023 19:44:01 +0100
Subject: [PATCH] Add a role named 'full' for master+node

---
 services/discovery.go | 3 ++-
 services/manager.go   | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/services/discovery.go b/services/discovery.go
index 6bfc3e8..719d020 100644
--- a/services/discovery.go
+++ b/services/discovery.go
@@ -22,6 +22,7 @@ var memberlist = &Unit{
 		for {
 			<-events
 			c.nodes = ml.Nodes()
+			u.Manager.Logger.Info("memberlist metadata received", "nodes", c.nodes)
 			u.Manager.Trigger()
 		}
 	},
@@ -29,7 +30,7 @@ var memberlist = &Unit{
 		// Try and find master node if required
 		if c.masterNode == nil {
 			for _, node := range c.nodes {
-				if node.Role == "master" {
+				if node.Role == "master" || node.Role == "full" {
 					u.Manager.Logger.Info("found remote master", "name", node.Name)
 					c.masterNode = node
 					u.Manager.Trigger()
diff --git a/services/manager.go b/services/manager.go
index abdf48f..b25ae87 100644
--- a/services/manager.go
+++ b/services/manager.go
@@ -101,6 +101,8 @@ func NewManager(settings *ClusterSettings, node *NodeSettings, logger logr.Logge
 		units = append(units, memberlist, vpn, kubeApiserver, kubeControllerManager, kubeScheduler)
 	case "node":
 		units = append(units, memberlist, vpn, kubeKubelet)
+	case "full":
+		units = append(units, memberlist, vpn, kubeApiserver, kubeControllerManager, kubeScheduler, kubeKubelet)
 	}
 	return daeman.NewManager(cluster, units, logger), nil
 }
-- 
GitLab