From 54c30b91c9cee69ae37cbe1bc268ddf10b522574 Mon Sep 17 00:00:00 2001 From: Manuel Alejandro de Brito Fontes Date: Sun, 2 Feb 2020 19:08:55 -0300 Subject: [PATCH] Fix server aliases (#5003) --- internal/ingress/controller/controller.go | 26 ++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index 07aa0ee80..8634e5e07 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -1154,12 +1154,28 @@ func (n *NGINXController) createServers(data []*ingress.Ingress, } for host, hostAliases := range allAliases { - for index, alias := range hostAliases { - if _, ok := servers[alias]; ok { - klog.Warningf("Conflicting hostname (%v) and alias (%v). Removing alias to avoid conflicts.", host, alias) - servers[host].Aliases = append(servers[host].Aliases[:index], servers[host].Aliases[index+1:]...) - } + if _, ok := servers[host]; !ok { + continue } + + uniqAliases := sets.NewString() + for _, alias := range hostAliases { + if alias == host { + continue + } + + if _, ok := servers[alias]; ok { + continue + } + + if uniqAliases.Has(alias) { + continue + } + + uniqAliases.Insert(alias) + } + + servers[host].Aliases = uniqAliases.List() } return servers