@@ -25,6 +25,7 @@ import (
2525 "time"
2626
2727 "github.com/pkg/errors"
28+ "k8s.io/apimachinery/pkg/util/sets"
2829 "k8s.io/klog/v2"
2930
3031 pool "gopkg.in/go-playground/pool.v3"
@@ -339,26 +340,26 @@ func statusAddressFromService(service string, kubeClient clientset.Interface) ([
339340 case apiv1 .ServiceTypeClusterIP :
340341 return []string {svc .Spec .ClusterIP }, nil
341342 case apiv1 .ServiceTypeNodePort :
342- addresses := [] string {}
343+ addresses := sets . NewString ()
343344 if svc .Spec .ExternalIPs != nil {
344- addresses = append ( addresses , svc .Spec .ExternalIPs ... )
345+ addresses . Insert ( svc .Spec .ExternalIPs ... )
345346 } else {
346- addresses = append ( addresses , svc .Spec .ClusterIP )
347+ addresses . Insert ( svc .Spec .ClusterIP )
347348 }
348- return addresses , nil
349+ return addresses . List () , nil
349350 case apiv1 .ServiceTypeLoadBalancer :
350- addresses := [] string {}
351+ addresses := sets . NewString ()
351352 for _ , ip := range svc .Status .LoadBalancer .Ingress {
352353 if ip .IP == "" {
353- addresses = append ( addresses , ip .Hostname )
354+ addresses . Insert ( ip .Hostname )
354355 } else {
355- addresses = append ( addresses , ip .IP )
356+ addresses . Insert ( ip .IP )
356357 }
357358 }
358359
359- addresses = append ( addresses , svc .Spec .ExternalIPs ... )
360+ addresses . Insert ( svc .Spec .ExternalIPs ... )
360361
361- return addresses , nil
362+ return addresses . List () , nil
362363 }
363364
364365 return nil , fmt .Errorf ("unable to extract IP address/es from service %v" , service )
0 commit comments