cleanup, ensure haproxy is running and disallow writes to followers

This commit is contained in:
ston1th 2021-10-09 19:03:08 +02:00
commit fef86deac8
9 changed files with 49 additions and 183 deletions

View file

@ -31,11 +31,11 @@ func NewLBController(cfg *config.Config, srv *api.Server, log logr.Logger) (call
log.Info("starting haproxy", "service", cfg.HAProxyService)
err := ha.Start(ctx)
if err != nil {
log.Error(err, "error starting haproxy")
log.Error(err, "error starting haproxy", "service", cfg.HAProxyService)
cc.Fatal(err)
return
}
err = srv.UpdateDB(db)
err = srv.UpdateDB(db, true)
if err != nil {
log.Error(err, "error initialising api server as leader")
cc.Fatal(err)
@ -79,15 +79,24 @@ func NewLBController(cfg *config.Config, srv *api.Server, log logr.Logger) (call
<-t.C
continue
}
err = ha.IsRunning(ctx)
if err != nil {
log.Error(err, "error haproxy is not running", "service", cfg.HAProxyService)
log.Info("starting haproxy", "service", cfg.HAProxyService)
err = ha.Start(ctx)
if err != nil {
log.Error(err, "error starting haproxy", "service", cfg.HAProxyService)
}
}
lbcfg, err := haproxy.NewConfig(lbs)
if err != nil {
log.Error(err, "error reading haproxy config")
log.Error(err, "error decoding haproxy config")
<-t.C
continue
}
err = ha.UpdateConfig(ctx, lbcfg)
if err != nil {
log.Error(err, "error updating haproxy config")
log.Error(err, "error updating haproxy config", "service", cfg.HAProxyService)
<-t.C
continue
}
@ -109,7 +118,7 @@ func NewLBController(cfg *config.Config, srv *api.Server, log logr.Logger) (call
Follower: func(ctx context.Context, cc cluster.CallbackContext) {
db := db.New(cc)
log := cc.Logger()
err := srv.UpdateDB(db)
err := srv.UpdateDB(db, false)
if err != nil {
log.Error(err, "error initialising api server as follower")
cc.Fatal(err)