fix for #1930, make sessions sticky, for ingress with multiple rules and backends
* for an ingress with session affinity cookie, set the location as path on the cookie when unique * the previous behaviour ( cookie path=/ ) is preserved for ingresses with multiple rules for the same backend (locations not unique) added e2e tests for session affinity, setting path on sticky config added tests: * it should set the path to /something on the generated cookie * it should set the path to / on the generated cookie if there's more than one rule referring to the same backend
This commit is contained in:
parent
f74d063585
commit
1a320ae289
2 changed files with 114 additions and 1 deletions
|
|
@ -361,7 +361,7 @@ http {
|
|||
{{ range $name, $upstream := $backends }}
|
||||
{{ if eq $upstream.SessionAffinity.AffinityType "cookie" }}
|
||||
upstream sticky-{{ $upstream.Name }} {
|
||||
sticky hash={{ $upstream.SessionAffinity.CookieSessionAffinity.Hash }} name={{ $upstream.SessionAffinity.CookieSessionAffinity.Name }} httponly;
|
||||
sticky hash={{ $upstream.SessionAffinity.CookieSessionAffinity.Hash }} name={{ $upstream.SessionAffinity.CookieSessionAffinity.Name }}{{if eq (len $upstream.SessionAffinity.CookieSessionAffinity.Locations) 1 }}{{ range $locationName, $locationPaths := $upstream.SessionAffinity.CookieSessionAffinity.Locations }}{{ if eq (len $locationPaths) 1 }} path={{ index $locationPaths 0 }}{{ end }}{{ end }}{{ end }} httponly;
|
||||
|
||||
{{ if (gt $cfg.UpstreamKeepaliveConnections 0) }}
|
||||
keepalive {{ $cfg.UpstreamKeepaliveConnections }};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue