From 282e54f8315417fcfb9144533dd17a057739189d Mon Sep 17 00:00:00 2001 From: "Arthur K." Date: Mon, 19 Jan 2026 18:42:48 +0300 Subject: [PATCH] feat: use default port for bootstrap master --- cmd/hivemind/main.go | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/cmd/hivemind/main.go b/cmd/hivemind/main.go index 7496017..c614986 100644 --- a/cmd/hivemind/main.go +++ b/cmd/hivemind/main.go @@ -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")