K8s cluster on-premises and HAProxy/F5 load balancer

Cluster information:

Kubernetes version: 1.23.4
Cloud being used: bare-metal
Installation method: kubeadm
Host OS: Debian 11.2
CNI and version: docker.io/calico/cni:v3.22.0
CRI and version: containerd://1.4.13


I need some help with a small k8s cluster. Our setup has 3 control-plane nodes, 2 worker nodes and an HAProxy server. We want to publish services using ingress-nginx and LoadBalancer method to avoid NodePort restrictions, but I don’t quite understand how to configure everything to be able to do it. Of course, I have been able to publish services using NodePort, but this is not what I want.

I have tried to publish using LoadBalancer method, but ExternalIP is in “pending” state, and I don’t know how to configure it. Can you put me in the right way to configure an ingress-nginx with LoadBalancer using my HAProxy or F5 BigIP (we have a couple of them) like cloud providers do?

There is a lot of doc about MetalLB, but I didn’t found anything about external HAProxy or F5.

Thanks in advance