<div dir="ltr"><div><div>Adding haproxy (or keepalived with lvs for load balancing) will require binding haproxy and openstack services on different sockets.</div><div>Afaik there is 3 approaches that tripleo could go with.</div>

<div><br></div><div>Consider configuration with 2 controllers:</div><div><br></div><div>haproxy:</div><div>    nodes:</div><div>        -   name: controller0</div><div>            ip: 192.0.2.20</div><div>        -   name: controller1</div>

<div>            ip: 192.0.2.21</div><div><br></div><div>1. Binding haproxy on virtual ip and standard ports</div><div><br></div><div>haproxy:</div><div>    services:</div><div>        -   name: horizon</div><div>            proxy_ip: 192.0.2.22 (virtual ip)</div>

<div>            port: 80</div><div>            proxy_port: 80</div><div>        -   name: neutron</div><div>            proxy_ip: 192.0.2.22 (virtual ip)</div><div>            proxy_port: 9696</div><div>            port: 9696</div>

<div><br></div><div>Pros:</div><div>- No additional modifications in elements is required</div><div>HA-Proxy version 1.4.24 2013/06/17<br></div><div>What was the reason this approach was dropped?</div><div><br></div><div>
2. Haproxy listening on standard ports, services on non-standard</div>
<div><br></div><div>haproxy:</div><div>    services:</div><div>        -   name: horizon</div><div>            proxy_ip: 192.0.2.22 (virtual ip)</div><div>            port: 8080</div><div>            proxy_port: 80</div>
<div>
        -   name: neutron</div><div>            proxy_ip: 192.0.2.22 (virtual ip)</div><div>            proxy_port: 9696</div><div>            port: 9797</div><div><br></div><div>Pros:</div><div>- No changes will be required to init-keystone part of workflow</div>

<div>- Proxied services will be accessible on accustomed ports</div><div>- No changes to configs where services ports need to be hardcoded, for example in nova.conf <a href="https://review.openstack.org/#/c/92550/" target="_blank">https://review.openstack.org/#/c/92550/</a></div>

<div><br></div><div>Cons:</div><div>- Config files should be changed to add possibility of ports configuration</div><div><br></div><div>3. haproxy on non-standard ports, with services on standard</div><div><br></div><div>

haproxy:</div><div>    services:</div><div>        -   name: horizon</div><div>            proxy_ip: 192.0.2.22 (virtual ip)</div><div>            port: 8080</div><div>            proxy_port: 80</div><div>        -   name: neutron</div>

<div>            proxy_ip: 192.0.2.22 (virtual ip)</div><div>            proxy_port: 9797</div><div>            port: 9696</div><div><br></div><div>Notice that i changed only port for neutron, main endpoint for horizon should listen on default http or https ports.</div>

<div><br></div><div>Basicly it is opposite to 2 approach. I would prefer to go with 2, cause it requires only minor refactoring.</div><div><br></div><div>Thoughts?</div></div><div><br></div></div>