This patch adds Cloud Auditing Data Federation (CADF) auditing support to the
Octavia API. This is implemented using the keystonemiddleware audit filter.
Change-Id: I87a7e15171dfaf28b6ed97ca71d4423d18fbdbea
This commit adds the functionality of octavia-status CLI for performing
upgrade checks as part of the Stein cycle upgrade-checkers goal.
It only includes a sample check which must be replaced by real checks in
future.
Change-Id: I8b6d134b0bf5b5c82a19177fed6145ef8aaf7507
Story: 2003657
Task: 26146
A Starlingx patch[1] changed the signature for some openstackdocstheme
methods which is causing Octavia docs to not build.
This patch updates the octavia docs configuration for the new
openstackdocstheme.
[1] https://review.openstack.org/#/c/607298
Change-Id: Id09ab3b78291c28e116f1f4ffb8836eac0537d94
Currently, Octavia only support three actions for L7Policy,
in this patch we will implement new action for L7Policy.
Story: 2003700
Change-Id: Ie99591ede097b566294ebdb673c460442dd6d942
Since Pike we have the failopver command on the load balancer and
this should be used instead of dsabling the port. Added other
minor updates.
Change-Id: I606518d8d9a52104872a08ee18bd6be62c100de3
OpenStack requirements has added pydot to global requirements.
Even though this isn't the proper fix (still pending networkx 2.2 release)
this will resolve the dependency issue for us, so re-enabling our
flow diagrams.
Change-Id: I49856c8fbd7cb6302be4ec97a14b2c10682cf504
This patch is intended to clarify that Octavia is a service project
and not a library. It clarifies that the driver support callbacks are
temporary and will be removed in favor of a driver support endpoint.
Change-Id: Ic9dc596e86d414da1e8e20562f10ad490c51dbd9
The networkx package changed their dependecy model in version 2.1 and
now uses "pydot" and adds the dependency via setuptools "extras".
Unfortunately they only define an "extra" of "all" which installs packages
we do not need and fail to install.
So until the "extras" are fixed in networkx, we need to disable flow
diagraming.
Change-Id: I4f9082c267dc7da14b81cb551eeb10bbf58c175a
See: https://github.com/networkx/networkx/pull/3080
This patch implements the provider driver support library.
This library contains the callback methods that allow provider drivers
to update status and statistics.
This patch also clears some tech debt by correcting the IP addresses
used in some test cases.
Change-Id: I4e91e1b4f7ce611e603ea7aeb17f5c649cdb3c3d
Story: 1655768
Task: 5165
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
This patch also updates pylint to 1.5.6 which is compatible with
python3.
In updating pylint we have some issues to correct, this patch addresses
those issues so the Octavia code passes pylint 1.5.6.
Change-Id: Iec21f4c803a427059d595612336d67a35ebf9585
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The upgrade guide details on upgrade planning, cold upgrade steps,
amphora upgrade and calls out the octavia-grenade job used for upstream
testing on a DevStack environment.
Change-Id: I3b1c1f644f489776484cd631f40bbcae4d4bff67
Recently there were some questions about IPv6 support. This patch clarifies
the quick start guide discussion of IPv6 support for the lb-mgmt-net.
Change-Id: I5db61be0a7fba149483ace4c76e9a1fd69c910bf
Currently the driver data model for pool does not contain the
listener_id.
Unless we add it, there is no other way for the drivers to know which
listener was used since the DB session was not yet committed.
This patch suggests to add the listener_id to the object that the
driver receives.
Change-Id: If489f7bb956381bc5223556d118cb48571f0873f
Adding support for the octavia listener X-Forwarded-Proto header insertion.
A X-Forwarded-Proto header is inserted into the end of request to the backend
member. HTTP for the HTTP listener protocol type, HTTPS for
the TERMINATED_HTTPS listener protocol type.
Adding X-Forwarded-Proto to the list of HTTP headers which are supported.
File: octavia/master/octavia/octavia/common/constants.py:
SUPPORTED_HTTP_HEADERS = ['X-Forwarded-For',
'X-Forwarded-Port',
'X-Forwarded-Proto']
Adding the lines to the macros.j2 realizing the the http/https insertion
to the backend member according to listener protocol type:
File: octavia/common/jinja/haproxy/templates/macros.j2
{% if listener.insert_headers.get('X-Forwarded-Proto',
'False').lower() == 'true' %}
{% if listener.protocol.lower() == constants.PROTOCOL_HTTP.lower() %}
http-request set-header X-Forwarded-Proto http
{% elif listener.protocol.lower() ==
constants.PROTOCOL_TERMINATED_HTTPS.lower() %}
http-request set-header X-Forwarded-Proto https
{% endif %}
{% endif %}
Change-Id: Id017bb277eebae98f0441663e41d07b40b6e3e38
Story: 2002173
Task: 20038
While implementing an API driver for VMware loadbalancing platforms,
we ran into several difficulties which, I believe, might impact other
vendors as well.
The current approach of passing only the object id in delete operation
forces the driver to either run within Octavia's context, or maintain
a full state in order to map a sub-object id (e.g listener), to a
loadbalancer, which it should be deleted from.
With updates the problem is more complex as for reference the driver
has to maintain a full state of the object - not only mapping to the
loadbalancer. We already know what maintaining a mirror state is painful
as we experienced this for a while with LBaaSv2 and Octavia.
As an alternative, the driver could retreive the properties from the
appliance which may be a costly operation and will only resolve the update
challenges.
Change-Id: Ide4beaf73bb99be5c3b4c71c12fecef3499f45d9
This patch addresses the following:
Fixes some unit tests.
Cleans up some code from the parent patches,
Adds a release note for the provider driver support.
Adds the "List providers" API.
Adds a document listing the know provider drivers.
Adds a provider driver development guide.
Change-Id: I90dc39e5e9d7d5839913dc2dbf187d935ee2b8b5
Story: 1655768
Task: 5165
Add a local tox profile 'requirements' so we can easily run requirements
checks locally during development.
Change-Id: I4d1718b6ff67a889984d8937241d086f06bef237
This patch adds provider driver support to the Octavia v2
Listener API.
This patch also creates a provider driver for Octavia, fully
implementing the listener methods.
This patch also corrects the basic cookbook example for adding SNI
certificates to a listener.
Follow on patches will implement the remain parts of the API.
Story: 1655768
Task: 5165
Depends-On: https://review.openstack.org/492311
Change-Id: I386097197f51d94b34f9a7fd7af7b36238294faf
Upper requirements recently bumped sphinx from 1.6.5 to 1.7.4 which
breaks our docs job. This switches the apidocs build to use
sphinxcontrib.apidoc.
Change-Id: If6b9aa070d37f2799623a24a8e18666b13ef9044
The neutron client commands will be deprecated, so use
openstack client commands to replace neutron client
Change-Id: Id92ac187fbda85ee03ed86a89f22619125697885
Adds a note on monitoring load balancers handling critical
applications and describes what to do after a node recovery.
Change-Id: I9662703cd55310598335331181aa50bec73ca06c
Option auth_uri from group keystone_authtoken is deprecated[1].
Use option www_authenticate_uri from group keystone_authtoken.
[1]https://review.openstack.org/#/c/508522/
Change-Id: If6eee4ecfb4c6c607c9ee762cc535cf5d6180d88
A lot has changed in Octavia since the parapgrahs this patch touches on
were written. We should encourage operators and end-users to use Octavia
as first-class load balancing solution in OpenStack rather than
misleading new users by recommending them to use Neutron LBaaS with
Octavia as provider driver, at least whenever possible. A note is left,
though, for operators and end-users already running Neutron LBaaS to
migrate either to Octavia or, if not immediately possible, use the
Octavia proxy plugin in neutron-lbaas.
Change-Id: Ia7c6bca86d9510ce077295074fe9b034c6b35f54