The 'ipaddresses' value of rabbitmq haproxy configuration is wrong and breaks deployment:
https://github.com/openstack/puppet-tripleo/blob/stable/newton/manifests/haproxy.pp#L945
Line 945 should be:
ipaddresses => hiera('rabbitmq_node_ips', $controller_hosts_real),
Note that all other services configured in haproxy.pp are using "<service>_node_ips".
In depth:
If tripleo::haproxy::rabbitmq variable is set to 'true', the manifest will try to configure rabbitmq in haproxy.conf. However, deployment will break with:
Execution of '/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg20170313-30724-1g1twnf -c' returned 1: [ALERT] 071/094401 (35003) : parsing [/etc/haproxy/haproxy.cfg20170313-30724-1g1twnf:218] : 'server overcloud-controller-0.internalapi.localdomain' : invalid address: 'internal_api' in 'internal_api:5672'
Because 'ipaddresses' is set to 'rabbitmq_network' it will get 'internal_api' configured which is a mistake. As mentioned above, 'rabbitmq_network' has to be changed to 'rabbitmq_node_ips'
Note that this was never really worked on because rabbitmq does not use haproxy