Currently, there is a boolean in the configuration file called use_floating_ips which conflates the logic around the existence of floating ips for instances and the use of floating ips for management by sahara. This logic should be refactored.
The use_floating_ips boolean when set True has the following implications:
When use_floating_ips is False and neutron is used:
As we move toward a world where virtual and baremetal clusters co-exist, we need to modify the logic around floating ips to provide more flexibility. For instance, a baremetal cluster that uses a flat physical network with no floating ips should be able to co-exist in sahara with a VM cluster that uses a virtual network with floating ips (currently this is not possible).
As nova, neutron, and ironic make further advances toward hybrid networking and instance scenarios, sahara needs the flexibility to adapt to new features. The current conflated logic is a roadblock to this flexibility.
Logically the change is very simple, but implementation will require careful analysis and testing since knowledge of floating ips and the use of nova vs neutron networking is spread throughout the code base. This becomes particularly complex in the logic around ssh connections and proxy gateways and in the quota logic.
The proposed logical change goes like this:
None. This logic has been in sahara since the beginning when nova networking was exclusively used and things were simpler; it’s time to refactor.
None, although changes are needed in the validation code. The API itself does not change, but what is semantically allowable does change (ie, whether or not a node group must have a floating ip pool value)
Users will need to be educated on the shifting implications of setting use_floating_ips and the choice they have when configuring node groups.
This change should be transparent to existing instances of sahara. Templates that are functioning should continue to function, and clusters that are running should not be affected. What will change is the ability to control use of floating ips in new clusters.
Uncertain. In the past there were configuration settings for the sahara dashboard that touched on floating ip use. The current configuration parameters should be reviewed to see if this holds any implication for horizon.
Trevor McKay has produced a patch for this which should be fairly complete, but he is unable to finish it. He was in the testing phase when work on this stopped, with fair confidence that the solution works in neutron (but more testing needs to be done in a nova networking environment)
Primary assignee: tellesnobrega
Other contributors: tmckay
Unit tests are sufficient to cover changes to template validation routines and logical flow in sahara (is sahara in a particular case trying to use a floating ip or not?)
Scenario tests should be constructed for both values of use_floating_ips, for both neutron and nova networking configurations, and for node groups with and without floating ip pool values.
The new implications of use_floating_ips should be covered in the documentation on configuration values and set up of nova in the nova networking case.
It should also be noted in discussion of node group templates that floating ip pool values are no longer required or disallowed based on the value of use_floating_ips
As mentioned above, it’s unclear whether anything needs to change in sahara dashboard configuration values. If something does change, then horizon docs should be changed accordingly.