From 1da2e795c2e7ba63bafd238f73bf349075ce5904 Mon Sep 17 00:00:00 2001 From: Tobias Trabelsi Date: Tue, 20 Jan 2026 21:55:32 +0100 Subject: [PATCH] fix(): informer should now reach to changes and not process everything every 2 seconds. also corrected path in probes --- charts/k8s-cilium-node-label/values.yaml | 4 ++-- internal/informer.go | 3 +-- internal/kube.go | 19 +++++++------------ internal/kube_test.go | 14 +------------- 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/charts/k8s-cilium-node-label/values.yaml b/charts/k8s-cilium-node-label/values.yaml index d3cd548..6ff2d70 100644 --- a/charts/k8s-cilium-node-label/values.yaml +++ b/charts/k8s-cilium-node-label/values.yaml @@ -64,11 +64,11 @@ resources: {} # This is to setup the liveness and readiness probes more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ livenessProbe: httpGet: - path: / + path: /health port: http readinessProbe: httpGet: - path: / + path: /health port: http env: diff --git a/internal/informer.go b/internal/informer.go index 5b67223..bd5c61e 100644 --- a/internal/informer.go +++ b/internal/informer.go @@ -21,8 +21,7 @@ func StartLeaseInformer(cfg *Config, stopCh <-chan struct{}) error { if err != nil { return fmt.Errorf("Could not generate client for informer: %s", err.Error()) } - - factory := informers.NewSharedInformerFactoryWithOptions(&client, 0, informers.WithNamespace("kube-system")) + factory := informers.NewSharedInformerFactoryWithOptions(client, 0, informers.WithNamespace("kube-system")) leaseInformer := factory.Coordination().V1().Leases().Informer() leaseInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{ diff --git a/internal/kube.go b/internal/kube.go index cc09892..f55ea0a 100644 --- a/internal/kube.go +++ b/internal/kube.go @@ -3,7 +3,6 @@ package internal import ( "context" "fmt" - "strings" log "github.com/sirupsen/logrus" v1 "k8s.io/api/coordination/v1" @@ -12,19 +11,19 @@ import ( "k8s.io/client-go/rest" ) -func generateClient() (kubernetes.Clientset, error) { +func generateClient() (kubernetes.Interface, error) { log.WithFields(log.Fields{ "Caller": "generateClient", }).Info("Generating k8s client") config, err := rest.InClusterConfig() if err != nil { - return kubernetes.Clientset{}, fmt.Errorf("Could not generate in cluster config: %s", err.Error()) + return nil, fmt.Errorf("Could not generate in cluster config: %s", err.Error()) } clientset, err := kubernetes.NewForConfig(config) if err != nil { - return kubernetes.Clientset{}, fmt.Errorf("Could not generate clientset: %s", err.Error()) + return nil, fmt.Errorf("Could not generate clientset: %s", err.Error()) } - return *clientset, nil + return clientset, nil } func LabelNode(nodeName string, leaseName string, cfg *Config) error { @@ -33,7 +32,7 @@ func LabelNode(nodeName string, leaseName string, cfg *Config) error { return fmt.Errorf("Could not generate client: %s", err.Error()) } - return ApplyLabelToNode(&client, nodeName, leaseName, cfg) + return ApplyLabelToNode(client, nodeName, leaseName, cfg) } @@ -100,10 +99,6 @@ func GetNodeNameFromLease(lease v1.Lease) (string, error) { return "", fmt.Errorf("Lease %s has no HolderIdentity", lease.Name) } holderIdentity := *lease.Spec.HolderIdentity - parts := strings.Split(holderIdentity, "-") - if len(parts) < 3 { - return "", fmt.Errorf("Unexpected HolderIdentity format: %s", holderIdentity) - } - nodeName := strings.Join(parts[2:], "-") - return nodeName, nil + + return holderIdentity, nil } diff --git a/internal/kube_test.go b/internal/kube_test.go index 39404b7..2b56b11 100644 --- a/internal/kube_test.go +++ b/internal/kube_test.go @@ -20,23 +20,11 @@ func TestGetNodeNameFromLease_Valid(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - if node != "node1" { + if node != "aa-bb-node1" { t.Fatalf("unexpected node name: got %s", node) } } -func TestGetNodeNameFromLease_Invalid(t *testing.T) { - l := coordv1.Lease{} - l.Name = "cilium-l2announce-2" - hi := "too-short" - l.Spec.HolderIdentity = &hi - - _, err := GetNodeNameFromLease(l) - if err == nil { - t.Fatalf("expected error for invalid holder identity") - } -} - func TestApplyLabelToNode_WithFakeClient(t *testing.T) { client := fake.NewSimpleClientset()