Files

41 lines
852 B
Go

package controller_test
import (
"testing"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/KubelanCloud/kks-provider-plugin/pkg/kloudlb"
)
func TestIngressIPPrefersStatus(t *testing.T) {
svc := &corev1.Service{
ObjectMeta: metav1.ObjectMeta{
Annotations: map[string]string{kloudlb.AnnotationIP: "172.173.200.1"},
},
Status: corev1.ServiceStatus{
LoadBalancer: corev1.LoadBalancerStatus{
Ingress: []corev1.LoadBalancerIngress{{IP: "172.173.200.2"}},
},
},
}
ip := ingressIP(svc)
if ip != "172.173.200.2" {
t.Fatalf("ingressIP = %q", ip)
}
}
func ingressIP(svc *corev1.Service) string {
for _, ing := range svc.Status.LoadBalancer.Ingress {
if ing.IP != "" {
return ing.IP
}
}
if svc.Annotations != nil {
return svc.Annotations[kloudlb.AnnotationIP]
}
return ""
}