Cloud Docs Home > F5 Agent for OpenStack Neutron Index

F5 Agent for OpenStack Neutron

Travis-CI Build Status

version 9.5.0

Release Notes

The F5 Agent for OpenStack Neutron (f5-openstack-agent) is an OpenStack Neutron plugin agent. It works in conjunction with the F5 Driver for OpenStack LBaaS to manage F5 BIG-IP Local Traffic Manager (LTM) services via the OpenStack Neutron API.

See also

For more information about how the F5 agent interacts with the Neutron API and BIG-IP devices, see Architecture.

Guides

See the F5 Integration for OpenStack user documentation.

Installation

Follow the instructions for your distribution to install the F5 Agent for OpenStack Neutron on your Neutron controller.

Tip

You can use the f5-openstack-ansible project to deploy the F5 agent, F5 Driver for OpenStack LBaaS, and all project dependencies. See Deploy OpenStack Agent and Driver with Ansible for more information.

Debian

  1. Download f5-openstack-agent and its dependencies (f5-icontrol-rest-python and f5-common-python).

  2. Install all three (3) packages.

    curl -L -O https://github.com/F5Networks/f5-openstack-agent/releases/download/v9.5.0/python-f5-openstack-agent_9.5.0-1_1404_all.deb
    curl -L -O https://github.com/F5Networks/f5-common-python/releases/download/v2.3.3/python-f5-sdk_2.3.3-1_1404_all.deb
    curl -L -O https://github.com/F5Networks/f5-icontrol-rest-python/releases/download/v1.3.0/python-f5-icontrol-rest_1.3.0-1_1404_all.deb
    dpkg –i python-f5-icontrol-rest_1.3.0-1_1404_all.deb
    dpkg –i python-f5-sdk_2.3.3-1_1404_all.deb
    dpkg –i python-f5-openstack-agent_9.5.0-1_1404_all.deb
    

Pip

Install the f5-openstack-agent release package from GitHub.

pip install git+https://github.com/F5Networks/f5-openstack-agent@v9.5.0

Tip

Use @<branch-name> to install from HEAD on a specific branch.

For example:

pip install git+https://github.com/F5Networks/f5-openstack-agent@mitaka

RPM

  1. Download f5-openstack-agent and its dependencies (f5-icontrol-rest-python and f5-common-python).

  2. Install all three (3) packages.

    curl -L -O https://github.com/F5Networks/f5-common-python/releases/download/v2.3.3/f5-sdk-2.3.3-1.el7.noarch.rpm
    curl -L -O https://github.com/F5Networks/f5-icontrol-rest-python/releases/download/v1.3.0/f5-icontrol-rest-1.3.0-1.el7.noarch.rpm
    curl -L -O https://github.com/F5Networks/f5-openstack-agent/releases/download/v9.5.0/f5-openstack-agent-9.5.0-1.el7.noarch.rpm
    rpm -ivh f5-icontrol-rest-1.3.0-1.el7.noarch.rpm f5-sdk-2.3.3-1.el7.noarch.rpm f5-openstack-agent-9.5.0-1.el7.noarch.rpm
    

Architecture

The F5 Driver for OpenStack LBaaS assigns LBaaS tasks from the Neutron RPC Messaging queue to the F5 Agent for OpenStack Neutron. The F5 agent translates the Neutron LBaaS API calls to iControl REST API calls and configures the requested objects on the BIG-IP device(s) identified in the F5 Agent Configuration File.

When the F5 agent and F5 driver run on your OpenStack Neutron Controller, you can use the native OpenStack CLI commands to manage BIG-IP LTM objects. [1] The table below shows the corresponding iControl endpoint and BIG-IP object for each neutron lbaas-* create command.

OpenStack Neutron to F5 iControl REST/BIG-IP command mapping
Command URI Configurations Applied
neutron lbaas-loadbalancer-create https://<icontrol_endpoint>:443/mgmt/tm/sys/folder/~Project_<os_tenant_id> Creates new BIG-IP partition; name uses the OpenStack uuid and tenant ID
neutron lbaas-listener-create https://<icontrol_endpoint>:443/mgmt/tm/ltm/virtual/ Creates new BIG-IP virtual server in the tenant’s partition
neutron lbaas-pool-create https://<icontrol_endpoint>:443/mgmt/tm/ltm/pool/ Creates new pool on the virtual server
neutron lbaas-member-create https://<icontrol_endpoint>:443/mgmt/tm/ltm/pool/~Project_<os_tenant_id>~pool1/members/ Creates new pool member on the virtual server
neutron lbaas-healthmonitor-create https://<icontrol_endpoint>:443/mgmt/tm/ltm/monitor/http/ Creates new health monitor for the pool

Modes of Operation

See also

See F5 Agent modes for detailed information regarding each of the Agent’s modes of operation and example use cases.

Configure the F5 Agent

See also

View the F5 Agent Configuration parameters for detailed explanations of the available options. The settings you apply in the configuration file should reflect your existing network architecture and BIG-IP system configurations.

  1. Use your text editor of choice to edit the F5 Agent Configuration File as appropriate for your environment.

    vim /etc/neutron/services/f5/f5-openstack-agent.ini
    
  1. Start the F5 agent.

    CENTOS
    systemctl enable f5-openstack-agent
    systemctl start f5-openstack-agent
    
    UBUNTU
    service f5-oslbaasv2-agent start
    service f5-oslbaasv2-agent stop
    

Configuration File Examples

The example configuration files provided here can help guide you in setting up the F5 agent.

Global routed mode

L2-adjacent mode

Unsupported Features

The items shown in the table below are not supported in the current release.

Unsupported Features in 9.5.0
Feature Project
Distributed Virtual Router (DVR) Neutron
Role Based Access Control (RBAC) Neutron
Agent High Availability (HA) [2] F5 OpenStack

Upgrade

Before you can upgrade to/install a different version of f5-openstack-agent, you need to uninstall your current version. Perform the steps below on every server running F5 agent.

Danger

If you use pip install --upgrade to upgrade the F5 LBaaSv2 agent, packages that other OpenStack components use might be negatively impacted. F5 does not recommend using pip install --upgrade to upgrade the f5-openstack-agent package.

  1. Copy the F5 agent configuration file to a different directory (for example, ~/f5-upgrade-temp).

    Warning

    Your configuration file (/etc/neutron/services/f5/f5-openstack-agent.ini gets overwritten when you install a new package. If you don’t save a copy elsewhere, you will lose your config settings.

    $ cp /etc/neutron/services/f5/f5-openstack-agent.ini ~/f5-upgrade-temp
    
  2. Move or rename the F5 agent log file.

    Your new F5 agent will not start if it finds an existing f5-openstack-agent .log file. You can either move the log file to a new location, or rename it.

    $ mv /var/log/neutron/f5-openstack-agent.log ~/f5-upgrade-temp
    
  3. Stop and remove the current version of the F5 agent.

    Debian/Ubuntu
    $ sudo service f5-oslbaasv2-agent stop
    $ pip uninstall f5-openstack-agent
    
    Red Hat/CentOS
    $ sudo systemctl stop f5-openstack-agent
    $ sudo systemctl disable f5-openstack-agent
    $ sudo pip uninstall f5-openstack-agent
    
  4. Follow the installation instructions to install a different version of the F5 agent.

  5. Copy your configuration file back into /etc/neutron/services/f5.

    Tip

    It’s good practice to compare your saved copy of the configuration file with the new one created during installation. Verify that the only differences between the two are those required for your deployment. If new options appear in the config file, see supported features and configuration parameters for explanations and config instructions.

    $ cp ~/f5-upgrade-temp/f5-openstack-agent.ini /etc/neutron/services/f5/f5-openstack-agent.ini
    

Footnotes

[1]See the OpenStack CLI documentation
[2]Similar to BIG-IP high availability, but applies to the F5 agent processes.