From 5c7a019eb8528a1f3b0feaa0cc335709d405af2f Mon Sep 17 00:00:00 2001 From: James Munnelly Date: Sat, 12 Mar 2016 19:49:52 +0000 Subject: [PATCH 1/2] Use a more unique name for upstreams --- nginx-controller/controller/controller.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nginx-controller/controller/controller.go b/nginx-controller/controller/controller.go index 53870aa310..0c254b5830 100644 --- a/nginx-controller/controller/controller.go +++ b/nginx-controller/controller/controller.go @@ -270,7 +270,7 @@ func (lbc *LoadBalancerController) updateNGINX(name string, ing *extensions.Ingr } for _, path := range rule.HTTP.Paths { - name := ing.Name + "-" + path.Backend.ServiceName + name := path.Backend.ServiceName + "-Ingress-" + rule.Host + "-" + strings.Replace(path.Path, "/", "-", -1) ups := nginx.NewUpstreamWithDefaultServer(name) svcKey := ing.Namespace + "/" + path.Backend.ServiceName From 17b7955dc91557bbb676cf4e0de143348cf78b6f Mon Sep 17 00:00:00 2001 From: James Munnelly Date: Sat, 12 Mar 2016 22:38:47 +0000 Subject: [PATCH 2/2] Merge loops to avoid duplicating upstream name calculation code --- nginx-controller/controller/controller.go | 38 ++++++++--------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/nginx-controller/controller/controller.go b/nginx-controller/controller/controller.go index 0c254b5830..b2c2deb872 100644 --- a/nginx-controller/controller/controller.go +++ b/nginx-controller/controller/controller.go @@ -263,12 +263,23 @@ func (lbc *LoadBalancerController) updateNGINX(name string, ing *extensions.Ingr } var upstreams []nginx.Upstream + var servers []nginx.Server for _, rule := range ing.Spec.Rules { if rule.IngressRuleValue.HTTP == nil { continue } + server := nginx.Server{Name: rule.Host} + + if pemFile, ok := pems[rule.Host]; ok { + server.SSL = true + server.SSLCertificate = pemFile + server.SSLCertificateKey = pemFile + } + + var locations []nginx.Location + for _, path := range rule.HTTP.Paths { name := path.Backend.ServiceName + "-Ingress-" + rule.Host + "-" + strings.Replace(path.Path, "/", "-", -1) ups := nginx.NewUpstreamWithDefaultServer(name) @@ -297,32 +308,9 @@ func (lbc *LoadBalancerController) updateNGINX(name string, ing *extensions.Ingr } } - upstreams = append(upstreams, ups) - } - } - - var servers []nginx.Server - for _, rule := range ing.Spec.Rules { - server := nginx.Server{Name: rule.Host} - - if pemFile, ok := pems[rule.Host]; ok { - server.SSL = true - server.SSLCertificate = pemFile - server.SSLCertificateKey = pemFile - } - - var locations []nginx.Location - - for _, path := range rule.HTTP.Paths { - loc := nginx.Location{Path: path.Path} - upsName := ing.GetName() + "-" + path.Backend.ServiceName - - for _, ups := range upstreams { - if upsName == ups.Name { - loc.Upstream = ups - } - } + loc := nginx.Location{Path: path.Path, Upstream: ups} locations = append(locations, loc) + upstreams = append(upstreams, ups) } server.Locations = locations