ingress-nginx: 0.21.0 breaks stickiness for default host

What keywords did you search in NGINX Ingress controller issues before filing this one? (If you have found any duplicates, you should instead reply there.): I was searching for stickiness and cookies and it seems these two PRs are relevant to this bug: https://github.com/kubernetes/ingress-nginx/issues/3534 https://github.com/kubernetes/ingress-nginx/pull/3383

Is this a BUG REPORT or FEATURE REQUEST? (choose one): It’s a BUG REPORT

NGINX Ingress controller version: 0.21.0

Kubernetes version (use kubectl version): v1.12.5

Environment:

  • Cloud provider or hardware configuration: GCP
  • OS (e.g. from /etc/os-release): CoreOS
  • Kernel (e.g. uname -a):
  • Install tools:
  • Others:

What happened: We are running the same set of microservices across ~100 different domains and always using default host (spec.rules.host undefined). After we upgraded to 0.21.0 we don’t see a cookie being issued for the following configuration:

kind: Ingress
metadata:
  name: test-path-sticky
  namespace: {{ .Values.namespace }}
  annotations:
    nginx.ingress.kubernetes.io/affinity: cookie
spec:
  rules:
  - http:
      paths:
      - path: /test-path-sticky/
        backend:
          serviceName: test-app
          servicePort: 80

What you expected to happen: I would expect to have a cookie issued in this case because host is an optional directive https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules

Anything else we need to know: It’s working with 0.20.0 and probably was introduced by this change: https://github.com/kubernetes/ingress-nginx/pull/3383

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 18
  • Comments: 17 (5 by maintainers)

Most upvoted comments

was the PR good besides not signing the CLA?

The PR looks fine but it needs lua and e2e tests (to verify the fix and avoid regressions)

I believe it’s still relevant