fixed init errors
This commit is contained in:
parent
c9996712de
commit
7c7b816813
8 changed files with 29 additions and 18 deletions
|
|
@ -23,6 +23,11 @@ var (
|
|||
log logr.Logger
|
||||
)
|
||||
|
||||
func fatal(err error, msg string) {
|
||||
log.Error(err, msg)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func main() {
|
||||
klog.InitFlags(nil)
|
||||
flag.StringVar(&configFile, "config", "haproxy-lb.yaml", "haproxy-lb config file")
|
||||
|
|
@ -31,7 +36,7 @@ func main() {
|
|||
log.Info("starting haproxy-lb", "version", version)
|
||||
cfg, err := config.ParseFile(configFile)
|
||||
if err != nil {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
fatal(err, "init failed")
|
||||
}
|
||||
|
||||
var c cluster.Cluster
|
||||
|
|
@ -42,23 +47,25 @@ func main() {
|
|||
log.Info("creating cluster", "mode", "etcd")
|
||||
c = etcd.NewCluster(klogr.New().WithName("etcd"))
|
||||
}
|
||||
log.Info("starting api server", "address", cfg.Server.Listen, "tls", cfg.Server.TLS != nil)
|
||||
srv, err := api.NewServer(cfg, log.WithName("api"))
|
||||
if err != nil {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
fatal(err, "init failed")
|
||||
}
|
||||
|
||||
log.Info("starting vip-controller")
|
||||
callbacks, err := controller.NewLBController(cfg, srv, log.WithName("vip-controller"))
|
||||
if err != nil {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
fatal(err, "init failed")
|
||||
}
|
||||
err = c.SetCallbacks(callbacks)
|
||||
if err != nil {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
fatal(err, "init failed")
|
||||
}
|
||||
go func() {
|
||||
err = c.Start(cfg)
|
||||
if err != nil {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
fatal(err, "init failed")
|
||||
}
|
||||
}()
|
||||
go func() {
|
||||
|
|
|
|||
|
|
@ -121,7 +121,6 @@ func (s *Server) UpdateDB(db *db.DB) error {
|
|||
}
|
||||
|
||||
func (s *Server) start() {
|
||||
<-s.init
|
||||
s.srv = &http.Server{
|
||||
Handler: s.mux,
|
||||
TLSConfig: s.tlsConfig,
|
||||
|
|
@ -129,6 +128,7 @@ func (s *Server) start() {
|
|||
WriteTimeout: 10 * time.Second,
|
||||
}
|
||||
go func() {
|
||||
<-s.init
|
||||
err := s.srv.Serve(s.listen)
|
||||
if err != nil {
|
||||
s.log.Error(err, "")
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ type CallbackContext interface {
|
|||
logr.Logger
|
||||
KV
|
||||
ID() string
|
||||
Fatal(error, string)
|
||||
Fatal(error)
|
||||
}
|
||||
|
||||
type Callbacks struct {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,8 @@ func NewLBController(cfg *config.Config, srv *api.Server, log logr.Logger) (call
|
|||
db := db.New(cc)
|
||||
err := srv.UpdateDB(db)
|
||||
if err != nil {
|
||||
cc.Fatal(err, "error initialising api server as leader")
|
||||
cc.Error(err, "error initialising api server as leader")
|
||||
cc.Fatal(err)
|
||||
return
|
||||
}
|
||||
t := time.NewTicker(time.Second * 10)
|
||||
|
|
@ -79,7 +80,8 @@ func NewLBController(cfg *config.Config, srv *api.Server, log logr.Logger) (call
|
|||
db := db.New(cc)
|
||||
err := srv.UpdateDB(db)
|
||||
if err != nil {
|
||||
cc.Fatal(err, "error initialising api server as leader")
|
||||
cc.Error(err, "error initialising api server as follower")
|
||||
cc.Fatal(err)
|
||||
return
|
||||
}
|
||||
t := time.NewTicker(time.Second * 10)
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ type Cluster struct {
|
|||
keyID string
|
||||
session bool
|
||||
cancelSession func()
|
||||
fatal error
|
||||
}
|
||||
|
||||
func NewCluster(log logr.Logger) cluster.Cluster {
|
||||
|
|
|
|||
|
|
@ -155,10 +155,10 @@ func (c *Cluster) Start(etcdcfg *config.Config) error {
|
|||
}
|
||||
s.Close()
|
||||
close(c.done)
|
||||
return nil
|
||||
return c.fatal
|
||||
}
|
||||
}
|
||||
return nil
|
||||
return c.fatal
|
||||
}
|
||||
|
||||
func (c *Cluster) leaderID(r *clientv3.GetResponse, err error) string {
|
||||
|
|
@ -197,8 +197,8 @@ func (c *Cluster) Stepdown() {
|
|||
}
|
||||
}
|
||||
|
||||
func (c *Cluster) Fatal(err error, msg string) {
|
||||
c.Error(err, "a fatal error occurred", "message", msg)
|
||||
func (c *Cluster) Fatal(err error) {
|
||||
c.fatal = err
|
||||
c.Stop()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ type Cluster struct {
|
|||
callbacks cluster.Callbacks
|
||||
|
||||
id string
|
||||
fatal error
|
||||
}
|
||||
|
||||
func NewCluster(log logr.Logger) cluster.Cluster {
|
||||
|
|
|
|||
|
|
@ -160,10 +160,10 @@ func (c *Cluster) Start(raftcfg *config.Config) error {
|
|||
c.callbacks.Cleanup(ctx, c)
|
||||
}
|
||||
close(c.done)
|
||||
return nil
|
||||
return c.fatal
|
||||
}
|
||||
}
|
||||
return nil
|
||||
return c.fatal
|
||||
}
|
||||
|
||||
func (c *Cluster) leader(ctx context.Context) {
|
||||
|
|
@ -187,8 +187,8 @@ func (c *Cluster) Stepdown() {
|
|||
}
|
||||
}
|
||||
|
||||
func (c *Cluster) Fatal(err error, msg string) {
|
||||
c.Error(err, "a fatal error occurred", "message", msg)
|
||||
func (c *Cluster) Fatal(err error) {
|
||||
c.fatal = err
|
||||
c.Stop()
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue