Ingress in K8S is too complex. We need some sane defaults. It seems like there are more decisions to be made upfront then are really necessary.
We are setting up our cluster and we ended up going with Traefik and I just published an interview with our architect where he explained why he choose Traefik. Excuse the plug, but its here:
https://blog.earthly.dev/building-on-kubernetes-ingress/#kub...
The short version is that he finds it easier to setup than Nginx. I think learning curves are an important metric that must be considered as well.