126 Commits

Author SHA1 Message Date
Michael Johnson
fb0bbb9826 Update api-ref for tag filtering
This patch also updates the API version to 2.5 to represent the tags
support.

Change-Id: Ia57724c231c10efad9cee46be4969fa276fff8b1
Co-Authored-By: Lingxian Kong <anlin.kong@gmail.com>
2019-01-22 00:55:19 +00:00
Zuul
ee11927c9e Merge "fix typo mistakes" 2019-01-04 18:44:37 +00:00
Michael Johnson
66298f9a48 Add amphora statistics to the admin API
This patch adds an admin API for getting per-amphora statistics.

Change-Id: Ib57b2136dbb41067d6b8949ee42f946f109616e7
2018-12-20 22:28:51 -08:00
Yang JianFeng
ae8d6fb2de Add compute_flavor field for amphora api
Operators want to have the ability to see amphora flavor information.
But they haven't access permisson of octavia configuration file. So
it is necessary to show amphora flavor information as part of command
'openstack loadbalancer amphora list/show'.

Story: 2002896
Task: 22986

Change-Id: Ib3ca05d816747d08ef7055ec532b81746468cbf9
2018-12-18 19:48:56 +08:00
wangxiyuan
d62189366c Tags support for lb resources
Add tags support for all lb related resources. It includes:
load balancer, listener, member, pool, L7rule, L7policy
and health-monitor

Change-Id: Ib33a002b3b59820db29897454e9d4303c73310b2
Story: 2003890
Task: 26757
2018-12-17 07:58:04 +00:00
MaoyangLiu
04613ac171 fix typo mistakes
Change-Id: I3c5980782c029a33ed5dc5ce04dd709cf0c50fe0
2018-12-16 16:13:11 +08:00
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
Zuul
8e373c8053 Merge "Remove deprecated parameters" 2018-10-19 20:59:02 +00:00
Zuul
ed301d7fa2 Merge "Add API versioning to the api-ref" 2018-10-14 13:43:59 +00:00
Jacky Hu
6d21b33cdc Remove deprecated parameters
This is a follow up of I70e5cb07a4435f58f5da3999be70162efa7f0bd8, which
eliminated the usage of the parameters removed here.

Change-Id: I9c52aa6ef73482e2f2d83a6b228407790e18ca74
2018-10-11 09:25:41 +08:00
Michael Johnson
9aea3501d1 Add API versioning to the api-ref
This patch documents the new parameters added, by API version greater
than 2.0.

Change-Id: Ieb2c30653e832b9fa726f8430da603945fd10cc2
2018-10-10 16:24:36 -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
Michael Johnson
5022588164 Fix UDP release note for CentOS
This patch removes the comment about the UDP patch not working on CentOS
because we fixed the issues that were impacting CentOS based amphora.

It also corrects a typo in the api-ref where the protocol field was listed
as an "integer" type, where it should be "string".

Change-Id: I0857015f25de607ab8364b9e1d59a65f8b072c3c
2018-08-08 13:25:24 -07:00
Michael Johnson
cc97397d1c Followup patch for UDP support
1. Removes the misc_dynamic setting from the UDP-CONNECT health monitor
   as our script does not use it.
2. Adds a release note for the UDP features.
3. Updates the API reference for UDP support.
4. Adds a comment to the keepalived config with the LB ID.
5. Updates the status message type to be the correct UDP protocol.
6. Fix error during deleting a listener if there are multiple amphoraes.
7. Refactors systemd service script handling.

Story: 2003306
Task: 24258
Change-Id: I09240023d066ac5a71836d01045cda6ce5678712
2018-08-07 20:55:11 -07:00
Adam Harwell
bd0206a6ea Correct naming for quota resources
Story: 2002997
Task: 23013

Change-Id: Ie2f3944676f04e80b8dd4affe947b03d36d854f5
2018-07-25 21:54:54 -07:00
Zuul
92963f1899 Merge "Fix version discovery for the Octavia API" 2018-07-25 22:26:09 +00:00
Michael Johnson
87fca27e37 Fix version discovery for the Octavia API
This adds the required "links" part of the version discovery document.

Change-Id: I18e75116e1da47991d68b0842892f1036adec41a
Story: 2001796
Task: 12518
2018-07-08 14:19:04 -07: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
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
86da7a86a1 Correct flavor to flavor_id in LB API
This matches neutron-lbaas. This was never actually used, so changing it
should not be an issue hopefully.

Change-Id: If5dfcb291e7fa5c406ea99905f61673786823c8b
2018-04-20 23:55:04 +00:00
Michael Johnson
dda45f0cb8 Add pool session persistence validation
This patch adds validation to the pool session persistence options.
It validates the cookie_name specified and whether that option is valid
for the session persistence type specified.

Change-Id: I2f35a1a267bf2fc35bbb93a7f5390213ca20d1a8
Story: 2001818
Task: 12555
2018-04-11 12:00:48 -07:00
Adam Harwell
bb0447e98b Expose timeout options
Various timeout options need to be exposed to enable use-cases more
complex than standard HTTP requests.

In this patch we expose four new timeout values:
* timeout_client_data
* timeout_member_connect
* timeout_member_data
* timeout_tcp_inspect

Change-Id: Id4667201c1bfaa06f7af9060c936ba00c2f314f9
Story: 1457556
Task: 5453
2018-04-04 13:06:01 +09:00
Adam Harwell
e819e4521a Allow members to be set as "backup"
Setting a member as "backup" means no traffic will be sent to it unless
all non-backup members are marked as down.

This should be essentially the same in every backend provider AFAIU.

This was requested by at least one operator (me) and was agreed during
the PTG to add value.

Story: 2001777
Task: 12483
Change-Id: I953abe71a0988da78efc6b3961f7518c81c2a06d
2018-04-04 07:47:31 +09:00
Michael Johnson
aab5e6645f Update API-REF for x-forwarded-port is string
The API reference document had a typo where the "X-Forwarded-Port"
parameter for the HTTP header insertions was listed as an integer
instead of as a string. It also corrects "X-Forwarded-For" to be a
string. This patch corrects that mistake.

Change-Id: I3996d5e1950f8d979eb1c354dfac70a0ddefdca2
2018-04-02 02:23:30 +00:00
Adam Harwell
6ee20b272e Add image_id to amphora table
Story: 2001491
Task: 6215
Change-Id: I5ab6707591c856e43a0e0f49c84e1e721f01893c
2018-02-27 14:46:25 +00:00
Adam Harwell
2e7d9c6cd1 Add timestamps to amphora table
Change-Id: I3df39278eee2d2c6c31f93c8b651e6f74690a1b1
2018-02-27 14:41:02 +00:00
Michael Johnson
4120ad721f Fix missing test-requirement and cleanup docs
This patch adds oslo.serialization to the test-requirements.txt file as it is
used in some tests.
It also fixes the parameter ordering in the api-ref for the new qos parameters
on load balancers.

Change-Id: I0baf00457cb131a05b31ac83c03a7ed4a176160c
2018-02-10 14:48:31 -08:00
chengebj5238
66a7e6138f Repalce Chinese quotes to English quotes
Change-Id: Idcd0cdb57019a512f2d3eecdb7bc2b08a34af7e8
2018-02-05 18:39:02 +08:00
Zuul
fdc8d17ec5 Merge "Update api-ref for uuid type and fix tox" 2018-02-04 03:57:34 +00:00
Michael Johnson
711f6159c1 Update api-ref for uuid type and fix tox
The API reference documentation theme now supports the "uuid" type[1].
This patch updates the Octavia API reference to use the uuid type where
appropriate to clarify the type.

This patch also fixes the api-ref tox target for the new documentation
requirements.txt file.

[1] https://review.openstack.org/#/c/528597/

Change-Id: Ia7dfe2a26140fba0208531bd8e8e82163eb75347
2018-02-03 21:38:12 +00:00
Michael Johnson
ee00bfe50e Update docs config for storyboard bugs
This patch updates the docs configuration to have bugs links that take the
reporter to storyboad instead of launchpad.
It also sets the docs up for PDF rendering and multiple versions of the
documentation.

Change-Id: I66187e09e038efe605db45a26e3505218a7a4c65
2018-02-01 17:24:24 -08:00
Adam Harwell
8934a629df Switch to using PKCS12 for TLS Term certs
*NOT* deprecating the old way of storing these, as I believe that would
create a huge mess for anyone already using it.

Change-Id: I1fee174d8b8956f3d2053781a7f18c2940b21765
2018-01-23 07:17:14 +00:00
Adam Harwell
2ab55ebc91 Add api-ref for amphora failover
Change-Id: Ie55c54bc48eac966207430d84ec9b2707b058e28
2018-01-10 07:10:11 +00:00
ZhaoBo
51f6f7258b Extend api to accept qos_policy_id
This patch extend Octavia v2 API to access qos_policy_id from neutron.
Users can pass it as 'vip_qos_policy_id' to Octavia request body to
create/update Loadbalancers, and the vrrp ports will have the qos
abilities.

This patch modifies the Loadbalancer Post/Put request body and response
body. It also extends the 'vip' table with the new column named
'qos_policy_id' to store the qos_id from neutron.

Co-Authored-By: Reedip <reedip.banerjee@nectechnologies.in>

Change-Id: I43aba9d2ae816b1498d16da077936d6bdb62e30a
2017-12-20 09:23:16 +08:00
Bar RH
3ada33d4c7 Fix filtering in list API calls
The API's filtering arguments were not handled properly, and
therefore, some were consistently ignored.
This patch resolves this by translating the argument names to
the ORM data model's fields, and then validating them.

Additionally, enforcing of arguments validity is now the default
behavior. Should unrecognized filtering arguments be entered,
the API call will fail with code 400.

Task: 5844
Story: 2001224

Change-Id: I8f61880d6c11037d32b96e9827fb4e810dc219c2
2017-12-05 16:13:56 +02:00
Bar RH
3d4bb0785c Rename 'remove' to 'reset' in Quota API
The name of the remove_quota API call is misleading.
The real purpose of this call is to reset the quota
to its default value, not to remove it.

This patch is limited to the title of the call in v2,
and it does not modify the REST API in any way.

Task: 5868
Story: 2001295

Change-Id: Idfb1f3c3fe90d71434d0bb6a973e146ea3dea67c
2017-11-27 16:52:06 +02:00
Bar RH
313ffd4ec7 Refine api-ref regarding loadbalancer creation
Emphasize that specifying a VIP is mandatory.

Change-Id: Icfc73f7fdfab886731ced77ebea6f8edb00a1719
Closes-Bug Story: 2001279
2017-11-21 09:29:29 -08:00
Zuul
504cb6c682 Merge "Add cached_zone to the amphora record" 2017-11-01 19:46:39 +00:00
root
d482b0e78a Fix body error of update loadbalancer
Change-Id: I29d1949545252f8d6333c635851f59258deda4a8
2017-11-01 14:12:40 +00:00
Adam Harwell
b8ebbe9919 Add cached_zone to the amphora record
This will enable a number of possible features that need to select
amphorae based on their availability zone.

This would allow for quick-lookups on large lists and could be stale,
but it would be expected that future code that uses this would check
with nova for an update if it needs fully accurate data.

Having it be explicitly "cached" should take care of concerns about
users (operators, in this case) being confused about correctness.
Using simply the word "zone" should address concerns about commonality
between compute providers.

Change-Id: I8e26f99bca3496a454ba7bae2570f517e07d5fc2
Story: 2001221
Task: 5732
2017-10-31 17:15:45 -07:00
Jenkins
859bb3bae3 Merge "Allow PUT to /pools/<id>/members to batch update members" 2017-10-14 14:11:43 +00:00
Michael Johnson
40484cc5c6 L7 policy API-REF update for result codes
The Octavia API-REF did not specify the HTTP response codes users
will receive when using the L7 policy actions REDIRECT_TO_URL and
REJECT.  This patch details those response codes.

Change-Id: Ibc2345deac518c49ece458e1bf09759cab25fa92
2017-10-09 05:39:41 +00:00
Jenkins
446c98ab3b Merge "Add admin endpoint for amphora info" 2017-10-06 00:23:10 +00:00
Adam Harwell
7f1c5011ed Add admin endpoint for amphora info
Administrators can now use /v2.0/octavia/amphorae to retrieve internal
information about amphora details like compute_id and lb_network_ip.

Change-Id: I5ac8d1ce189db09d52e518d42aeb3a192b8a8814
2017-09-22 23:39:46 +00:00
Adam Harwell
45e39fa216 Allow PUT to /pools/<id>/members to batch update members
Also fix an incorrect exposure of /healthmonitors on /pools and a badly
ordered flow for member updates.

Change-Id: Id256ea94293519b75983f7a44945ac9bbbf25cd1
Implements: blueprint member-put-list
2017-09-20 18:14:53 -07:00
Jenkins
27735576fd Merge "[Trivialfix]Fix typos in octavia" 2017-09-19 01:22:25 +00:00
shangxiaobj
9fd292fd28 [Trivialfix]Fix typos in octavia
Fix typos found in octavia.

Change-Id: Icd0b6c394a54f323015f58049c25bad9abd36144
2017-08-31 20:34:41 +00:00
German Eichberger
01e5af1a01 Adds the ability to failover a load balancer
This will allow an operator to force the failover of a load
balancer's underlying amphora for upgrades or other
maintenance.

- Adds a new failover endpoint to the queue
- Adds the functionality to the worker
- Adds the failover command to the producer
- Adds a failover controller so
  /lodabalancer/123/failover will initiate
  a failover and return 202
- Adds logic to insert the server group into the
  failover flow

Change-Id: Ic4698066773828ae37b55a8d79bd2df6fc6624be
2017-08-29 12:22:40 -07:00
Michael Johnson
7c986df83d Fix LB creation with VIP port
Octavia v2 API was failing to create the load balancer when the user
specified a VIP port ID.
This also improves the user experience when specifying a VIP address.
It also removes the un-used nova_network directory.

Change-Id: I8b533094df1e5425f824fff0454335709ce05447
Closes-Bug: #1709922
2017-08-10 16:18:29 -07:00
Adam Harwell
12135dcc92 Properly handle more states from HAProxy health messages
DRAIN / MAINT are handled now.
Also, transitional UP/DOWN states report correctly now.

Change-Id: I8b2bf54de6f79c98822689e48f6ec0b65c6296c5
Closes-Bug: #1708042
2017-08-01 17:43:40 -07:00