Files
kks-provider-plugin/pkg/kloudlb/controller/ports_test.go
T
josh 1a26a28876
Release Chart / release (push) Successful in 5s
deploy / build (push) Successful in 2m29s
feat(chart): release 1.2.6 with lb source ranges
2026-08-04 20:30:49 +03:30

65 lines
2.0 KiB
Go

package controller
import (
"testing"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func TestServicePortsToAllocateRules(t *testing.T) {
svc := &corev1.Service{
ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "web"},
Spec: corev1.ServiceSpec{Ports: []corev1.ServicePort{{Port: 80, Protocol: corev1.ProtocolTCP}, {Port: 53, Protocol: corev1.ProtocolUDP}}},
}
rules, err := servicePortsToAllocateRules(svc)
if err != nil {
t.Fatalf("servicePortsToAllocateRules: %v", err)
}
if len(rules) != 2 {
t.Fatalf("rules count = %d, want 2", len(rules))
}
if rules[0].Protocol != "tcp" || rules[0].PortFrom != 80 {
t.Fatalf("unexpected first rule: %+v", rules[0])
}
if rules[1].Protocol != "udp" || rules[1].PortFrom != 53 {
t.Fatalf("unexpected second rule: %+v", rules[1])
}
}
func TestServicePortsToAllocateRulesRejectsUnsupportedProtocol(t *testing.T) {
svc := &corev1.Service{
ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "web"},
Spec: corev1.ServiceSpec{Ports: []corev1.ServicePort{{Port: 80, Protocol: corev1.ProtocolSCTP}}},
}
if _, err := servicePortsToAllocateRules(svc); err == nil {
t.Fatal("expected error for unsupported protocol")
}
}
func TestServicePortsToAllocateRulesRejectsNoPorts(t *testing.T) {
svc := &corev1.Service{ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "web"}}
if _, err := servicePortsToAllocateRules(svc); err == nil {
t.Fatal("expected error for empty ports")
}
}
func TestServiceLoadBalancerSourceRanges(t *testing.T) {
svc := &corev1.Service{
ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "web"},
Spec: corev1.ServiceSpec{
LoadBalancerSourceRanges: []string{"203.0.113.0/24", " 198.51.100.8/32 ", ""},
},
}
ranges := serviceLoadBalancerSourceRanges(svc)
if len(ranges) != 2 {
t.Fatalf("ranges count = %d, want 2", len(ranges))
}
if ranges[0] != "203.0.113.0/24" || ranges[1] != "198.51.100.8/32" {
t.Fatalf("unexpected ranges: %#v", ranges)
}
}