152 Commits

Author SHA1 Message Date
Michael Johnson
e60cd189fb Add auditing support to the Octavia API
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
2018-12-11 23:32:58 +00:00
Zuul
d29e129f94 Merge "Add framework for octavia-status upgrade check" 2018-11-18 01:33:42 +00:00
Zuul
5a7de9fd80 Merge "Update the HTTP links to HTTPS" 2018-11-17 00:40:53 +00:00
guotao.bj
d7d3e3f566 Delete duplicate word in component-design.rst
Change-Id: I054c7f2ee03f33aa883cff8e2ca9c57827b0c1c0
2018-11-14 06:36:27 +00:00
zhouxinyong
079ab45f4d Update the HTTP links to HTTPS
In consideration of the link security,We'd better to update the links to https.

Change-Id: Ic6821cc74a094cb27ae98bb91db1779ed1fdfaf8
2018-11-14 01:04:08 +00:00
akhiljain23
c60931f4b4 Add framework for octavia-status upgrade check
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
2018-11-12 14:41:14 +05:30
Michael Johnson
759cb75960 Update docs conf.py for openstackdocstheme change
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
2018-10-19 16:18:20 -07:00
sapd
62192dba3a Support REDIRECT_PREFIX action for L7Policy
Currently, Octavia only support three actions for L7Policy,
in this patch we will implement new action for L7Policy.

Story: 2003700

Change-Id: Ie99591ede097b566294ebdb673c460442dd6d942
2018-09-28 18:10:39 +07:00
German Eichberger
78ba1970f8 Updates the operator docs with the new lb failover command
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
2018-09-19 10:37:56 -07:00
Zuul
d1168a496b Merge "Add the missing markup for the hyperlink title" 2018-09-14 23:37:17 +00:00
Michael Johnson
96b9450e60 Re-enable flow diagrams
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
2018-08-30 10:14:06 -07:00
Michael Johnson
aaa7fbc748 Clarify that the driver support library is interim
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
2018-08-02 08:35:12 -07:00
Zuul
06c6131bff Merge "Clarify IPv6 support for the lb-mgmt-net" 2018-07-31 21:15:19 +00:00
Zuul
d3092c0fac Merge "Implement provider drivers - Driver Library" 2018-07-26 23:51:50 +00:00
Zuul
b483af1ebb Merge "Automatically set Barbican ACLs" 2018-07-26 18:33:30 +00:00
Adam Harwell
c3813d9313 Automatically set Barbican ACLs
Story: 2002973
Task: 22981

Co-Authored-By: Carlos Goncalves <cgoncalves@redhat.com>

Change-Id: I51121c599f19a91a6755571abf1c6bd854e7d50f
2018-07-26 14:05:58 +00:00
Michael Johnson
9ca61f2f4a Temporarily disable flow diagraming
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
2018-07-22 15:45:09 -07:00
Qian Min Chen
4a80af04bd Add the missing markup for the hyperlink title
Change-Id: I43b38849b46924ad58585c5d449a837d381506da
2018-07-21 14:34:11 +08:00
Tuan Do Anh
b9e050c182 Update pypi url to new url
Pypi url changed from [1] to [2]

[1] https://pypi.python.org/pypi/<package>
[2] https://pypi.org/project/<package>

Change-Id: I03080319a2c875d5e2af80db02d6056421a1d644
2018-07-19 07:50:11 +00:00
Zuul
3344484872 Merge "Add the missing markup for the hyperlink title" 2018-07-18 22:06:14 +00:00
Qian Min Chen
8ef1b1332b Add the missing markup for the hyperlink title
Change-Id: I825c361eb06605ed8e168d7f9f1cd245bea34a7c
2018-07-11 17:53:57 +08:00
Zuul
f755657f17 Merge "Adding support for the octavia listener X-Forwarded-Proto header insertion." 2018-07-11 00:26:04 +00:00
Michael Johnson
4a9f83d039 Implement provider drivers - Driver Library
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
2018-07-09 17:04:29 -07:00
Zuul
8f3eeb5b2e Merge "Add the missing markup for the hyperlink title" 2018-07-08 16:15:54 +00:00
Zuul
bd6c844390 Merge "[doc]Use openstack client commands to replace nova client" 2018-07-08 16:14:12 +00:00
Qian Min Chen
32ceaec254 [doc]Use openstack client commands to replace nova client
Change-Id: I088b9903fec3feec6a937e1d1736bfaaa9fb3ef2
2018-07-07 15:33:21 +00:00
Qian Min Chen
d959dab826 Add the missing markup for the hyperlink title
Change-Id: I9184dea2496ee9b6d84bb4e718f3e798f16ec480
2018-07-07 14:20:38 +00:00
Doug Hellmann
0322cbc5c3 fix tox python3 overrides
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>
2018-06-27 09:32:00 +08:00
Zuul
ab37d51ce5 Merge "Providers: propose changes to create pool API" 2018-06-26 02:53:53 +00:00
Carlos Goncalves
86e5b93e4a Add upgrade guide
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
2018-06-25 23:22:26 +01:00
Michael Johnson
f591509513 Clarify IPv6 support for the lb-mgmt-net
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
2018-06-25 12:48:24 -07:00
Adit Sarfaty
caf65353a1 Providers: propose changes to create pool API
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
2018-06-25 06:22:22 +00:00
Rafal Pietrzak
d3f0a50014 Adding support for the octavia listener X-Forwarded-Proto header insertion.
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
2018-06-19 09:55:36 +02:00
Kobi Samoray
97a168c270 Providers: propose changes to API
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
2018-06-05 04:32:23 +00:00
Michael Johnson
6349976cde Implement provider drivers - Cleanup
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
2018-06-04 19:34:42 -07:00
Adam Harwell
190f682aac Fix requirements gate + add local tox profile
Add a local tox profile 'requirements' so we can easily run requirements
checks locally during development.

Change-Id: I4d1718b6ff67a889984d8937241d086f06bef237
2018-05-31 12:22:56 -07:00
Michael Johnson
7a24b08434 Implement provider drivers - Listener
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
2018-05-23 00:26:43 +00:00
zhangdebo
505543fb8d Fix typo
Fix typo.

Change-Id: I064ed14859890ce4279891d9fd502f147795200d
2018-05-22 16:41:43 +08:00
Michael Johnson
9c6e9e331b Fix sphinx-docs job for sphinx >1.7
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
2018-05-14 14:19:26 -07:00
Qian Min Chen
13d0afcec8 Use openstack client commands to replace neutron client
The neutron client commands will be deprecated, so use
openstack client commands to replace neutron client

Change-Id: Id92ac187fbda85ee03ed86a89f22619125697885
2018-05-10 22:25:35 +08:00
Zuul
7c786f5e0d Merge "Updates the docs with new admin tips" 2018-05-09 13:45:14 +00:00
German Eichberger
777a845cba Updates the docs with new admin tips
Adds a note on monitoring load balancers handling critical
applications and describes what to do after a node recovery.

Change-Id: I9662703cd55310598335331181aa50bec73ca06c
2018-05-07 14:26:08 -07:00
Zuul
afb47816ac Merge "Trivial: fix syntax error in command examples" 2018-04-18 23:49:02 +00:00
Michael Johnson
240478a505 Adding Gophercloud to the SDKs list
Gophercloud has support for Octavia so adding it to the SDK list
in the docs.

Change-Id: I4c2b676be0725067f3084b6b2a4eeefd24458cb5
2018-04-18 09:41:49 -07:00
Carlos Goncalves
655c31d4ab Trivial: fix syntax error in command examples
Change-Id: I1bc92babad3252dffd1075756137b63b57546dff
2018-04-18 13:39:21 +02:00
caoyuan
cf296c2ade Update auth_uri option to www_authenticate_uri
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
2018-04-11 23:34:05 +08:00
Carlos Goncalves
b1b62d3f7c Update introduction documention page
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
2018-04-10 11:48:09 +01:00
Monty Taylor
02c7a1d496
Rename python-openstacksdk to openstacksdk
Change-Id: Icf0709228021227af7e63f896179c8e24c03032f
2018-03-23 08:52:38 -05:00
OpenStack Proposal Bot
c2dbd82e5c Updated from global requirements
Change-Id: I044f2f25f9090d24dcc68b77af39cd4f3b1b2cb1
2018-03-16 07:34:35 +00:00
OpenStack Proposal Bot
75a15c72ba Updated from global requirements
Change-Id: I863edd1c8cb8a8ffb51c061f781123866b90fd11
2018-03-14 05:47:25 +00:00