69 Commits

Author SHA1 Message Date
melissaml
2f610b9534 Remove translation sections from setup.cfg
These translation sections are not needed anymore, Babel can
generate translation files without them.

Change-Id: Id52745f4751a62c53afbde94038b18b614f9b2dd
2020-05-15 18:16:25 +00:00
Sean McGinnis
526b15841f
Add py38 package metadata
Now that we are running the Victoria tests that include a
voting py38, we can now add the Python 3.8 metadata to the
package information to reflect that support.

Change-Id: I3c1e65466fa22747e66b25ea09dd518fcc311723
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-04-24 08:22:38 -05:00
Ann Taraday
9c13499d21 Jobboard based controller
Introduce TaskFlowServiceController which uses taskflow
jobboard feature and saves jobs info into persistence backend.

Jobboard could be operated via RedisTaskFlowDriver or
ZookeeperTaskFlowDriver, that could be set via the config.
RedisTaskFlowDriver is intoduced as default backend for jobboard.
Usage of jobboard allows to resume jobs in case of restart/stop
of Octavia controller services.

Persistence backend saves state of flow tasks that required in
case of resuming job. SQLAlchemy backend is used here.

Bump taskflow version to 3.7.1 and add dependency to
SQLAlchemy-Utils (required for taskflow sqlalchemy
backend support).

Story: 2005072
Task: 30806
Task: 30816
Task: 30817

Change-Id: I92ee4e879e98e4718d2e9aba56486341223a9157
2020-04-08 19:53:09 +04:00
Sam Morrison
18020e6c88 Add oslo middleware healthcheck to Octavia API
healthcheck middleware adds a /healthcheck url that allows
unauthenticated access to provide a simple check when running
octavia-api behind a load balancer

https://docs.openstack.org/oslo.middleware/latest/reference/healthcheck_plugins.html

Co-authored-by: Michael Johnson <johnsomor@gmail.com>
Change-Id: I10db6226750f7b7c703067d2ab82eea3a9875112
2020-03-19 11:24:16 -07:00
Brian Haley
4af42f837f Complete dropping py27 support goal
This takes care of the last details for dropping py27
support by adding a proper min version of python in setup.cfg.

Change-Id: I693db277d802b2a54084cc1be11d8ce04ad9be2e
2020-01-16 11:32:03 -05:00
Brian Haley
bc94789dc9 Stop testing python 2
Since it's no longer supported past Train, lets stop
running the tests.

Change-Id: Ia30435b3bb19acd1d2f9fe217251c393d4f7480e
2019-12-02 12:08:19 -05:00
Zuul
ff483f3457 Merge "Add long-running provider agent support" 2019-09-11 16:03:56 +00:00
Michael Johnson
78b1263237 Add long-running provider agent support
This patch adds support for long-running provider driver agents to
the Octavia driver-agent.
It will fork a process for all of the enabled provider driver
agents at startup.

Change-Id: Ib7042bcc48b1dd5b37b671dd5e64728b71ab9542
Story: 2006250
Task: 35863
2019-09-10 22:25:50 +00:00
sapd
93b509cfe5 Support create amphora instance from volume based.
In some deploy production, using volume based instead of localdisk
to protect data and live migrate can perform.

This patch adds:
 - creation a cinder volume for amphora
 - boot amphora with cinder volume
 - config options for cinder client
 - unit tests for cinder functionality

Story: 2001594
Co-authored-by: Vadim Ponomarev <velizarx@gmail.com>
Co-authored-by: Margarita Shakhova <shakhova.margarita@gmail.com>
Change-Id: I8181ed696b9ab556e7741c08839d79167aff8350
2019-09-10 22:21:42 +00:00
Zuul
ff4680eb71 Merge "Create Amphora V2 provider driver" 2019-06-06 05:21:31 +00:00
Michael Johnson
0ab16921ae Create Amphora V2 provider driver
This patch creates an Amphora v2 provider driver as well as a
V2 controller worker.
This is in preparation for having the amphora driver use the new
provider driver data models and rely less on native Octavia database
access.
It is also a prepartion step for enabling TaskFlow JobBoard as
this work will move to storing dictionaries in the flows instead
of database models.

Change-Id: Ia65539a8c39560e2276750d8e79a637be4c0f265
Story: 2005072
Task: 30806
2019-06-05 14:30:29 -07:00
Michael Johnson
6d2e2be86a Remove references to OpenStack Anchor
The OpenStack Anchor project is now officially retired[1].

This patch removes the references to Anchor from Octavia.
These old references were confusing new users.

[1] https://review.opendev.org/#/c/611187/

Change-Id: Idfe90aa69b497e8270118174dde00567d7fab4ab
2019-06-03 14:58:44 -07:00
Masayuki Igawa
88c4b9bb9d
Remove tempest.test_plugins from setup.cfg
This commit removes tempest.test_plugins entry from setup.cfg since we
already removed it in the past commit[0]. Otherwise, the
plugin-sanity-check job in tempest would be failed and the
plugin-registry page[1] would be incorrect.

[0] https://review.opendev.org/#/c/656707/
[1] https://docs.openstack.org/tempest/latest/plugin-registry.html

Change-Id: If529503286eb23ffa80880ae94cca143ae798729
2019-05-16 18:45:12 +09:00
Carlos Goncalves
c4faac25de Add Python 3.7 support
In order to support Python 3.7, pylint has to be updated to 2.0.0
minimum. Newer versions of Pylint enforce additional checkers which can
be addressed with some code refactoring rather than silently ignoring
them in pylintrc; except useless-object-inheritance which is required to
be silented so that we stay compatible with Python 2.x.

Story: 2004073
Task: 27434

Change-Id: I52301d763797d619f195bd8a1c32bc47f1e68420
2019-05-14 17:11:22 +00:00
Adam Harwell
29d4340e9f Remove v1 API and associated code
Includes some updates to docs and configs and related files to remove
references to neutron-lbaas. Also remove handlers.

Change-Id: I3082962841d3b645f3cbd1a6b41fc7fb28dcf7e6
2019-05-11 14:39:17 -07:00
Michael Johnson
f0776e0cfb Remove python3.5 jobs for Train
The TC has decided that python 3.5 tests are not required for Train
forward[1]. This patch removes the python 3.5 jobs from Octavia.

[1] http://lists.openstack.org/pipermail/openstack-discuss/2019-April/ \
    005097.html

Change-Id: Ic75cb45f7c89a80b779ade18a9e4a6f7bf1a6847
2019-04-22 12:59:58 +00:00
Michael Johnson
8997def2b5 Updates Octavia to support octavia-lib
This is the base patch that updates octavia to use the new octavia-lib.
It is backwards compatible by using debtcollector moves.

It adds a new controller process called the "driver-agent".

This patch also adds unit test coverage for a few additional modules.

Depends-On: https://review.openstack.org/#/c/641180/

Change-Id: I438e1548ec0fb6111d1ab85b05015007d9d0a006
2019-03-07 14:40:22 +01:00
Pradeep Kumar Singh
637009ecd0 Add flavor, flavor_profile table and their APIs
This patch adds flavor and flavor_profile tables.
It also implements flavors and flavorprofiles apis.

Partially-Implements: Blueprint octavia-lbaas-flavors
Co-Authored-By: Michael Johnson <johnsomor@gmail.com>

Change-Id: I99a673438458757d0acdaa46dd8ee041edb3be9c
2019-01-25 12:25:13 -08:00
pandatt
49af33802b Change openstack-dev to openstack-discuss
Change-Id: Ide7b2fe17f6a29fc97f3713d9e5c196cf99d11bb
2018-12-18 08:54:56 +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
ZhaoBo
a890f2ba35 UDP for [2]
These files will split with the current Octavia repo, before other parts
are ok.

Patch List:

[1] Finish keepalived LVS jinja template for UDP support
[2] Extend the ability of amp agent for upload/refresh the keepalived
process
[3] Extend the db model and db table with necessary fields for met the new
udp backend
[4] Add logic/workflow elements process in UDP cases
[5] Extend the existing API to access udp parameters in Listener API
[6] Extend the existing pool API to access the new option in
session_persistence fields

Change-Id: Ib4924e602d450b1feadb29e830d715ae77f5bbfe
2018-08-07 11:13:58 +00:00
Nguyen Van Trung
195aba338f Follow the new PTI for document build
For compliance with the Project Testing Interface as described in:
https://governance.openstack.org/tc/reference/project-testing-interface.html

For more details information, please refer to:
http://lists.openstack.org/pipermail/openstack-dev/2017-December/125710.html

Change-Id: I2a7c07767c0f46cebca355e617d5cc58efa5b161
2018-07-09 16:59:50 +07:00
Michael Johnson
7b2621fe29 Implement provider drivers - Load Balancer
This patch adds provider driver support to the Octavia v2 API, starting
with the load balancer API.

This patch also creates a provider driver for Octavia, initially fully
implementing the load balancer methods.

Follow on patches will implement the remain parts of the API.

Change-Id: Ia15280827799d1800c23ed76d2af0e3596b9d2f7
Story: 1655768
Task: 5165
2018-05-22 17:26:08 -07:00
Michael Johnson
3ab7723946 Create noop provider driver and data model
This patch creates the noop provider driver and the driver data model.

Change-Id: I40787c70d0cdaa5c8edd640f5c679bd2115827e4
2018-04-27 09:14:32 -07:00
Michael Johnson
be505cdfba Fix statistics update typo
The entry point for the stats db driver had typo.

Change-Id: I44eb1217e61f00f803af790c94468581aae66da6
2018-04-13 14:48:36 -07:00
Adam Harwell
f9dafb9a7a Overhaul HealthManager update threading
* Switch to ProcessPool from ThreadPool (Python threads are horrible)
* Load the health/stats update drivers correctly with stevedore
* Add logging driver

Change-Id: Icda4ff218a6bbaea252c2d75c073754f4161a597
2018-02-21 06:40:59 +00: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
Monty Taylor
967edebe0c Change how path munging works for sphinx docs
The 'import tools' line is fragile as it depends on how things are
executed as to whether or not '.' is in the python path.

Do the sphinx path munging before importing it.

Also, remove reference to modules/autoindex which does not exist and
thus causes sadness from warning-is-error.

Moves documentation requirements into doc/requirements.txt

Depends-On: Ib121961c5a953a434e7b333cd70f7838a2671f69
Change-Id: I23691aa1d0ea038ec1215e6199015529ddd92de4
2017-12-21 11:00:13 -08:00
Michael Johnson
7b1621789c ACTIVE-ACTIVE: Initial distributor driver
This patch is the initial implementation of a distributor driver for
Octavia Active/Active topology support.

This patch is a decompostion of the following patch:
https://review.openstack.org/#/c/313006

Story: 2001288
Task: 5836

Depends-On: I97b52b80efb33749647229a55147a08afa112dd2
Change-Id: I65e4a533caee692e1c98e8c6586c2e2132f2e34c
Co-Authored-By: Valeria Perelman <perelman@il.ibm.com>
2017-11-22 05:53:48 +00:00
Michael Johnson
3007738fec Update some links to the new docs locations.
Change-Id: Ic10c2a2d924e5daa5567f33ccb80d6e33949f636
2017-07-05 15:37:28 -07:00
Michael Johnson
93c8e006ce Update Octavia docs for documentation migration
This patch updates the Octavia documentation in support of the
OpenStack documentation migration[1].

[1] https://specs.openstack.org/openstack/docs-specs/specs \
    /pike/os-manuals-migration.html

Change-Id: I97fd038b8050bfe776c3fca8336d9090f8236362
Depends-On: Ia750cb049c0f53a234ea70ce1f2bbbb7a2aa9454
2017-07-03 11:43:40 -07:00
Michael Johnson
0ce46fe8d0 Add RBAC enforcement to Octavia v2 API
This patch adds policies and enforcement to the Octavia v2 API for
load balancers and listeners.  Child patches will add the rest of the API.

In this patch I also correct some improper functional tests.

Change-Id: Id8a2d15c117c54bd45fc8bb76bf71aff1b3c8fe9
Closes-Bug: #1690481
2017-06-20 13:43:47 +03:00
Adam Harwell
75c4361a11 Reintroducing local certificate manager, as it is useful for testing
Change-Id: I6616d815135ed00662c3b921796f5e988208bdf8
2017-05-09 15:45:39 -04:00
Shashank Kumar Shankar
a669d7e4f1 Run Octavia API in a WSGI server
This patch is to enable the API to run in a WSGI server like
apache2/httpd.

Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Co-Authored-By: Michael Johnson <johnsomor@gmail.com>
Change-Id: I296c046f653dcf78cdca2d0df1896d27f2ba1544
2017-04-30 08:36:44 +00:00
Jenkins
8d7f95ffda Merge "Add common api handlers for v1 and v2" 2017-02-15 00:11:28 +00:00
Nakul Dahiwade
22e0a5cd7e Add common api handlers for v1 and v2
Since v1 and v2 share the same code, it makes sense to have a common
api handlers instead of keeping redundant code.

Change-Id: I5f2c9b44ef62fd25e2f5a98e1223754fcc6f75ec
2017-02-14 17:17:56 +00:00
Michael Johnson
fa242df1e7 Fix the PKG-INFO to 5 - Production/Stable
Change-Id: I1006701d04cb3cadc6d3d4bbcdf0f2e3a30138dd
2017-02-03 19:08:42 +00:00
Lubosz "diltram" Kosnik
0482c14b83 Update Python classifiers
Project which supports python 3 should specify it using just major version and
then for every subversion should specify it. Remove also 3.4 classifier as
OpenStack decided about dropping support for this release completely.

Change-Id: I9beb6ef2df4c96f2f92e4f75e900f16eae9e325b
2017-01-10 09:46:04 -06:00
Michael Johnson
4e2a34dfad Adds diskimage-create scripts to pypi package
This patch adds the diskimage-create script and associated files
to the pypi package under share/octavia so that operators have the
required script to be able to build amphora images.
This also includes the README and LICENSE file for octavia.

Change-Id: Id014c4ac067de223f15a6bc2382aa2529cf89a13
Closes-Bug: #1654099
2017-01-05 00:13:40 +00:00
Michael Johnson
ad828709a7 Setup translation for octavia
This patch sets up octavia for translations.
It also includes some additional pep8 tests borrowed from neutron
that will be used in the future (tempest idempotent ids and policy.json)

Change-Id: Ia70506fa8cfdbcea7cc67b940761365093e94f2b
2016-12-15 00:48:02 +00:00
madhusudhan-kandadai
058dbb3097 Octavia: Implement Tempest Plugin
This patch discovers Tempest tests via tempest plugin.
Also included is are the config opt parameters
needed for testing.

Co-Authored-By: Franklin Naval <franklin.naval@gmail.com>

Change-Id: I5c99fc5aa3caeb6bd1a9c90c27d956cf0372180b
2016-08-24 16:47:28 -05:00
zhangyanxian
37fc1a0943 Update the home-page info with the developer documentation
Change-Id: Ia5229a148c7bfd334d6454ea9a3e960c8619e1f9
2016-07-25 01:14:06 +00:00
Yatin Kumbhare
db2178964a Add Python 3.5 classifier and venv
Now that there is a passing gate job, we can claim support for
Python 3.5 in the classifier. This patch also adds the convenience
py35 venv.

Change-Id: I968c8baab6b9f5c1b1b99735e16dc08158f7d8d7
2016-07-12 21:12:59 +05:30
Fei Long Wang
9f6c6d058b Support db-manage command for db migration
blueprint: octavia-db-manage

Change-Id: Ib1c8f47b6af4dd5d86acff68bc56ab660241458a
2016-05-11 09:57:48 +12:00
Stephen Balukoff
2a0a0944bf Delete SSH amphora driver
The old SSH amphora driver is not being used by anyone
anymore, nor is it being maintained. This patch removes it from
the Octavia code tree.

Closes-Bug: 1534218
Change-Id: I006f1c794e1ab0483886d06495ca6649f0afe479
2016-02-17 13:51:11 -08:00
Adam Harwell
0e78993002 Remove dead code around certificate handling
LocalCertManager is unusable because there's no way to get cert data
into the system (the API doesn't accept it) so there's no way we could
store it, which makes it unusable for its original purpose which was to
be a dev tool (it is not suitable for production use in any case).

Barbican does not support certificate generation in a way that makes
sense for us (they do async only) and Anchor will be the way forward.
This driver will never be completed and therefore should be removed.

Change-Id: I78019bc7ad7dffc745055216ed2aace725c58de2
2016-02-08 12:43:57 -06:00
Adam Harwell
29666293a4 Fix event_queue entry in setup.cfg from EventStreamer break
Change-Id: Id30fb6c6eb927d123f3ee6962011945e2c88ff5e
2016-02-04 15:19:40 -06:00
Carlos D. Garza
c84021ac27 Implementing EventStreamer
EvenStream will be used to serialize messages from the octavia
database to neutron-lbaas database via oslo_messaging. Also
renaming update mixin class since its not really a mixin. The
health manager will make changes to the octavia database when
members etc are marked as down and up etc which would result
in databases that were not in sync between neutron-lbaas and
octavia. A mechanism to communicate database changes from
octavia back to neutron is required so this CR attempts
to use a oslo_messaging system to communicate those changes,

Docimpact - /etc/octavia.conf the user can set the option
            event_streamer_driver = neutron_event_streamer
            to setup a queue to connect to neutron-lbaas.
            if this option is left blank it will default to
            the noop_event_streamer which will do nothing
            effectively turning the Queue off.

Co-Authored-By: Brandon Logan <brandon.logan@rackspace.com>
Change-Id: I77a049dcc21e3ee6287e661e82365ab7b9c44562
2016-01-19 00:48:14 -06:00
Adam Harwell
52351a5698 Refactor BarbicanAuth to allow for configurable auth method
There is now a new configuration option "barbican_auth" in the
certificates section, to specify which auth plugin to use when
communicating with Barbican. This is because the default option (using
ACLs inside Barbican to control access) should be ok as a default
workflow, but it might be required to use other methods depending on
your deployment. For example, another possible auth method would be
BarbicanTrustAuth, utilizing Keystone Trusts.

Some deployers may need custom auth methods that do not exist in
upstream Keystone, and will need their own Auth plugin. This should be in line
with the way Octavia's network and compute drivers work already.

While we're in this file, prune the unused (and really bad) method that
would *actually* delete certs from Barbican (not in our scope).
Also do the tenant_id -> project_id rename.

Change-Id: Ic9aef68924bb5c216734afd25403e59476c576e7
2015-12-08 14:56:32 -06:00
Jenkins
86b4f8dcec Merge "Amphora Flows and Drivers for Active Standby" 2015-12-04 16:26:08 +00:00