From cfb9955d576a39c18c91d91a106ada378c99d3a7 Mon Sep 17 00:00:00 2001 From: Chris Privitere <23177737+cprivitere@users.noreply.github.com> Date: Tue, 25 Jun 2024 17:12:43 -0500 Subject: [PATCH] fix: handle svc objects with empty annotations Signed-off-by: Chris Privitere <23177737+cprivitere@users.noreply.github.com> --- metal/loadbalancers/emlb/emlb.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/metal/loadbalancers/emlb/emlb.go b/metal/loadbalancers/emlb/emlb.go index c809b0e..ef32a43 100644 --- a/metal/loadbalancers/emlb/emlb.go +++ b/metal/loadbalancers/emlb/emlb.go @@ -90,8 +90,15 @@ func (l *LB) reconcileService(ctx context.Context, svc *v1.Service, n []*v1.Node patch := client.MergeFrom(svc.DeepCopy()) - svc.Annotations[LoadBalancerIDAnnotation] = loadBalancer.GetId() - svc.Annotations["equinix.com/loadbalancerMetro"] = l.manager.GetMetro() + annotations := svc.GetAnnotations() + if annotations == nil { + annotations = make(map[string]string) + } + + annotations[LoadBalancerIDAnnotation] = loadBalancer.GetId() + annotations["equinix.com/loadbalancerMetro"] = l.manager.GetMetro() + + svc.SetAnnotations(annotations) return l.client.Patch(ctx, svc, patch) }