migrated to external IP allocator

This commit is contained in:
ston1th 2021-09-26 20:20:43 +02:00
commit e2449b425e
15 changed files with 478 additions and 194 deletions

View file

@ -7,12 +7,13 @@ import (
"net/http"
"time"
"git.giftfish.de/ston1th/haproxy-lb/pkg/alloc"
"git.giftfish.de/ston1th/haproxy-lb/pkg/api/types"
serverv1 "git.giftfish.de/ston1th/haproxy-lb/pkg/api/v1/server"
"git.giftfish.de/ston1th/haproxy-lb/pkg/config"
"git.giftfish.de/ston1th/haproxy-lb/pkg/db"
"git.giftfish.de/ston1th/netalloc"
"github.com/go-logr/logr"
"github.com/gorilla/mux"
)
@ -23,9 +24,8 @@ type Server struct {
mux *mux.Router
log logr.Logger
Data *types.ContextData
cidrs []string
gw string
Data *types.ContextData
cidr string
init chan struct{}
stop chan struct{}
@ -46,11 +46,10 @@ func (nf *notFoundHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// NewHTTPServer returns a new HTTPServer
func NewServer(c *config.Config, log logr.Logger) (*Server, error) {
s := &Server{
mux: mux.NewRouter(),
log: log,
cidrs: c.VIP.VirtualIPs,
gw: c.VIP.Gateway,
Data: &types.ContextData{},
mux: mux.NewRouter(),
log: log,
cidr: c.VIP.Prefix,
Data: &types.ContextData{},
init: make(chan struct{}),
stop: make(chan struct{}),
@ -107,15 +106,15 @@ func NewServer(c *config.Config, log logr.Logger) (*Server, error) {
func (s *Server) UpdateDB(db *db.DB) error {
s.Data.DB = db
if s.Data.Alloc == nil {
alloc, err := alloc.NewAlloc(db, s.cidrs, s.gw)
if s.Data.Net == nil {
na, err := netalloc.NewGenericAlloc(db, s.cidr)
if err != nil {
return err
}
s.Data.Alloc = alloc
s.Data.Net = na
close(s.init)
} else {
s.Data.Alloc.UpdateDB(db)
s.Data.Net.SetStore(db)
}
return nil
}