From ec28539e43b681f17b3dfa1aaaf0838f97ee4dc5 Mon Sep 17 00:00:00 2001 From: Conor Landry Date: Tue, 13 Nov 2018 13:20:15 -0500 Subject: [PATCH] bugfix: do not merge catch-all canary backends with itself --- internal/ingress/controller/controller.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index 62143ac55..3247e3ece 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -1008,13 +1008,15 @@ func mergeAlternativeBackends(ing *extensions.Ingress, upstreams map[string]*ing ups := upstreams[upsName] - defLoc := servers[defServerName].Locations[0] + for _, defLoc := range servers[defServerName].Locations { + if !upstreams[defLoc.Backend].NoServer { + glog.Infof("matching backend %v found for alternative backend %v", + upstreams[defLoc.Backend].Name, ups.Name) - glog.Infof("matching backend %v found for alternative backend %v", - upstreams[defLoc.Backend].Name, ups.Name) - - upstreams[defLoc.Backend].AlternativeBackends = - append(upstreams[defLoc.Backend].AlternativeBackends, ups.Name) + upstreams[defLoc.Backend].AlternativeBackends = + append(upstreams[defLoc.Backend].AlternativeBackends, ups.Name) + } + } } for _, rule := range ing.Spec.Rules {