Merge "Add LBaaS v2 support (OSA)"

This commit is contained in:
Jenkins 2016-03-16 13:19:46 +00:00 committed by Gerrit Code Review
commit beb9088017
3 changed files with 76 additions and 15 deletions

View File

@ -10,13 +10,29 @@ case is when you want to use multiple instances to serve web pages and want to
meet high performance or availability goals.
OpenStack-Ansible currently provides the OpenStack Neutron LBaaS service using
HAProxy as the load balancer.
HAProxy as the load balancer. LBaaS has two implementations available: v1 and
v2.
The following procedure describes how to modify the
``/etc/openstack_deploy/user_variables.yml`` file to enable LBaaS.
Both implementations use agents that manage `HAProxy`_ daemons. However, LBaaS
v1 has a limitation of one port per load balancer. LBaaS v2 allows for multiple
ports (called *listeners*) per load balancer.
#. Override the default list of Neutron plugins used in order to include
``neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPlugin``:
.. note::
Horizon panels for LBaaS v2 are not yet available.
.. _HAProxy: http://www.haproxy.org/
Deploying LBaaS v1
~~~~~~~~~~~~~~~~~~
.. note::
LBaaS v1 was deprecated during the Liberty release and is not recommended
for new deployments.
#. Start by adding the LBaaS v1 plugin to the ``neutron_plugin_base`` variable
within ``/etc/openstack_deploy/user_variables.yml``.
.. code-block:: yaml
@ -25,26 +41,60 @@ The following procedure describes how to modify the
- neutron.services.metering.metering_plugin.MeteringPlugin
- neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPlugin
#. Execute the Neutron install playbook in order to update the configuration
of the Neutron Agents:
Ensure that ``neutron_plugin_base`` includes all of the plugins that you
want to deploy with Neutron **in addition** to the LBaaS plugin.
.. code-block:: shell-session
#. Run the Neutron and Horizon playbooks to deploy the LBaaS v1 agent and enable
the LBaaS panels in Horizon.
.. code-block:: console
# cd /opt/openstack-ansible/playbooks
# openstack-ansible os-neutron-install.yml
# openstack-ansible os-horizon-install.yml
Deploying LBaaS v2
~~~~~~~~~~~~~~~~~~
#. Start by adding the LBaaS v2 plugin to the ``neutron_plugin_base`` variable
within ``/etc/openstack_deploy/user_variables.yml``.
.. code-block:: yaml
neutron_plugin_base:
- neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
- neutron.services.metering.metering_plugin.MeteringPlugin
- neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2
Ensure that ``neutron_plugin_base`` includes all of the plugins that you
want to deploy with Neutron **in addition** to the LBaaS plugin.
#. Run the Neutron playbook to deploy the LBaaS v2 agent:
.. code-block:: console
# cd /opt/openstack-ansible/playbooks
# openstack-ansible os-neutron-install.yml
#. Execute the Horizon install playbook in order to update the Horizon
configuration to show the LBaaS panels:
.. code-block:: shell-session
# cd /opt/openstack-ansible/playbooks
# openstack-ansible os-horizon-install.yml
Special notes about LBaaS
~~~~~~~~~~~~~~~~~~~~~~~~~
The LBaaS default configuration options may be changed through the
`conf override`_ mechanism using the ``neutron_lbaas_agent_ini_overrides``
dict.
LBaaS v1 and v2 agents cannot run at the same time. If a deployer switches from
LBaaS v1 to v2, the v2 agent will be the only agent running. The LBaaS v1 agent
will be stopped along with any load balancers provisioned under the v1 agent.
The same is true if a deployer chooses to move from LBaaS v2 to v1.
Load balancers are not migrated between LBaaS v1 and v2 automatically. Each
implementation has different code paths and database tables. Deployers will need
to manually delete load balancers, pools, and members before switching LBaaS
versions. Those objects will need to be re-created afterwards.
.. _conf override: http://docs.openstack.org/developer/openstack-ansible/install-guide/configure-openstack.html
--------------

View File

@ -226,6 +226,7 @@ keystone_service_in_ldap: "{{ service_ldap_backend_enabled }}"
## Horizon
horizon_service_region: "{{ service_region }}"
horizon_enable_cinder_backup: "{% if cinder_service_backup_program_enabled is defined and cinder_service_backup_program_enabled | bool %}True{% else %}False{% endif %}"
# LBaaS panels are working only for LBaaS v1 at this time.
horizon_enable_neutron_lbaas: "{% if neutron_plugin_base is defined and 'neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPlugin' in neutron_plugin_base %}True{% else %}False{% endif %}"
horizon_rabbitmq_userid: horizon
horizon_rabbitmq_vhost: /horizon

View File

@ -0,0 +1,10 @@
---
features:
- LBaaS v2 is available for deployment in addition to LBaaS v1. Both versions
are mutually exclusive and cannot be running at the the same time.
Deployers will need to re-create any existing load balancers if they switch
between LBaaS versions. Switching to LBaaS v2 will stop any existing LBaaS
v1 load balancers.
upgrade:
- Existing LBaaS v1 load balancers and agents will not be altered by the
new OpenStack-Ansible release.