From 1216ed03f7a4de692ca2f6fee1304a35bcbd30b9 Mon Sep 17 00:00:00 2001 From: Manuel Alejandro de Brito Fontes Date: Tue, 31 Mar 2020 22:32:03 -0300 Subject: [PATCH] Fix condition in server-alias annotation --- internal/ingress/controller/controller.go | 2 +- test/e2e/annotations/alias.go | 28 +++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index d7dd890d6..5d47960e2 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -1066,7 +1066,7 @@ func (n *NGINXController) createServers(data []*ingress.Ingress, if len(servers[host].Aliases) == 0 { servers[host].Aliases = anns.Aliases - if _, ok := allAliases[host]; !ok { + if aliases := allAliases[host]; len(aliases) == 0 { allAliases[host] = anns.Aliases } } else { diff --git a/test/e2e/annotations/alias.go b/test/e2e/annotations/alias.go index 5a9bf0c22..6b11a9c07 100644 --- a/test/e2e/annotations/alias.go +++ b/test/e2e/annotations/alias.go @@ -83,4 +83,32 @@ var _ = framework.DescribeAnnotation("server-alias", func() { Body().Contains(fmt.Sprintf("host=%v", host)) } }) + + ginkgo.It("should return status code 200 for hosts defined in two ingresses, different path with one alias", func() { + host := "foo" + + ing := framework.NewSingleIngress("app-a", "/app-a", host, f.Namespace, framework.EchoService, 80, nil) + f.EnsureIngress(ing) + + annotations := map[string]string{ + "nginx.ingress.kubernetes.io/server-alias": "bar", + } + ing = framework.NewSingleIngress("app-b", "/app-b", host, f.Namespace, framework.EchoService, 80, annotations) + f.EnsureIngress(ing) + + f.WaitForNginxServer(host, + func(server string) bool { + return strings.Contains(server, fmt.Sprintf("server_name %v bar", host)) + }) + + hosts := []string{"foo", "bar"} + for _, host := range hosts { + f.HTTPTestClient(). + GET("/app-a"). + WithHeader("Host", host). + Expect(). + Status(http.StatusOK). + Body().Contains(fmt.Sprintf("host=%v", host)) + } + }) })