feat(): initial untested implementation

This commit is contained in:
2026-01-18 23:35:57 +01:00
parent dba32935c8
commit 55f2a92515
11 changed files with 635 additions and 0 deletions

65
cmd/main.go Normal file
View File

@@ -0,0 +1,65 @@
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)
}
}