Manuals incorrectly suggest to set OVS agent via ml2_conf.ini

Bug #1375746 reported by Ihar Hrachyshka
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
openstack-manuals
Opinion
Undecided
Matt Kassawara

Bug Description

It was found while working on Red Hat bug: https://bugzilla.redhat.com/show_bug.cgi?id=1087647

As per [1], OVS agent should not be set via ml2_conf.ini since ML2 is specific to neutron-server and may be non-existent on networker/compute nodes. So the proper setup for OVS (or any other) agent is to explicitly read e.g. ovs_neutron_plugin.ini or linuxbridge_neutron_plugin.ini that will contain plugin specific settings (VLANs, ...) and not rely on ml2_conf.ini file being populated with non-ML2 settings. ml2_conf.ini (which is referred by plugin.ini symlink) should be used by neutron-server only.

But the official upstream documentation [2]:
- suggests to set up OVS agent via ml2_conf.ini;
- claims that there is a bug in Red Hat packaging that makes OVS agent to read ovs_neutron_plugin.ini and not plugin.ini (the bug referred is probably the one that I've mentioned above). It's not a bug but a proper behaviour, and instead of suggesting to users to create the symlink to ml2_conf.ini, we should set OVS agent via ovs_neutron_plugin.ini.

There is also a puppet-neutron review in progress [3] to adopt to the behaviour that we see as correct.

[1]: http://www.gossamer-threads.com/lists/openstack/operators/39745
[2]: http://docs.openstack.org/icehouse/install-guide/install/yum/content/neutron-ml2-network-node.html
[3]: https://review.openstack.org/#/c/106144/7

Revision history for this message
Matt Kassawara (ionosphere80) wrote :

Shouldn't the agent configuration file names include "agent" instead of "plugin" since ML2 replaces these plug-ins?

Changed in openstack-manuals:
assignee: nobody → Matt Kassawara (ionosphere80)
Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

Matt,

my understanding is that any file names are a matter of consensus. In that particular case, those names were used before for monolithic plugins, and so maybe they are better left intact to avoid backwards incompatibilities. That said, yes, it seems that _agent file names would be a better fit here.

Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

Please also consult with Neutron developers before making the change since I may be wrong on that (and will be happy to get feedback on Red Hat approach towards config files).

Revision history for this message
Edgar Magana (emagana) wrote :

As a Neutron core developer, I would like to mention that all plugins should have their respective config file, regardless of the driver being used in the back-end. For instance, ML2 should use the ml2_conf.ini even that the driver being used is the OVS one.
In Juno OVS and LB monolithic plugins will be removed from the Neutron tree, which means any references to the old ovs_neutron_plugin.ini and lb_neutron_plugin.ini respectively should be removed form documentation.

Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

@Edgar, do you mean that we should set OVS specific configuration for OVS agent in ml2_conf.ini? Or should we move those configuration options to some other file (neither ovs_neutron_plugin.ini nor ml2_conf.ini)?

Revision history for this message
Edgar Magana (emagana) wrote :

@Ihar There should be only configuration file for the ML2 plugin. Actually, for any plugin.
Regardless, of the "driver" being used only this config file should be used.
So, the old ovs_neutron_plugin.ini should be deprecated. Any driver-specific (i.e. OVS, LB should be included in the ml2_conf.ini file)

Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

My understanding is that there is no need for ml2_conf.ini on compute nodes running OVS agent. So in this case, there is no ml2_conf.ini file. Also, we ship ovs_neutron_plugin.ini files thru setup.cfg. This does not sound like something deprecated.

Revision history for this message
Matt Kassawara (ionosphere80) wrote :

Compute nodes need ml2_conf.ini because they use the ML2 plug-in.

Changed in openstack-manuals:
status: New → Opinion
Revision history for this message
Nishant Kumar (nishant-kumar) wrote :

I also faced this problem and I'm glad to see that this bug is being tracked!

I am re-stating the issue (even at the risk of being repetitive)

Openstack icehouse documentation (http://docs.openstack.org/icehouse/install-guide/install/yum/content/neutron-ml2-network-node.html) asks the users to do following on network node:

"""
Due to a packaging bug, the Open vSwitch agent initialization script explicitly looks for the Open vSwitch plug-in configuration file rather than a symbolic link /etc/neutron/plugin.ini pointing to the ML2 plug-in configuration file. Run the following commands to resolve this issue:

# cp /etc/init.d/neutron-openvswitch-agent /etc/init.d/neutron-openvswitch-agent.orig
# sed -i 's,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g' /etc/init.d/neutron-openvswitch-agent
"""

But, this is not required (at least in icehouse) as it causes the neutron-openvswitch-agent to not load the correct config file (/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini). Also, it looks like someone has wrongly fixed it in the icehouse repository. So now, the neutron-openvswitch-agent service script always points to the wrong config file on Linux.

I lost 2 weeks due to this bug and could eventually debug by going through 'neutron/plugins/openvswitch/agent/ovs_neutron_agent.py' to see that it was not reading config values from '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini'

Revision history for this message
Nishant Kumar (nishant-kumar) wrote :

"Also, it looks like someone has wrongly fixed it in the icehouse repository. So now, the neutron-openvswitch-agent service script always points to the wrong config file on Linux."

I verified again - the above is not true.

So, the only fix required here is to correct the manual by removing the portion that asks to edit /etc/init.d/neutron-openvswitch-agent

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.