62 lines
1.5 KiB
Go
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)
|
|
}
|
|
}
|