Files
canada-kaktus/cmd/main.go
Tobias Trabelsi d3682557b1
All checks were successful
Gitea Docker Build Demo / Test (push) Successful in 1m2s
Gitea Docker Build Demo / Build_Image (push) Successful in 1m22s
cleanup and refactor health service
2025-10-07 11:13:15 +02:00

66 lines
1.5 KiB
Go

package main
import (
"fmt"
"net/http"
"time"
"git.uploadfilter24.eu/covidnetes/canada-kaktus/internal"
"git.uploadfilter24.eu/covidnetes/canada-kaktus/internal/utils"
log "github.com/sirupsen/logrus"
)
func main() {
cfg, err := internal.GenConfig()
utils.ConfigureLogger(cfg)
if err != nil {
log.WithFields(log.Fields{
"Caller": "Main",
}).Fatal(fmt.Sprintf("Error generating Config: %s", err.Error()))
}
hs := internal.NewHealthServer()
go func() {
log.WithFields(log.Fields{
"Caller": "Main",
}).Info("Starting Health Endpoint")
hs.Start()
}()
log.WithFields(log.Fields{
"Caller": "Main",
}).Info("Entering main event loop")
for {
servers, err := internal.GetAllNodes(cfg)
if err != nil {
log.WithFields(log.Fields{
"Caller": "Main",
}).Error(fmt.Sprintf("Error getting all Nodes: %s", err.Error()))
hs.SetHealthState(http.StatusServiceUnavailable)
}
ips, err := internal.GetAllIps(servers)
if err != nil {
log.WithFields(log.Fields{
"Caller": "Main",
}).Error(fmt.Sprintf("Error getting all IPs: %s", err.Error()))
hs.SetHealthState(http.StatusServiceUnavailable)
}
err = internal.RecreateIPPoolCrd(cfg, "covidnetes-pool", ips)
if err != nil {
log.WithFields(log.Fields{
"Caller": "Main",
}).Error(fmt.Sprintf("Error recreating IP Pool CRD: %s", err.Error()))
hs.SetHealthState(http.StatusServiceUnavailable)
} else {
log.WithFields(log.Fields{
"Caller": "Main",
}).Info("Successfully recreated IP Pool CRD")
}
time.Sleep(15 * time.Minute)
}
}