Comment from Tim Rozet,
The reason it is not starting on non-VIP control nodes is because the binding for haproxy is not set to transparent. Therefore since the nodes do not have the VIP on their machines, haproxy will not start because it cannot bind to those IPs. Most other services use transparent mode which will allow haproxy to start even when it does not have the referenced bind address. Therefore the behavior is expected here. However, is the behavior correct?
On both Zaqar Websocket and ODL Websocket services we are not using transparent binding with a note from Juan indicating it is done intentionally:
if $zaqar_ws {
::tripleo::haproxy::endpoint { 'zaqar_ws':
public_virtual_ip => $public_virtual_ip,
internal_ip => hiera('zaqar_ws_vip', $controller_virtual_ip),
service_port => $ports[zaqar_ws_port],
ip_addresses => hiera('zaqar_ws_node_ips', $controller_hosts_real),
server_names => hiera('zaqar_ws_node_names', $controller_hosts_names_real),
mode => 'http',
haproxy_listen_bind_param => [], # We don't use a transparent proxy here
Comment from Tim Rozet,
The reason it is not starting on non-VIP control nodes is because the binding for haproxy is not set to transparent. Therefore since the nodes do not have the VIP on their machines, haproxy will not start because it cannot bind to those IPs. Most other services use transparent mode which will allow haproxy to start even when it does not have the referenced bind address. Therefore the behavior is expected here. However, is the behavior correct?
On both Zaqar Websocket and ODL Websocket services we are not using transparent binding with a note from Juan indicating it is done intentionally:
if $zaqar_ws { :haproxy: :endpoint { 'zaqar_ws': virtual_ ip => $public_virtual_ip, zaqar_ws_ vip', $controller_ virtual_ ip), zaqar_ws_ port], zaqar_ws_ node_ips' , $controller_ hosts_real) , zaqar_ws_ node_names' , $controller_ hosts_names_ real), listen_ bind_param => [], # We don't use a transparent proxy here
::tripleo:
public_
internal_ip => hiera('
service_port => $ports[
ip_addresses => hiera('
server_names => hiera('
mode => 'http',
haproxy_