[openstack-dev] [Neutron] auto configration of local_ip

Jay Pipes jaypipes at gmail.com
Thu Jan 16 15:49:17 UTC 2014


On Thu, 2014-01-16 at 17:41 +0900, NOTSU Arata wrote:
> Hello,
> 
> I'm trying to add a new configuration option for Neutron OVS agent. Although I've submitted a patch and it is being reviewed [1], I'm posting to this mailing list seeking opinion from a wider range.
> 
> At present, when you deploy an environment using Neutron + OVS + GRE/VXLAN, you have to set local_ip for tunnelling in neutron agent config (typically ovs_neutron_plugin.ini). As each host has different local_ip, preparing and maintaining the config files is a cumbersome work.
> 
> So, I would like to introduce automatic configuration of local_ip in Neutron. Although such a management should be done by some management system, Neutron having this feature cloud be also helpful to the deployment system. It would reduce the need for the systems to implement such a feature on their own.
> 
> Anyway, with this feature, instead of setting an actual IP address to local_ip, you set some options (criteria) for choosing an IP address suitable for local_ip among IP addresses assigned to the host. At runtime, OVS agent will choose an IP address according to the criteria. You will get the same effect as you set local_ip=<the IP address> by hand.
> 
> The question is, what criteria is appropriate for the purpose. The criteria being mentioned so far in the review are:
> 
> 1. assigned to the interface attached to default gateway
> 2. being in the specified network (CIDR)
> 3. assigned to the specified interface
>    (1 can be considered a special case of 3)
> 
> Any comment would be appreciated.

Hi Arata,

I definitely understand the thoughts behind your patch. However, I
believe this falls under the realm of configuration management tools
(Chef/Puppet/Ansible/Salt/etc).

As an example of how the OpenStack Chef cookbooks deal with this
particular problem, we inject a local_ip variable into the
ovs_neutron_plugin.ini.erb template [1]. This local_ip variable is
assigned in the common.rb recipe [2]. The deployer can either manually
set the local_ip to an address by setting the node's attribute directly,
or the deployer can have the local_ip address determined based on a
named network interface. See the code at [2] for this switching
behavior.

In summary, I believe it's best left to configuration management systems
to do this type of thing (configuration of many nodes in a structured
fashion), instead of having Neutron do this itself.

Best,
-jay

[1]
https://github.com/stackforge/cookbook-openstack-network/blob/master/templates/default/plugins/openvswitch/ovs_neutron_plugin.ini.erb#L111
[2]
https://github.com/stackforge/cookbook-openstack-network/blob/master/recipes/common.rb#L125




More information about the OpenStack-dev mailing list