package main import ( "fmt" "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") for { leases, err := internal.GetCiliumL2Leases() if err != nil { log.WithFields(log.Fields{ "Caller": "Main", }).Errorf("Error getting Cilium L2 leases: %s", err.Error()) } for lease := range leases { // We should probably group here as there may be multiple leases per node node, err := internal.GetNodeNameFromLease(leases[lease]) if err != nil { log.WithFields(log.Fields{ "Caller": "Main", }).Errorf("Error getting node name from Cilium L2 lease: %s", err.Error()) } if cfg.DryRun { log.WithFields(log.Fields{ "Caller": "Main", }).Info(fmt.Sprintf("Dry run enabled, would label node %s with %s=true", node, cfg.CiliumLabel)) } else { err := internal.LabelNode(node, leases[lease].Name, cfg) if err != nil { log.WithFields(log.Fields{ "Caller": "Main", }).Error(fmt.Sprintf("Error labeling node: %s", err.Error())) } } } time.Sleep(5 * time.Minute) } }