Files
k8s-cilium-node-label/cmd/main.go

58 lines
1.1 KiB
Go

package main
import (
"fmt"
"os"
"os/signal"
"syscall"
"time"
"git.uploadfilter24.eu/covidnetes/k8s-cilium-node-label/internal/utils"
"git.uploadfilter24.eu/covidnetes/k8s-cilium-node-label/internal"
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()))
}
go func() {
log.WithFields(log.Fields{
"Caller": "Main",
}).Info("Starting Health Endpoint")
internal.StartHealthEndpoint()
}()
log.WithFields(log.Fields{
"Caller": "Main",
}).Info("Entering main event loop")
stopCh := make(chan struct{})
go func() {
err := internal.StartLeaseInformer(cfg, stopCh)
if err != nil {
log.WithFields(log.Fields{"Caller": "Main"}).Fatalf("Lease informer failed: %s", err.Error())
}
}()
sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
s := <-sigCh
log.WithFields(log.Fields{
"Caller": "Main",
"Signal": s.String(),
}).Info("Signal received, shutting down")
close(stopCh)
time.Sleep(2 * time.Second)
}