Files
k8s-cilium-node-label/internal/kube_test.go
Tobias Trabelsi 1da2e795c2
Some checks failed
Lint and Test Charts / lint-test (push) Has been cancelled
Build and Test / Test (push) Failing after 21s
Build and Test / Build_Image_arm64 (push) Successful in 2m4s
Build and Test / Build_Image_amd64 (push) Has been cancelled
fix(): informer should now reach to changes and not process everything every 2 seconds. also corrected path in probes
2026-01-20 21:55:32 +01:00

62 lines
1.5 KiB
Go

package internal
import (
"context"
"testing"
coordv1 "k8s.io/api/coordination/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes/fake"
)
func TestGetNodeNameFromLease_Valid(t *testing.T) {
l := coordv1.Lease{}
l.Name = "cilium-l2announce-1"
hi := "aa-bb-node1"
l.Spec.HolderIdentity = &hi
node, err := GetNodeNameFromLease(l)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if node != "aa-bb-node1" {
t.Fatalf("unexpected node name: got %s", node)
}
}
func TestApplyLabelToNode_WithFakeClient(t *testing.T) {
client := fake.NewSimpleClientset()
node := &corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "test-node",
Labels: map[string]string{},
},
}
_, err := client.CoreV1().Nodes().Create(context.TODO(), node, metav1.CreateOptions{})
if err != nil {
t.Fatalf("failed to create fake node: %v", err)
}
cfg := &Config{CiliumLabel: "mylabel", DryRun: false}
err = ApplyLabelToNode(client, "test-node", "lease-1", cfg)
if err != nil {
t.Fatalf("ApplyLabelToNode failed: %v", err)
}
updated, err := client.CoreV1().Nodes().Get(context.TODO(), "test-node", metav1.GetOptions{})
if err != nil {
t.Fatalf("failed to get node: %v", err)
}
if updated.Labels["mylabel"] != "true" {
t.Fatalf("expected label set on node, got: %v", updated.Labels)
}
if updated.Labels["cilium.uploadfilter24.eu/lease"] != "lease-1" {
t.Fatalf("expected lease label set on node, got: %v", updated.Labels)
}
}