feat: use default port for bootstrap master
This commit is contained in:
parent
8f48ab6491
commit
282e54f831
1 changed files with 22 additions and 16 deletions
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
"git.wzray.com/homelab/hivemind/internal/config"
|
"git.wzray.com/homelab/hivemind/internal/config"
|
||||||
|
|
@ -27,8 +28,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
configFile = "/etc/hivemind/config.toml"
|
configFile = "/etc/hivemind/config.toml"
|
||||||
registryFile = "/var/lib/hivemind/registry"
|
registryFile = "/var/lib/hivemind/registry"
|
||||||
)
|
)
|
||||||
|
|
||||||
func levelToZerolog(l config.LogLevel) zerolog.Level {
|
func levelToZerolog(l config.LogLevel) zerolog.Level {
|
||||||
|
|
@ -64,22 +65,22 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
config, err := config.FromFile(configFile)
|
configuration, err := config.FromFile(configFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal().Err(err).Msg("unable to read config file")
|
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")
|
log.Fatal().Err(err).Msg("invalid configuration")
|
||||||
}
|
}
|
||||||
|
|
||||||
zerolog.SetGlobalLevel(levelToZerolog(config.Node.LogLevel))
|
zerolog.SetGlobalLevel(levelToZerolog(configuration.Node.LogLevel))
|
||||||
|
|
||||||
self := types.NewNode(
|
self := types.NewNode(
|
||||||
config.Node.Hostname,
|
configuration.Node.Hostname,
|
||||||
config.Node.Address,
|
configuration.Node.Address,
|
||||||
config.Node.Port,
|
configuration.Node.Port,
|
||||||
config.Roles,
|
configuration.Roles,
|
||||||
)
|
)
|
||||||
|
|
||||||
filestore := registry.NewFileStorage(registryFile)
|
filestore := registry.NewFileStorage(registryFile)
|
||||||
|
|
@ -88,29 +89,29 @@ func main() {
|
||||||
|
|
||||||
state := state.New(registry, self)
|
state := state.New(registry, self)
|
||||||
|
|
||||||
nodeRole := node.New(state, config.Node)
|
nodeRole := node.New(state, configuration.Node)
|
||||||
|
|
||||||
var builder middleware.MiddlewareBuilder
|
var builder middleware.MiddlewareBuilder
|
||||||
middlewares := builder.Prepare()
|
middlewares := builder.Prepare()
|
||||||
|
|
||||||
client.Init(middlewares)
|
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)
|
server := server.NewServer(listenAddr, middlewares)
|
||||||
|
|
||||||
roles := make([]roles.Role, 0)
|
roles := make([]roles.Role, 0)
|
||||||
roles = append(roles, nodeRole)
|
roles = append(roles, nodeRole)
|
||||||
|
|
||||||
for _, role := range config.Roles {
|
for _, role := range configuration.Roles {
|
||||||
switch role {
|
switch role {
|
||||||
case types.MasterRole:
|
case types.MasterRole:
|
||||||
role := master.New(state, config.Configs.Master)
|
role := master.New(state, configuration.Configs.Master)
|
||||||
roles = append(roles, role)
|
roles = append(roles, role)
|
||||||
case types.DnsRole:
|
case types.DnsRole:
|
||||||
role := dns.New(state, config.Configs.Dns)
|
role := dns.New(state, configuration.Configs.Dns)
|
||||||
roles = append(roles, role)
|
roles = append(roles, role)
|
||||||
case types.HostRole:
|
case types.HostRole:
|
||||||
role := host.New(state, config.Configs.Host)
|
role := host.New(state, configuration.Configs.Host)
|
||||||
roles = append(roles, role)
|
roles = append(roles, role)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -125,7 +126,12 @@ func main() {
|
||||||
serverError <- server.Listen()
|
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")
|
log.Warn().Err(err).Msg("unable to join")
|
||||||
} else {
|
} else {
|
||||||
log.Info().Msg("joined")
|
log.Info().Msg("joined")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue