From 3d081c79e4c2091235366b33ea465d2b6194765c Mon Sep 17 00:00:00 2001 From: Travis Raines Date: Mon, 16 Sep 2019 17:07:17 -0700 Subject: [PATCH] fix(parser) include port in upstream names Include the port in upstream names, such that the format is serviceName.namespace.port.svc, e.g. fooserv.default.80.svc. This correctly handles cases where a service exposes multiple ports, whereas previously both would attempt the same upstream and conflict. Fix #335 --- internal/ingress/controller/parser/parser.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/ingress/controller/parser/parser.go b/internal/ingress/controller/parser/parser.go index a6403f2737..80068e6cd4 100644 --- a/internal/ingress/controller/parser/parser.go +++ b/internal/ingress/controller/parser/parser.go @@ -374,7 +374,7 @@ func (p *Parser) parseIngressRules( service = Service{ Service: kong.Service{ Name: kong.String(serviceName), - Host: kong.String(rule.Backend.ServiceName + "." + ingress.Namespace + ".svc"), + Host: kong.String(rule.Backend.ServiceName + "." + ingress.Namespace + "." + rule.Backend.ServicePort.String() + ".svc"), Port: kong.Int(80), Protocol: kong.String("http"), Path: kong.String("/"), @@ -409,7 +409,7 @@ func (p *Parser) parseIngressRules( service = Service{ Service: kong.Service{ Name: kong.String(serviceName), - Host: kong.String(defaultBackend.ServiceName + "." + ingress.Namespace + ".svc"), + Host: kong.String(defaultBackend.ServiceName + "." + ingress.Namespace + "." + defaultBackend.ServicePort.String() + ".svc"), Port: kong.Int(80), }, Namespace: ingress.Namespace, @@ -555,7 +555,7 @@ func overrideUpstream(upstream *Upstream, func (p *Parser) getUpstreams(serviceMap map[string]Service) ([]Upstream, error) { var upstreams []Upstream for _, service := range serviceMap { - upstreamName := service.Backend.ServiceName + "." + service.Namespace + ".svc" + upstreamName := service.Backend.ServiceName + "." + service.Namespace + "." + service.Backend.ServicePort.String() + ".svc" upstream := Upstream{ Upstream: kong.Upstream{ Name: kong.String(upstreamName),