The F5® agent translates from 'OpenStack' to 'F5®'. It uses the f5-sdk to translate OpenStack messaging calls -- such as those from the Neutron RPC messaging queue -- into iControl® REST calls to F5® technologies, such as BIG-IP®.
Documentation is published on Read the Docs, at http://f5-openstack-agent.readthedocs.io.
The F5® OpenStack agent is compatible with OpenStack releases from Liberty forward. If you are using Kilo or earlier, you'll need the LBaaSv1 plugin.
See the F5® OpenStack Releases and Support Matrix for more information.
Please see the documentation for installation instructions.
If you find an issue, we would love to hear about it. Please open a new issue aissue for each bug you'd like to report or feature you'd like to request. Please be specific, and include as much information about your environment and the issue as possible.
See Contributing.
Before you open a pull request, your code must have passing pytest unit tests. In addition, you should include a set of functional tests written to use a real BIG-IP® device for testing. Information on how to run our set of tests is included below.
We use the hacking module for our style checks.
- ::
- $ pip install tox $ tox -e style
We use tox to run our pytest unit tests. To run the unit tests use the tox environment unit.
- ::
- $ pip install tox $ tox -e unit
Functional tests can be run without a full OpenStack deployment, but do require access to a BIG-IP device or VE instance.
- Create a symbol's file that describes the environment that you are running your test in by copying and editing the symbols.json.example file to have the values that are correct for your BIG-IP.
- Run the functional tests by supplying the symbol file that you just created which includes the information relative to your environment using the example file. The example below runs the disconnected services neutronless functional test cases (the tox target changes to the [test/functional](test/functional) directory before running.
$ tox -e functest -- \ --symbols ~/path/to/symbols/symbols.json \ neutronless/disconnected_service
When the f5-openstack-agent is installed, the debug_bundler.py script will be installed to /usr/bin/f5/. This script can be run from the command line directly. It will search in the specified directories to bundle log files and configuration files for use in debugging an issue with the f5-openstack-agent. In addition to the above files, it also dumps a complete listing of the pip lists
output.
WARNING
The files added to this bundle may contain VERY SENSITIVE INFORMATION such as encryption keys, passwords, and usernames. Do not upload this bundle, or any information within, to a public forum unless you have scrubbed sensitive information thoroughly. When in doubt, don't upload it at all.
Below you can see the basic usage, using the default command-line arguments:
$ python /usr/bin/f5/debug_bundler.py /home/myuser/debug_bundle_output/
A tarred, compressed, file will be created in the directory specified. It will contain all logs and configuration files the script found. Note that the script offers a best-effort search of the directories given, and if it cannot find the log files it is looking for in those directories, it will print a message and continue running.
The default log location is set to /var/log/neutron and the default configuration file location is in /etc/neutron. These locations can be overriden via the command-line invocation shown below:
$ python /usr/bin/f5/debug_bundler.py --log-dir=/var/log/mylogs --config-dir /etc/myconfigs/ ~/
If any issue is found with the debug_bundler script, please file an issue on GitHub.
Copyright 2015-2016 F5 Networks Inc.
See Support.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Individuals or business entities who contribute to this project must have completed and submitted the F5® Contributor License Agreement to Openstack_CLA@f5.com prior to their code submission being included in this project.