From f9099b8bfc5301cef9f28382d6c545206e62bfef Mon Sep 17 00:00:00 2001 From: Frederic Mereu Date: Mon, 26 Jun 2023 13:40:41 +0200 Subject: [PATCH 1/2] feat: add support for external IP in ambassador host source --- source/ambassador_host.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/source/ambassador_host.go b/source/ambassador_host.go index 4d8659c29..2106b951e 100644 --- a/source/ambassador_host.go +++ b/source/ambassador_host.go @@ -183,7 +183,12 @@ func (sc *ambassadorHostSource) endpointsFromHost(ctx context.Context, host *amb return endpoints, nil } -func (sc *ambassadorHostSource) targetsFromAmbassadorLoadBalancer(ctx context.Context, service string) (targets endpoint.Targets, err error) { +func (sc *ambassadorHostSource) targetsFromAmbassadorLoadBalancer(ctx context.Context, service string) (endpoint.Targets, error) { + var ( + targets endpoint.Targets + externalIPs endpoint.Targets + ) + lbNamespace, lbName, err := parseAmbLoadBalancerService(service) if err != nil { return nil, err @@ -203,7 +208,17 @@ func (sc *ambassadorHostSource) targetsFromAmbassadorLoadBalancer(ctx context.Co } } - return + if svc.Spec.ExternalIPs != nil { + for _, ext := range svc.Spec.ExternalIPs { + externalIPs = append(externalIPs, ext) + } + } + + if len(externalIPs) > 0 { + return externalIPs, nil + } + + return targets, nil } // parseAmbLoadBalancerService returns a name/namespace tuple from the annotation in From 73862a802bca70ea477ae3fa0144e8e0cd517e92 Mon Sep 17 00:00:00 2001 From: Frederic Mereu Date: Sat, 12 Aug 2023 13:49:17 +0200 Subject: [PATCH 2/2] chore: reuse existing extractLoadBalancerTargets function --- source/ambassador_host.go | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/source/ambassador_host.go b/source/ambassador_host.go index 2106b951e..104581ae4 100644 --- a/source/ambassador_host.go +++ b/source/ambassador_host.go @@ -184,11 +184,6 @@ func (sc *ambassadorHostSource) endpointsFromHost(ctx context.Context, host *amb } func (sc *ambassadorHostSource) targetsFromAmbassadorLoadBalancer(ctx context.Context, service string) (endpoint.Targets, error) { - var ( - targets endpoint.Targets - externalIPs endpoint.Targets - ) - lbNamespace, lbName, err := parseAmbLoadBalancerService(service) if err != nil { return nil, err @@ -199,24 +194,7 @@ func (sc *ambassadorHostSource) targetsFromAmbassadorLoadBalancer(ctx context.Co return nil, err } - for _, lb := range svc.Status.LoadBalancer.Ingress { - if lb.IP != "" { - targets = append(targets, lb.IP) - } - if lb.Hostname != "" { - targets = append(targets, lb.Hostname) - } - } - - if svc.Spec.ExternalIPs != nil { - for _, ext := range svc.Spec.ExternalIPs { - externalIPs = append(externalIPs, ext) - } - } - - if len(externalIPs) > 0 { - return externalIPs, nil - } + var targets = extractLoadBalancerTargets(svc, true) return targets, nil }