<div dir="ltr"><div>Hi,<br><br></div><div></div><div><div class="" id="magicdomid3597"></div><div class="" id="magicdomid4120"><span class="">We need to come up with some solution for a problem with VIP generation (auto allocation), see the original bug [0].</span></div><div class="" id="magicdomid3599"><span class=""><br>The main problem here is: how do we know what exactly IPs to auto allocate for VIPs when needed roles are in different nodegroups (i.e. in different IP networks)?</span></div><div class="" id="magicdomid3600"><span class="">For example 'public_vip' for 'controller' roles.</span></div><div class="" id="magicdomid3601"><br></div><div class="" id="magicdomid3602"><span class="">Currently we have two possible solutions.</span></div><div class="" id="magicdomid3603"><br></div><div class="" id="magicdomid3983"><span class="">1) Fail early in pre-deployment check (when user hit "Deploy changes") with error about inability to auto allocate VIP for nodes in different nodegroups (racks). So in order to run deploy user has to put all roles with the same VIPs in the same nodegroups (for example: all controllers in the same nodegroup).<br><br></span></div><div class="" id="magicdomid3605"><span class="">Pros:</span></div><div class="" id="magicdomid3606"><ul class=""><li><span class="">VIPs are always correct, they are from the same network as nodes that are going to use them, thus user simply can't configure invalid VIPs for cluster and break deployment</span></li></ul></div><div class="" id="magicdomid3607"><span class="">Cons:</span></div><div class="" id="magicdomid4036"><ul class=""><li><span class="">hardcoded limitation that is impossible to bypass, does not allow to spread roles with VIPs across multiple racks even if it's properly handled by Fuel Plugin, i.e. made so by design</span></li></ul></div><div class="" id="magicdomid3611"><br></div><div class="" id="magicdomid4107"><span class="">2) Allow to move roles that use VIPs into different nodegroups, auto allocate VIPs from "default" nodegroup and send an alert/notification to user that such configuration may not work and it's up to user how to proceed (either fix config or deploy at his/her own risk).<br><br></span></div><div class="" id="magicdomid3613"><span class="">Pros:</span></div><div class="" id="magicdomid4157"><ul class=""><li><span class="">relatively simple solution</span></li></ul></div><div class="" id="magicdomid4161"><ul class=""><li><span class="">impossible to break VIP serialization because in the worst case we allocate VIPs from default nodegroup</span></li></ul></div><div class="" id="magicdomid3616"><span class="">Cons:</span></div><div class="" id="magicdomid4087"><ul class=""><li><span class="">user can deploy invalid environment that will fail during deployment or will not operate properly (for example when public_vip is not able to migrate to controller from different rack)</span></li></ul></div><div class="" id="magicdomid4104"><ul class=""><li><span class="">which nodegroup to choose to allocate VIPs? default nodegroup? random pick? in case of random pick troubleshooting may become problematic</span></li></ul></div><div class="" id="magicdomid4089"><ul class=""><li><span class="">waste of IPs - IP address from the network range will be implicitly allocated and marked as used, even it's not used by deployment (plugin uses own ones)</span></li></ul></div><div class="" id="magicdomid3699"><br></div><div class="" id="magicdomid3700"><span class=""><b>Please also note that this solution is needed for 8.0 only.</b></span><span class=""> In 9.0 we have new feature for manual VIPs allocation [1]. So in 9.0, if we can't auto allocate VIPs for some cluster configuration, we can simply ask user to manually set those problem VIPs or move roles to the same network node group (rack).<br></span></div><div class="" id="magicdomid3701"><br></div><div class="" id="magicdomid3701">So, guys, please feel free to share your thoughts on this matter. Any input is greatly appreciated.<br></div><div class="" id="magicdomid3701"><br></div><div class="" id="magicdomid3701">Regards,<br></div><div class="" id="magicdomid3701">Alex<br></div><div class="" id="magicdomid3701"><br></div><div class="" id="magicdomid3702"><span class="">[0] </span><span class=""><a href="https://bugs.launchpad.net/fuel/+bug/1524320">https://bugs.launchpad.net/fuel/+bug/1524320</a></span></div><div class="" id="magicdomid3703"><span class="">[1] </span><span class=""><a href="https://blueprints.launchpad.net/fuel/+spec/allow-any-vip">https://blueprints.launchpad.net/fuel/+spec/allow-any-vip</a></span></div><div class="" id="magicdomid1616"><br></div></div></div>