Why ingress rules are not followed? default backend is reached instead Why ingress rules are not followed? default backend is reached instead kubernetes kubernetes

Why ingress rules are not followed? default backend is reached instead


I finally figured out what I was missing. I added kubernetes.io/ingress.class: haproxy annotation and problem solved:

apiVersion: networking.k8s.io/v1beta1kind: Ingress  metadata:  name: ravendb  namespace: default  labels:    app: ravendb  annotations:    ingress.kubernetes.io/ssl-passthrough: "true"    kubernetes.io/ingress.class: haproxyspec:  rules:  - host: a.raven.aedas-prev.inercya.com    http:      paths:      - backend:          serviceName: ravendb-0          servicePort: 443        path: /  - host: tcp-a.raven.aedas-prev.inercya.com    http:      paths:      - backend:          serviceName: ravendb-0          servicePort: 38888        path: /  - host: b.raven.aedas-prev.inercya.com    http:      paths:      - backend:          serviceName: ravendb-1          servicePort: 443        path: /  - host: tcp-b.raven.aedas-prev.inercya.com    http:      paths:      - backend:          serviceName: ravendb-1          servicePort: 38888        path: /  - host: c.raven.aedas-prev.inercya.com    http:      paths:      - backend:          serviceName: ravendb-2          servicePort: 443        path: /  - host: tcp-c.raven.aedas-prev.inercya.com    http:      paths:      - backend:          serviceName: ravendb-2          servicePort: 38888        path: /

Now HAproxy ingress works as expected, reverse proxying external traffic to internal services.