Source based routing is necessary for some services where we want the
same clients land to the same servers.
For exanmple, Keystone uses one of many memcached servers - if a client
gets a token from one but then lands on another api server on the next
request, that will bind to another cache and we get failed
authentication.
Other examples are horizon/murano where we upload a package in several
steps. If we don't balance client connections to the same host we will
end up with the package downloaded to one host but unsuccessfully
unpacked/imported on another host.
This option is commonly used in the official OpenStack docs [0]
[0] https://docs.openstack.org/ha-guide/controller-ha-haproxy.html
Co-Authored-By: James McCarthy <james.m.mccarthy@oracle.com>
Change-Id: I56f1e48f6dbe457e776a474222073bbefc48c92a