feat: add support for external IP in ambassador host source

This commit is contained in:
Frederic Mereu 2023-06-26 13:40:41 +02:00
parent bd8658e89a
commit f9099b8bfc
No known key found for this signature in database
GPG Key ID: 8CE4FC10C7F26E85

View File

@ -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