Move common

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
This commit is contained in:
Mauro Morales
2025-03-20 22:25:41 +01:00
parent 1a74cddf69
commit b2a3963a5e
7 changed files with 30 additions and 29 deletions

View File

@@ -14,6 +14,7 @@ import (
"github.com/kairos-io/kairos-sdk/utils" "github.com/kairos-io/kairos-sdk/utils"
providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config" providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
"github.com/kairos-io/provider-kairos/v2/internal/role" "github.com/kairos-io/provider-kairos/v2/internal/role"
common "github.com/kairos-io/provider-kairos/v2/internal/role"
p2p "github.com/kairos-io/provider-kairos/v2/internal/role/p2p" p2p "github.com/kairos-io/provider-kairos/v2/internal/role/p2p"
edgeVPNClient "github.com/mudler/edgevpn/api/client" edgeVPNClient "github.com/mudler/edgevpn/api/client"
@@ -111,26 +112,26 @@ func Bootstrap(e *pluggable.Event) pluggable.EventResponse {
service.WithUUID(machine.UUID()), service.WithUUID(machine.UUID()),
service.WithStateDir("/usr/local/.kairos/state"), service.WithStateDir("/usr/local/.kairos/state"),
service.WithNetworkToken(prvConfig.P2P.NetworkToken), service.WithNetworkToken(prvConfig.P2P.NetworkToken),
service.WithPersistentRoles(p2p.RoleAuto), service.WithPersistentRoles(common.RoleAuto),
service.WithRoles( service.WithRoles(
service.RoleKey{ service.RoleKey{
Role: p2p.RoleControlPlane, Role: common.RoleControlPlane,
RoleHandler: p2p.ControlPlane(c, prvConfig, p2p.RoleControlPlane), RoleHandler: p2p.ControlPlane(c, prvConfig, common.RoleControlPlane),
}, },
service.RoleKey{ service.RoleKey{
Role: p2p.RoleControlPlaneClusterInit, Role: common.RoleControlPlaneClusterInit,
RoleHandler: p2p.ControlPlane(c, prvConfig, p2p.RoleControlPlaneClusterInit), RoleHandler: p2p.ControlPlane(c, prvConfig, common.RoleControlPlaneClusterInit),
}, },
service.RoleKey{ service.RoleKey{
Role: p2p.RoleControlPlaneHA, Role: common.RoleControlPlaneHA,
RoleHandler: p2p.ControlPlane(c, prvConfig, p2p.RoleControlPlaneHA), RoleHandler: p2p.ControlPlane(c, prvConfig, common.RoleControlPlaneHA),
}, },
service.RoleKey{ service.RoleKey{
Role: p2p.RoleWorker, Role: common.RoleWorker,
RoleHandler: p2p.Worker(c, prvConfig), RoleHandler: p2p.Worker(c, prvConfig),
}, },
service.RoleKey{ service.RoleKey{
Role: p2p.RoleAuto, Role: common.RoleAuto,
RoleHandler: role.Auto(c, prvConfig), RoleHandler: role.Auto(c, prvConfig),
}, },
), ),

View File

@@ -1,12 +1,19 @@
package role package role
import ( import (
"io/ioutil" // nolint
"os" "os"
service "github.com/mudler/edgevpn/api/client/service" service "github.com/mudler/edgevpn/api/client/service"
) )
const (
RoleWorker = "worker"
RoleControlPlane = "master"
RoleControlPlaneHA = "master/ha"
RoleControlPlaneClusterInit = "master/clusterinit"
RoleAuto = "auto"
)
type Role func(*service.RoleConfig) error type Role func(*service.RoleConfig) error
func SentinelExist() bool { func SentinelExist() bool {
@@ -17,7 +24,7 @@ func SentinelExist() bool {
} }
func CreateSentinel() error { func CreateSentinel() error {
return ioutil.WriteFile("/usr/local/.kairos/deployed", []byte{}, os.ModePerm) return os.WriteFile("/usr/local/.kairos/deployed", []byte{}, os.ModePerm)
} }
func getRoles(client *service.Client, nodes []string) ([]string, map[string]string) { func getRoles(client *service.Client, nodes []string) ([]string, map[string]string) {

View File

@@ -7,14 +7,6 @@ import (
providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config" providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
) )
const (
RoleWorker = "worker"
RoleControlPlane = "master"
RoleControlPlaneHA = "master/ha"
RoleControlPlaneClusterInit = "master/clusterinit"
RoleAuto = "auto"
)
func guessInterface(pconfig *providerConfig.Config) string { func guessInterface(pconfig *providerConfig.Config) string {
if pconfig.KubeVIP.Interface != "" { if pconfig.KubeVIP.Interface != "" {
return pconfig.KubeVIP.Interface return pconfig.KubeVIP.Interface

View File

@@ -9,6 +9,7 @@ import (
"github.com/kairos-io/kairos-sdk/machine" "github.com/kairos-io/kairos-sdk/machine"
"github.com/kairos-io/kairos-sdk/utils" "github.com/kairos-io/kairos-sdk/utils"
providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config" providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
common "github.com/kairos-io/provider-kairos/v2/internal/role"
service "github.com/mudler/edgevpn/api/client/service" service "github.com/mudler/edgevpn/api/client/service"
"gopkg.in/yaml.v2" "gopkg.in/yaml.v2"
) )
@@ -213,7 +214,7 @@ func (k *K0sWorker) RoleConfig() *service.RoleConfig {
} }
func (k *K0sControlPlane) HA() bool { func (k *K0sControlPlane) HA() bool {
return k.role == RoleControlPlaneHA return k.role == common.RoleControlPlaneHA
} }
func (k *K0sControlPlane) ClusterInit() bool { func (k *K0sControlPlane) ClusterInit() bool {

View File

@@ -10,6 +10,7 @@ import (
"github.com/kairos-io/kairos-sdk/machine" "github.com/kairos-io/kairos-sdk/machine"
"github.com/kairos-io/kairos-sdk/utils" "github.com/kairos-io/kairos-sdk/utils"
providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config" providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
common "github.com/kairos-io/provider-kairos/v2/internal/role"
service "github.com/mudler/edgevpn/api/client/service" service "github.com/mudler/edgevpn/api/client/service"
) )
@@ -176,11 +177,11 @@ func (k *K3sWorker) RoleConfig() *service.RoleConfig {
} }
func (k *K3sControlPlane) HA() bool { func (k *K3sControlPlane) HA() bool {
return k.role == RoleControlPlaneHA return k.role == common.RoleControlPlaneHA
} }
func (k *K3sControlPlane) ClusterInit() bool { func (k *K3sControlPlane) ClusterInit() bool {
return k.role == RoleControlPlaneClusterInit return k.role == common.RoleControlPlaneClusterInit
} }
func (k *K3sControlPlane) IP() string { func (k *K3sControlPlane) IP() string {

View File

@@ -9,6 +9,7 @@ import (
providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config" providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
"github.com/kairos-io/provider-kairos/v2/internal/role" "github.com/kairos-io/provider-kairos/v2/internal/role"
common "github.com/kairos-io/provider-kairos/v2/internal/role"
service "github.com/mudler/edgevpn/api/client/service" service "github.com/mudler/edgevpn/api/client/service"
) )
@@ -41,7 +42,7 @@ func Worker(cc *config.Config, pconfig *providerConfig.Config) role.Role { //nol
} }
ip := guessIP(pconfig) ip := guessIP(pconfig)
worker.SetRole(RoleWorker) worker.SetRole(common.RoleWorker)
worker.SetRoleConfig(c) worker.SetRoleConfig(c)
worker.SetIP(ip) worker.SetIP(ip)

View File

@@ -34,8 +34,6 @@ func scheduleRoles(nodes []string, c *service.RoleConfig, cc *config.Config, pco
hasControlPlane := false hasControlPlane := false
controlPlaneRole := "master" controlPlaneRole := "master"
workerRole := "worker"
controlPlaneHA := "master/ha"
if pconfig.P2P.Auto.HA.IsEnabled() { if pconfig.P2P.Auto.HA.IsEnabled() {
controlPlaneRole = "master/clusterinit" controlPlaneRole = "master/clusterinit"
@@ -46,7 +44,7 @@ func scheduleRoles(nodes []string, c *service.RoleConfig, cc *config.Config, pco
switch r { switch r {
case controlPlaneRole: case controlPlaneRole:
hasControlPlane = true hasControlPlane = true
case controlPlaneHA: case RoleControlPlaneHA:
controlPlaneCounter++ controlPlaneCounter++
} }
} }
@@ -87,7 +85,7 @@ func scheduleRoles(nodes []string, c *service.RoleConfig, cc *config.Config, pco
if pconfig.P2P.Auto.HA.IsEnabled() && pconfig.P2P.Auto.HA.ExtraControlPlanes != nil && *pconfig.P2P.Auto.HA.ExtraControlPlanes() != controlPlaneCounter { if pconfig.P2P.Auto.HA.IsEnabled() && pconfig.P2P.Auto.HA.ExtraControlPlanes != nil && *pconfig.P2P.Auto.HA.ExtraControlPlanes() != controlPlaneCounter {
if len(unassignedNodes) > 0 { if len(unassignedNodes) > 0 {
if err := c.Client.Set("role", unassignedNodes[0], controlPlaneHA); err != nil { if err := c.Client.Set("role", unassignedNodes[0], RoleControlPlaneHA); err != nil {
c.Logger.Error(err) c.Logger.Error(err)
return err return err
} }
@@ -99,11 +97,11 @@ func scheduleRoles(nodes []string, c *service.RoleConfig, cc *config.Config, pco
// cycle all empty roles and assign worker roles // cycle all empty roles and assign worker roles
for _, uuid := range unassignedNodes { for _, uuid := range unassignedNodes {
if err := c.Client.Set("role", uuid, workerRole); err != nil { if err := c.Client.Set("role", uuid, RoleWorker); err != nil {
c.Logger.Error(err) c.Logger.Error(err)
return err return err
} }
c.Logger.Infof("-> Set %s to %s", workerRole, uuid) c.Logger.Infof("-> Set %s to %s", RoleWorker, uuid)
} }
c.Logger.Info("Done scheduling") c.Logger.Info("Done scheduling")