[openstack-dev] Odp.: Odp.: [neutron][lbaasv2][agent implementation] L7 policy support

Michael Johnson johnsomor at gmail.com
Wed Oct 4 16:36:05 UTC 2017


Hi Mihaela,

The old neutron-lbaas haproxy namespace driver does not have L7
support. Only the Octavia driver and some vendor provider drivers have
L7 support.

Michael


On Tue, Oct 3, 2017 at 11:35 PM, Pawel Suder <pawel.suder at corp.ovh.com> wrote:
> Hello,
>
>
> It seems that HaproxyOnHostPluginDriver from
> https://github.com/openstack/neutron-lbaas/blob/mitaka-eol/neutron_lbaas/drivers/haproxy/plugin_driver.py#L21
> extends AgentDriverBase
> https://github.com/openstack/neutron-lbaas/blob/mitaka-eol/neutron_lbaas/drivers/common/agent_driver_base.py#L301
> where I could not located L7 things.
>
> L7 things might be related to Octavia (only?). What I found is that HAProxy
> (https://www.haproxy.com/doc/aloha/7.0/haproxy/index.html) has L7 things.
>
>
> It seems that in old good times that thing was not taken into the
> consideration.
>
>
> Cheers,
>
> Paweł
>
> ________________________________
> Od: mihaela.balas at orange.com <mihaela.balas at orange.com>
> Wysłane: 3 października 2017 14:45:11
> Do: OpenStack Development Mailing List (not for usage questions)
> Temat: Re: [openstack-dev] Odp.: [neutron][lbaasv2][agent implementation] L7
> policy support
>
>
> Hi,
>
>
>
> I appreciate the help. In neutron-server I have the following service
> providers enabled:
>
>
>
> service_provider =
> LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
>
> service_provider =
> LOADBALANCERV2:Octavia:neutron_lbaas.drivers.octavia.driver.OctaviaDriver
>
>
>
> With Octavia provider L7 policy works fine. With haproxy (agent provider) I
> receive the error below.
>
>
>
> On the haproxy agent I have the following setting (however, the
> neutron-server throws that error and not even sends any request to agent):
>
>
>
> interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
>
> device_driver =
> neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver
>
>
>
> Mihaela
>
>
>
> From: Pawel Suder [mailto:pawel.suder at corp.ovh.com]
> Sent: Tuesday, October 03, 2017 3:10 PM
> To: OpenStack Development Mailing List (not for usage questions)
> Subject: [openstack-dev] Odp.: [neutron][lbaasv2][agent implementation] L7
> policy support
>
>
>
> Hello Mihaela,
>
>
>
> It seems that you are referring to that part of code
> https://github.com/openstack/neutron-lbaas/blob/mitaka-eol/neutron_lbaas/drivers/driver_base.py#L36
>
>
>
> I found that document for Mitaka
> https://docs.openstack.org/mitaka/networking-guide/config-lbaas.html
>
>
>
> It might be related to incorrectly configured driver for LBaaS (or indeed
> not implemented driver for L7 policy for specific driver).
>
>
>
> Questions:
>
>
>
> * What do you have configured in neutron configuration in section
> [service_providers]?
>
> * Which driver do you want to use?
>
>
>
> Example line
>
>
>
> service_provider =
> LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
>
>
>
> Cheers,
>
> Paweł
>
> ________________________________
>
> Od: mihaela.balas at orange.com <mihaela.balas at orange.com>
> Wysłane: 3 października 2017 11:13:34
> Do: OpenStack Development Mailing List (not for usage questions)
> Temat: [openstack-dev] [neutron][lbaasv2][agent implementation] L7 policy
> support
>
>
>
> Hello,
>
>
>
> Does the agent implementation of LBaaSv2 support L7 policies? I am testing
> with Mitaka version and I get “Not Implemented Error”.
>
>
>
> {"asctime": "2017-10-03 07:34:42.764","process": "18","levelname":
> "INFO","name": "neutron_lbaas.services.loadbalancer.plugin", "request_id":
> "req-186bf812-1cdf-496b-a117-711f1e42c6bd", "user_identity": {"user_id":
> "44364a07de754daa9ffeb2911fe3620a", "project_id":
> "a5f15235c0714365b98a50a11ec956e7", "domain_id": "-", "user_domain_id": "-",
> "project_domain_id": "-"},"instance": {},"message":"Calling driver operation
> NotImplementedManager.create"}
>
> {"asctime": "2017-10-03 07:34:42.765","process": "18","levelname":
> "ERROR","name": "neutron_lbaas.services.loadbalancer.plugin", "request_id":
> "req-186bf812-1cdf-496b-a117-711f1e42c6bd", "user_identity": {"user_id":
> "44364a07de754daa9ffeb2911fe3620a", "project_id":
> "a5f15235c0714365b98a50a11ec956e7", "domain_id": "-", "user_domain_id": "-",
> "project_domain_id": "-"},"instance": {},"message":"There was an error in
> the driver"}
>
> 2017-10-03 07:34:42.765 18 TRACE neutron_lbaas.services.loadbalancer.plugin
>>>>>>Traceback (most recent call last):
>
> 2017-10-03 07:34:42.765 18 TRACE neutron_lbaas.services.loadbalancer.plugin
>>>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/neutron_lbaas/services/loadbalancer/plugin.py",
> line 486, in _call_driver_operation
>
> 2017-10-03 07:34:42.765 18 TRACE neutron_lbaas.services.loadbalancer.plugin
>>>>>>    driver_method(context, db_entity)
>
> 2017-10-03 07:34:42.765 18 TRACE neutron_lbaas.services.loadbalancer.plugin
>>>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/neutron_lbaas/drivers/driver_base.py",
> line 36, in create
>
> 2017-10-03 07:34:42.765 18 TRACE neutron_lbaas.services.loadbalancer.plugin
>>>>>>    raise NotImplementedError()
>
> 2017-10-03 07:34:42.765 18 TRACE neutron_lbaas.services.loadbalancer.plugin
>>>>>>NotImplementedError
>
> 2017-10-03 07:34:42.765 18 TRACE neutron_lbaas.services.loadbalancer.plugin
>>>>>>
>
> {"asctime": "2017-10-03 07:34:42.800","process": "18","levelname":
> "ERROR","name": "neutron.api.v2.resource", "request_id":
> "req-186bf812-1cdf-496b-a117-711f1e42c6bd", "user_identity": {"user_id":
> "44364a07de754daa9ffeb2911fe3620a", "project_id":
> "a5f15235c0714365b98a50a11ec956e7", "domain_id": "-", "user_domain_id": "-",
> "project_domain_id": "-"},"instance": {},"message":"create failed"}
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>Traceback
> (most recent call last):
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/neutron/api/v2/resource.py", line
> 84, in resource
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>    result =
> method(request=request, **args)
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/neutron/api/v2/base.py", line 410,
> in create
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>    return
> self._create(request, body, **kwargs)
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/oslo_db/api.py", line 148, in
> wrapper
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>
> ectxt.value = e.inner_exc
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220,
> in __exit__
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>
> self.force_reraise()
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196,
> in force_reraise
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>
> six.reraise(self.type_, self.value, self.tb)
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/oslo_db/api.py", line 138, in
> wrapper
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>    return
> f(*args, **kwargs)
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/neutron/api/v2/base.py", line 521,
> in _create
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>    obj =
> do_create(body)
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/neutron/api/v2/base.py", line 503,
> in do_create
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>
> request.context, reservation.reservation_id)
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220,
> in __exit__
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>
> self.force_reraise()
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196,
> in force_reraise
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>
> six.reraise(self.type_, self.value, self.tb)
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/neutron/api/v2/base.py", line 496,
> in do_create
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>    return
> obj_creator(request.context, **kwargs)
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/neutron_lbaas/services/loadbalancer/plugin.py",
> line 1086, in create_l7policy
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>
> l7policy_db)
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>  File
> "/opt/neutron/lib/python2.7/site-packages/neutron_lbaas/services/loadbalancer/plugin.py",
> line 494, in _call_driver_operation
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>    raise
> loadbalancerv2.DriverError()
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>DriverError:
> An error happened in the driver
>
> 2017-10-03 07:34:42.800 18 TRACE neutron.api.v2.resource  >>>>>
>
>
>
> Thanks you,
>
> Mihaela Balas
>
> _________________________________________________________________________________________________________________________
>
>
>
> Ce message et ses pieces jointes peuvent contenir des informations
> confidentielles ou privilegiees et ne doivent donc
>
> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu
> ce message par erreur, veuillez le signaler
>
> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages
> electroniques etant susceptibles d'alteration,
>
> Orange decline toute responsabilite si ce message a ete altere, deforme ou
> falsifie. Merci.
>
>
>
> This message and its attachments may contain confidential or privileged
> information that may be protected by law;
>
> they should not be distributed, used or copied without authorisation.
>
> If you have received this email in error, please notify the sender and
> delete this message and its attachments.
>
> As emails may be altered, Orange is not liable for messages that have been
> modified, changed or falsified.
>
> Thank you.
>
> _________________________________________________________________________________________________________________________
>
> Ce message et ses pieces jointes peuvent contenir des informations
> confidentielles ou privilegiees et ne doivent donc
> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu
> ce message par erreur, veuillez le signaler
> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages
> electroniques etant susceptibles d'alteration,
> Orange decline toute responsabilite si ce message a ete altere, deforme ou
> falsifie. Merci.
>
> This message and its attachments may contain confidential or privileged
> information that may be protected by law;
> they should not be distributed, used or copied without authorisation.
> If you have received this email in error, please notify the sender and
> delete this message and its attachments.
> As emails may be altered, Orange is not liable for messages that have been
> modified, changed or falsified.
> Thank you.
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>



More information about the OpenStack-dev mailing list