Bug 1409008 - LBAAS setup following Redhat or upstream docs does not work in OSP10
Summary: LBAAS setup following Redhat or upstream docs does not work in OSP10
Keywords:
Status: CLOSED EOL
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: documentation
Version: 10.0 (Newton)
Hardware: Unspecified
OS: Unspecified
low
high
Target Milestone: async
: 10.0 (Newton)
Assignee: Greg Rakauskas
QA Contact: RHOS Documentation Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-12-28 22:01 UTC by Jeremy
Modified: 2023-09-14 03:36 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-12-12 15:27:50 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

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


Note You need to log in before you can comment on or make changes to this bug.