From b28d99019625185d397b3e46810bc4e5bb3de526 Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Sun, 17 Sep 2017 11:54:00 -0300 Subject: [PATCH] Fix catch all server upstream server --- core/pkg/ingress/controller/controller.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/core/pkg/ingress/controller/controller.go b/core/pkg/ingress/controller/controller.go index b08469a17..e848dc11c 100644 --- a/core/pkg/ingress/controller/controller.go +++ b/core/pkg/ingress/controller/controller.go @@ -1124,13 +1124,26 @@ func (ic *GenericController) createServers(data []interface{}, // check if ssl passthrough is configured sslpt := ic.annotations.SSLPassthrough(ing) + + // default upstream server du := ic.getDefaultUpstream() un := du.Name + if ing.Spec.Backend != nil { // replace default backend defUpstream := fmt.Sprintf("%v-%v-%v", ing.GetNamespace(), ing.Spec.Backend.ServiceName, ing.Spec.Backend.ServicePort.String()) if backendUpstream, ok := upstreams[defUpstream]; ok { un = backendUpstream.Name + + // Special case: + // ingress only with a backend and no rules + // this case defines a "catch all" server + defLoc := servers[defServerName].Locations[0] + if defLoc.IsDefBackend && len(ing.Spec.Rules) == 0 { + defLoc.IsDefBackend = false + defLoc.Backend = backendUpstream.Name + defLoc.Service = backendUpstream.Service + } } }