Bug 1409008

Summary: LBAAS setup following Redhat or upstream docs does not work in OSP10
Product: Red Hat OpenStack Reporter: Jeremy <jmelvin>
Component: documentationAssignee: Greg Rakauskas <gregraka>
Status: CLOSED EOL QA Contact: RHOS Documentation Team <rhos-docs>
Severity: high Docs Contact:
Priority: low    
Version: 10.0 (Newton)CC: akaris, amuller, apevec, ccopello, cgoncalves, gregraka, jamsmith, lhh, njohnston, oblaut
Target Milestone: asyncKeywords: Reopened, Triaged, ZStream
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-12-12 15:27:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jeremy 2016-12-28 22:01:47 UTC
Description of problem: Attempting to set up LBAAS following : 
Redhat(https://access.redhat.com/documentation/en/red-hat-openstack-platform/10/single/networking-guide/#sec-lbaas) or upstream( http://docs.openstack.org/newton/networking-guide/config-lbaas.html
) does not work. I had to basically use a combination of both docs to get lbaas working. However the bigger issue seems to be the path to the haproxy device_driver in /etc/neutron/lbaas_agent.ini may have changed. The docs say : device_driver = neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver  However I checked and see it should be device_driver = neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver since I see:


[root@overcloud-controller-1 heat-admin]# grep -r HaproxyNSDriver /usr/lib/python2.7/site-packages/neutron_lbaas/drivers/haproxy/namespace_driver.py
class HaproxyNSDriver(agent_device_driver.AgentDeviceDriver):
        super(HaproxyNSDriver, self).__init__(conf, plugin_rpc)
[root@overcloud-controller-1 heat-admin]# 

Docs should be adjusted to reflect the steps and config options listed below in the additional information section as well as figure out why device_driver path is different.


Version-Release number of selected component (if applicable):
[root@overcloud-controller-1 heat-admin]# rpm -qa |grep lbaas
openstack-neutron-lbaas-9.1.0-1.el7ost.noarch
python-neutron-lbaas-9.1.0-1.el7ost.noarch
[root@overcloud-controller-1 heat-admin]# 


How reproducible:
100%

Steps to Reproduce:
1. Above
2.
3.

Actual results:
no worky

Expected results:
lbaas working

Additional info:

Steps I took to get it going:


/etc/neutron/neutron_lbaas.conf:
[service_providers]
service_provider = LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default

/etc/neutron/neutron.conf
service_plugins = [existing service plugins],neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2


[root@overcloud-controller-1 heat-admin]# systemctl restart neutron-server
[root@overcloud-controller-1 heat-admin]# 



[root@overcloud-controller-1 heat-admin]# neutron-db-manage --subproject neutron-lbaas upgrade head
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
  Running upgrade for neutron-lbaas ...
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
  OK
[root@overcloud-controller-1 heat-admin]# 


[root@overcloud-controller-1 heat-admin]# neutron-lbaasv2-agent \
> --config-file /etc/neutron/neutron.conf \
> --config-file /etc/neutron/lbaas_agent.ini
Guru meditation now registers SIGUSR1 and SIGUSR2 by default for backward compatibility. SIGUSR1 will no longer be registered in a future release, so please use SIGUSR2 to generate reports.
Option "rpc_backend" from group "DEFAULT" is deprecated for removal.  Its value may be silently ignored in the future.
2016-12-28 20:55:18.014 627787 INFO neutron.common.config [-] Logging enabled!
2016-12-28 20:55:18.015 627787 INFO neutron.common.config [-] /bin/neutron-lbaasv2-agent version 9.1.0
2016-12-28 20:55:18.015 627787 DEBUG neutron.common.config [-] command line: /bin/neutron-lbaasv2-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/lbaas_agent.ini setup_logging /usr/lib/python2.7/site-packages/neutron/common/config.py:107
2016-12-28 20:55:18.017 627787 WARNING stevedore.named [req-d694bda9-0590-4b98-827a-c9502a5cbbc4 - - - - -] Could not load neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver
2016-12-28 20:55:18.244 627787 ERROR neutron.common.utils [req-d694bda9-0590-4b98-827a-c9502a5cbbc4 - - - - -] Alias or class name is not set
2016-12-28 20:55:18.245 627787 ERROR neutron_lbaas.drivers.haproxy.namespace_driver [req-d694bda9-0590-4b98-827a-c9502a5cbbc4 - - - - -] Error importing interface driver: None
Error importing loadbalancer device driver: neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver
[root@overcloud-controller-1 heat-admin]# 

/etc/neutron/lbaas_agent.ini 
device_driver = neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
user_group = haproxy


[root@overcloud-controller-1 heat-admin]# systemctl restart neutron-lbaasv2-agent
[root@overcloud-controller-1 heat-admin]# 



[root@overcloud-controller-1 heat-admin]# tail /var/log/neutron/lbaas-agent.log 
2016-12-28 20:59:29.517 646003 INFO neutron.common.config [-] Logging enabled!
2016-12-28 20:59:29.518 646003 INFO neutron.common.config [-] /usr/bin/neutron-lbaasv2-agent version 9.1.0
2016-12-28 20:59:29.518 646003 DEBUG neutron.common.config [-] command line: /usr/bin/neutron-lbaasv2-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /usr/share/neutron/neutron-lbaas-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/lbaas_agent.ini --config-dir /etc/neutron/conf.d/common --config-dir /etc/neutron/conf.d/neutron-lbaasv2-agent --log-file /var/log/neutron/lbaas-agent.log setup_logging /usr/lib/python2.7/site-packages/neutron/common/config.py:107
2016-12-28 20:59:29.519 646003 WARNING stevedore.named [req-b664631c-e51b-467a-90b0-79f8abddf74b - - - - -] Could not load neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver
[root@overcloud-controller-1 heat-admin]# date
Wed Dec 28 20:59:57 UTC 2016
[root@overcloud-controller-1 heat-admin]# systemctl status neutron-lbaasv2-agent
● neutron-lbaasv2-agent.service - OpenStack Neutron Load Balancing as a Service (API v2.x) Agent
   Loaded: loaded (/usr/lib/systemd/system/neutron-lbaasv2-agent.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2016-12-28 20:59:29 UTC; 33s ago
  Process: 646003 ExecStart=/usr/bin/neutron-lbaasv2-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /usr/share/neutron/neutron-lbaas-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/lbaas_agent.ini --config-dir /etc/neutron/conf.d/common --config-dir /etc/neutron/conf.d/neutron-lbaasv2-agent --log-file /var/log/neutron/lbaas-agent.log (code=exited, status=1/FAILURE)
 Main PID: 646003 (code=exited, status=1/FAILURE)



[root@overcloud-controller-1 heat-admin]# grep -r HaproxyNSDriver /usr/lib/python2.7/site-packages/neutron_lbaas/drivers/haproxy/namespace_driver.py
class HaproxyNSDriver(agent_device_driver.AgentDeviceDriver):
        super(HaproxyNSDriver, self).__init__(conf, plugin_rpc)
[root@overcloud-controller-1 heat-admin]# 


###change the path to the class
/etc/neutron/lbaas_agent.ini
device_driver = neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver

[root@overcloud-controller-1 heat-admin]# systemctl restart neutron-lbaasv2-agent
[root@overcloud-controller-1 heat-admin]# systemctl status neutron-lbaasv2-agent
● neutron-lbaasv2-agent.service - OpenStack Neutron Load Balancing as a Service (API v2.x) Agent
   Loaded: loaded (/usr/lib/systemd/system/neutron-lbaasv2-agent.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2016-12-28 21:09:57 UTC; 8s ago
 Main PID: 691821 (neutron-lbaasv2)
   CGroup: /system.slice/neutron-lbaasv2-agent.service
           └─691821 /usr/bin/python2 /usr/bin/neutron-lbaasv2-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /usr/share/neutron/neu...


Dec 28 21:09:57 overcloud-controller-1.localdomain systemd[1]: Started OpenStack Neutron Load Balancing as a Service (API v2.x) Agent.
Dec 28 21:09:57 overcloud-controller-1.localdomain systemd[1]: Starting OpenStack Neutron Load Balancing as a Service (API v2.x) Agent...
Dec 28 21:09:57 overcloud-controller-1.localdomain neutron-lbaasv2-agent[691821]: Guru meditation now registers SIGUSR1 and SIGUSR2 by default for bac...orts.
Dec 28 21:09:58 overcloud-controller-1.localdomain neutron-lbaasv2-agent[691821]: Option "verbose" from group "DEFAULT" is deprecated for removal.  It...ture.
Dec 28 21:09:58 overcloud-controller-1.localdomain neutron-lbaasv2-agent[691821]: Option "rpc_backend" from group "DEFAULT" is deprecated for removal....ture.
Dec 28 21:09:58 overcloud-controller-1.localdomain neutron-lbaasv2-agent[691821]: Option "notification_driver" from group "DEFAULT" is deprecated. Use...ons".
Hint: Some lines were ellipsized, use -l to show in full.
[root@overcloud-controller-1 heat-admin]#

Comment 1 Carlos Goncalves 2019-04-11 12:35:26 UTC
Jemery, checking the documentation page you linked for LBaaS in OSP 10, it looks like the changes you're suggesting are reflected in that page today. I am going ahead and close this BZ but please reopen if you find something still missing or inaccurate. Thank you.

Comment 2 Andreas Karis 2019-06-03 15:03:52 UTC
Hi,

Reopening - I just went through the configuration procedure again and after following our doc, I get:
~~~
2019-06-03 14:59:40.090 1042355 ERROR neutron.common.utils [req-7c41e146-5151-497c-8986-c469ae848c34 - - - - -] Alias or class name is not set
2019-06-03 14:59:40.091 1042355 ERROR neutron_lbaas.drivers.haproxy.namespace_driver [req-7c41e146-5151-497c-8986-c469ae848c34 - - - - -] Error importing interface driver: None
~~~

https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/10/html/networking_guide/sec-lbaas

Our doc lacks the following step from the upstream guide:
~~~
Select the driver that manages virtual interfaces in /etc/neutron/lbaas_agent.ini:

[DEFAULT]
interface_driver = INTERFACE_DRIVER

Replace INTERFACE_DRIVER with the interface driver that the layer-2 agent in your environment uses. For example, openvswitch for Open vSwitch or linuxbridge for Linux bridge.
~~~

Comment 3 Andreas Karis 2019-06-03 15:08:28 UTC
Also, I needed to set:

###change the path to the class
/etc/neutron/lbaas_agent.ini
device_driver = neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver

As well as the device_driver:

/etc/neutron/lbaas_agent.ini 
device_driver = neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
user_group = haproxy

Comment 7 Red Hat Bugzilla 2023-09-14 03:36:45 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days