Ingress is pretty defined. You could swap in most and be fine. Traefik and others have middleware/annotations that can do some special stuff if needed.
Otherwise you can look at the Gateway spec and choose one of those. A bit more fully featured in terms of serving not only http(s) but also tcp, grpc, etc. Just a bit less fully featured when you look at what custom annotations some ingress solutions built-in (ie. ingress-nginx and others.) Just kind of depends on your use case. If you have no special needs I recommend just getting on board with gateway (traefik, calico, etc. all make implementations) since it's the future of K8s ingress/egress.