41 lines
852 B
Go
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 ""
|
|
}
|