Merge pull request #6620 from nic-6443/sticky-session-fix
Fix sticky session not set for host in server-alias annotation (#6448)
This commit is contained in:
commit
fe65e9d22f
2 changed files with 50 additions and 0 deletions
|
@ -651,6 +651,15 @@ func (n *NGINXController) getBackendServers(ingresses []*ingress.Ingress) ([]*in
|
||||||
locs[host] = []string{}
|
locs[host] = []string{}
|
||||||
}
|
}
|
||||||
locs[host] = append(locs[host], path.Path)
|
locs[host] = append(locs[host], path.Path)
|
||||||
|
|
||||||
|
if len(server.Aliases) > 0 {
|
||||||
|
for _, alias := range server.Aliases {
|
||||||
|
if _, ok := locs[alias]; !ok {
|
||||||
|
locs[alias] = []string{}
|
||||||
|
}
|
||||||
|
locs[alias] = append(locs[alias], path.Path)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -311,4 +311,45 @@ var _ = framework.DescribeAnnotation("affinity session-cookie-name", func() {
|
||||||
Status(http.StatusOK).
|
Status(http.StatusOK).
|
||||||
Header("Set-Cookie").Contains("SERVERID=")
|
Header("Set-Cookie").Contains("SERVERID=")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
ginkgo.It("should work with server-alias annotation", func() {
|
||||||
|
host := "foo.com"
|
||||||
|
alias1 := "a1.foo.com"
|
||||||
|
alias2 := "a2.foo.com"
|
||||||
|
annotations := make(map[string]string)
|
||||||
|
annotations["nginx.ingress.kubernetes.io/affinity"] = "cookie"
|
||||||
|
annotations["nginx.ingress.kubernetes.io/session-cookie-name"] = "SERVERID"
|
||||||
|
annotations["nginx.ingress.kubernetes.io/server-alias"] = fmt.Sprintf("%s,%s", alias1, alias2)
|
||||||
|
|
||||||
|
ing := framework.NewSingleIngress(host, "/bar", host, f.Namespace, framework.EchoService, 80, annotations)
|
||||||
|
f.EnsureIngress(ing)
|
||||||
|
|
||||||
|
f.WaitForNginxServer(host,
|
||||||
|
func(server string) bool {
|
||||||
|
//server alias sort by sort.Strings(), see: internal/ingress/annotations/alias/main.go:60
|
||||||
|
return strings.Contains(server, fmt.Sprintf("server_name %s %s %s ;", host, alias1, alias2))
|
||||||
|
})
|
||||||
|
|
||||||
|
f.HTTPTestClient().
|
||||||
|
GET("/bar").
|
||||||
|
WithHeader("Host", host).
|
||||||
|
Expect().
|
||||||
|
Status(http.StatusOK).
|
||||||
|
Header("Set-Cookie").Contains("SERVERID=")
|
||||||
|
|
||||||
|
f.HTTPTestClient().
|
||||||
|
GET("/bar").
|
||||||
|
WithHeader("Host", alias1).
|
||||||
|
Expect().
|
||||||
|
Status(http.StatusOK).
|
||||||
|
Header("Set-Cookie").Contains("SERVERID=")
|
||||||
|
|
||||||
|
f.HTTPTestClient().
|
||||||
|
GET("/bar").
|
||||||
|
WithHeader("Host", alias2).
|
||||||
|
Expect().
|
||||||
|
Status(http.StatusOK).
|
||||||
|
Header("Set-Cookie").Contains("SERVERID=")
|
||||||
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue