1
0
Fork 0

feat: use default port for bootstrap master

This commit is contained in:
Arthur K. 2026-01-19 18:42:48 +03:00
parent 8f48ab6491
commit 282e54f831
Signed by: wzray
GPG key ID: B97F30FDC4636357

View file

@ -7,6 +7,7 @@ import (
"os/signal"
"path/filepath"
"strconv"
"strings"
"syscall"
"git.wzray.com/homelab/hivemind/internal/config"
@ -27,8 +28,8 @@ import (
)
var (
configFile = "/etc/hivemind/config.toml"
registryFile = "/var/lib/hivemind/registry"
configFile = "/etc/hivemind/config.toml"
registryFile = "/var/lib/hivemind/registry"
)
func levelToZerolog(l config.LogLevel) zerolog.Level {
@ -64,22 +65,22 @@ func init() {
}
func main() {
config, err := config.FromFile(configFile)
configuration, err := config.FromFile(configFile)
if err != nil {
log.Fatal().Err(err).Msg("unable to read config file")
}
if err := config.Validate(); err != nil {
if err := configuration.Validate(); err != nil {
log.Fatal().Err(err).Msg("invalid configuration")
}
zerolog.SetGlobalLevel(levelToZerolog(config.Node.LogLevel))
zerolog.SetGlobalLevel(levelToZerolog(configuration.Node.LogLevel))
self := types.NewNode(
config.Node.Hostname,
config.Node.Address,
config.Node.Port,
config.Roles,
configuration.Node.Hostname,
configuration.Node.Address,
configuration.Node.Port,
configuration.Roles,
)
filestore := registry.NewFileStorage(registryFile)
@ -88,29 +89,29 @@ func main() {
state := state.New(registry, self)
nodeRole := node.New(state, config.Node)
nodeRole := node.New(state, configuration.Node)
var builder middleware.MiddlewareBuilder
middlewares := builder.Prepare()
client.Init(middlewares)
listenAddr := fmt.Sprintf("%v:%v", config.Node.ListenOn, config.Node.Port)
listenAddr := fmt.Sprintf("%v:%v", configuration.Node.ListenOn, configuration.Node.Port)
server := server.NewServer(listenAddr, middlewares)
roles := make([]roles.Role, 0)
roles = append(roles, nodeRole)
for _, role := range config.Roles {
for _, role := range configuration.Roles {
switch role {
case types.MasterRole:
role := master.New(state, config.Configs.Master)
role := master.New(state, configuration.Configs.Master)
roles = append(roles, role)
case types.DnsRole:
role := dns.New(state, config.Configs.Dns)
role := dns.New(state, configuration.Configs.Dns)
roles = append(roles, role)
case types.HostRole:
role := host.New(state, config.Configs.Host)
role := host.New(state, configuration.Configs.Host)
roles = append(roles, role)
}
}
@ -125,7 +126,12 @@ func main() {
serverError <- server.Listen()
}()
if err := nodeRole.Join(config.Node.BootstrapMaster); err != nil {
bootstrapMaster := configuration.Node.BootstrapMaster
if !strings.Contains(bootstrapMaster, ":") {
bootstrapMaster += fmt.Sprintf(":%d", config.DefaultConfig.Node.Port)
}
if err := nodeRole.Join(bootstrapMaster); err != nil {
log.Warn().Err(err).Msg("unable to join")
} else {
log.Info().Msg("joined")