The official HAProxy Ingress Controller uses the Runtime API [1] to avoid restarts/reloads and also has hitless reloads configured by default. HAProxy Technologies also contributed the capability to use the Runtime API within the jcmorais-haproxy ingress controller as well but it requires you to activate using the dynamic-scaling option [3]
One thing I wanted to point out is that the HAProxy Ingress Controller actually has over 25 [2] configuration options at the time of publishing, not 8 as mentioned.
While we have identified a few on our own we'd love to work with you further to identify any missing configuration directives that can help perform some more accurate benchmarks using the official HAProxy Ingress Controller.
disclosure: I work at HAProxy Technologies
[1] https://www.haproxy.com/blog/dynamic-configuration-haproxy-r...
[2] https://github.com/haproxytech/kubernetes-ingress/tree/maste...
[3] https://github.com/jcmoraisjr/haproxy-ingress#dynamic-scalin...