<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi Eugene,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Not sure if I’m missing something obvious, so apologies if I’m. Couldn’t we use the conf file to specify a list of HAProxy devices that are unallocated to any tenant (an HAProxy pool of devices). When a tenant creates a pool, and that tenant doesn’t have an allocated device, at this time, we pick a device from the pool (which from now on becomes dedicated to that tenant) and configure it (the HAProxy machine or VM) to be on the pool’s network?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Thanks<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Youcef<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Eugene Nikanorov [mailto:enikanorov@mirantis.com] <br><b>Sent:</b> Friday, January 25, 2013 12:29 PM<br><b>To:</b> OpenStack Development Mailing List<br><b>Subject:</b> [openstack-dev] [Quantum][LBaaS] Default insertion mode for balancer device<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hi folks,<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Currently we're working on integrating together parts of LBaaS which will allow the whole service to work. <o:p></o:p></p></div><div><p class=MsoNormal>As you know, the only driver that is under development now is HAProxy driver.<o:p></o:p></p></div><div><p class=MsoNormal>Also, It seems to be the only type of balancer going into grizzly.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>We faced a certain problem with that: it seems that the most viable use case for HAProxy loadbalancer is private loadbalancer which is brought up by a tenant in a private network (E.g. balancer is in the same L2 domain with the pool members). <o:p></o:p></p></div><div><p class=MsoNormal>Then it is configured via LBaaS service and then tenant may assign floating IP to the balancer device making possible to access its VMs from internet through the balancer.<o:p></o:p></p></div><div><p class=MsoNormal>However it became obvious that this use case is incompatible with our simplified device management based on configuration file.<o:p></o:p></p></div><div><p class=MsoNormal>Configuration file implies that it is edited by admin and modification requires quantum restart. E.g. tenant can't add it's private device, etc.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>If we go with conf-based device management, defining HAProxy to be shared device, we will need some additional configuration of machine with HAProxy to have connectivity with certain tenant network, possibly having OVS on it, etc. <o:p></o:p></p></div><div><p class=MsoNormal>Also, pool members from different tenants having subnets with the same IP ranges are indistinguishable from HAProxy conf-file perspective.<o:p></o:p></p></div><div><p class=MsoNormal>Solving any of mentioned problems with shared HAProxy seems to take some time to implement, test and review and obviously that will miss grizzly.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>So currently we're thinking again about having device management as a plugin with it's extension, to focus "private devices" use case.<o:p></o:p></p></div><div><p class=MsoNormal>We have already written the code a while ago, but then went with simpler conf-based approach. <o:p></o:p></p></div><div><p class=MsoNormal>I'd estimate we could get device management plugin code on gerrit in a week from now, which will give ~2 weeks of time for review plus a week till g-3<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>We'd like to hear your opinion:<o:p></o:p></p></div><div><p class=MsoNormal>1) Is the mentioned use case of private HAProxy the one we should focus on for G-3? <o:p></o:p></p></div><div><p class=MsoNormal>If not, then please describe alternatives.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I'd like to emphasize that this use case goes inline with our future plans to make automatic provisioning of private tenant HAProxies via Nova.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>2) Do you think it's ok to go further with dev management plugin? We need it to provide tenants ability to add their private devices.<o:p></o:p></p></div><div><p class=MsoNormal>If you feel that we don't have enough time for that, please advise alternative.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Thanks,<o:p></o:p></p></div><p class=MsoNormal>Eugene.<o:p></o:p></p></div></body></html>