There has been a direction change in the "secure-RBAC" goal and scoped
tokens are no longer being implemented[1].
The Octavia tempest tests were updated for the new keystone roles and
scoped tokens at the same time with an (bad) assumption that they would be
turned on at the same time.
This patch updates the Octavia tempest plugin to not assume that scoped
tokens are in use when the RBAC type is set to keystone_default_roles.
[1] https://governance.openstack.org/tc/goals/selected/consistent-and-secure-rbac.html#direction-change
Depends-On: https://review.opendev.org/c/openstack/octavia/+/877433
Change-Id: Ia1c4ca0b675d39bd43640184d6d3deba823fd3f6
Not in every cloud does tempest have permissions to list the
role assignments. Since it is not critial for running the tests,
the logging of the user roles should be configurable.
Change-Id: I8aea2b597b9dd9bbdc5a1527fae03e86364aab4c
This patch adds API and scenario tests for PROMETHEUS listeners. This
includes scenario tests that connect to the metrics endpoint.
Depends-On: https://review.opendev.org/c/openstack/octavia/+/812258
Change-Id: Ia46d8c0967bc5b0f7cd11b6e3ca3a4e03c0bc138
This patch refactors the RBAC enforcement checks in the API tests.
It also updates those test for keystone scoped tokens and default roles.
Change-Id: I6fad03f5a89c213562918ca258884aac34ba7ce7
The IPv6 VIP subnet used in the tests is created using devstack's
default IPv6 subnetpool.
Devstack ensures that any CIDR from this subnetpool is routable from the
devstack node if the subnet is plugged into devstack's router1.
Change-Id: Iaf3113087a344787add3405208fb229838a56d0b
This patch installs and uses test_server.bin from
/opt/octavia-tempest-plugin as a well known location on the
filesystem. This way tests, like grenade, that run the devstack
plugins once in /old paths, can find the binary when running from
/new paths.
Change-Id: Ia78f16fde026269dec01f4dceb202842ad12a557
This is a patch to restructure the API tests to use the
new skip_if_not_implemented capability.
Depends-On: https://review.opendev.org/745239
Change-Id: I291488e1c9418e51d6fe7ea142eaca13e3c181a0
This patch adds a decorator that wraps the service client methods adding
the ability to raise a skipException if a call to the API returns a
NotImplementedError or UnsupportedOptionError exception.
This is useful for running the tests against provider drivers that do
not support all of the Octavia API features.
Change-Id: I17d4be65130fadf97d6170d22fb07c72672b7573
This patch adds an optional tenant flow log offload scenario test
that checks the tenant flow logging offload and format.
Change-Id: I8a7ed4e1bc3d567c4807726c684ad86cd281096f
Currently, if you run the availability zone API tests when not using
the no-op drivers, the API tests will fail as they had hard-coded
availability zone names that do not exist.
Since creating availability zones requires reconfiguration of the nova
host deployments, it is not practical to create nova availability zones
for these tests.
This patch adds tempest configuration settings for the required
availability zones, and if not configured will skip the tests that
require the availability zones be present.
Change-Id: I53d5d33ae9a181b79e1d971d56452eeee5dd7759
While using requests.session TCP connections are
reused. OVN Load Balancing algorithm uses hash with source port
to route clients requests. In that terms if connection is reused
the load is not spread across members. This patch adds an option
to disable reusing connections.
Change-Id: I61a202a2c1a6d15d714464d519de39f5f2acb2a6
Story: 2006264
Task: 35992
This patch fixes an offset positonal argument in a string format that
was throwing an IndexError exception. It also adds a skip check to check
if the required amphora SSH key file is readable.
Additionally, the iptables-based active-standby test has now a better
amphora_ssh_key default value to match with the default path set by the
Octavia Devstack plugin.
Story: 2006259
Task: 35876
Change-Id: Ic887c726dfe151ea582a1bd935ae0b30582f14ea
This patch adds a tempest scenario test for the active/standby topology.
It starts an active/standby load balancer, deletes the master amphora,
and validates that the load balancer is still working.
Change-Id: Ibcd5552a67cea650edc72bfaa986357267ca2407
Update the help message to match the same help message in octavia.conf.
Users were confused because the example was in Python dictionary format.
Change-Id: Ic3f620dcf02c756395da760f8b73874b40318cb6
Not all provider drivers may support APP_COOKIE/HTTP_COOKIE,
so this patch modifies the test to reflect the same.
Change-Id: Ifea51c1f927947588ac2ed82f25fa35ee56c98f7
This patch adds a scenario test for testing amphora spare pool feature.
It adds new check jobs to test against master as well as stable
branches.
Change-Id: I87249017453628e3d2cd320a02677d81397f1b26
There is at least one provider driver that does not currently support
any other pool algorithm than round-robin. This patch adds a new option
that allows one to toggle enablement of pool algorithms (default is
True/enabled).
Change-Id: I11e1569f91fe66a6bc735a1abd7b1545ca1490a0
This patch adds a tempest scenario test for active/standby topology.
This scenario takes a similar approach to scenario proposed in Change-Id
Ibcd5552a67cea650edc72bfaa986357267ca2407 with the difference that it
does not rely on amphora stats API. Instead, it uses iptables to log VIP
traffic and make assertions based on logging.
Co-Authored-By: Michael Johnson <johnsomor@gmail.com>
Change-Id: I24a6fc3387166ec6cdbd57a5ca9f63743748ec68
Tempest plugins should not explicitly set option from other plugins. The
change I7013888f94261d94e1cd4c3167dc84da7125d1da set
service_available.barbican to false if the barbican plugin doesn't
exist, but cause duplicate error if both are installed. The right way to
check if a service is available or not is checking if the attribute
exists and set the default to false. This patch fix the duplicate error.
Depends-On: https://review.openstack.org/#/c/639153/
Change-Id: I1ba353328e759391cc6a46d95b74c85c4cea6d92
Closes-Bug: 1817154
Currently not all Provider drivers support L7 in Octavia.
Until the flavors option is not enabled, it is proposed to skip
L7 in favor of L4( specifically TCP ) protocol tests for the provider
drivers.
Change-Id: I07b4f7038d71d684c23885c89257af2711a442a0
This patch add configuration support in Octavia Tempest Plugin,
in case a provider driver does not support Health Monitors.
Change-Id: I25eb52e9f64a08560c9ea2f664edd9826be6e379
A lot of build timeout was seen, for example:
http://logs.openstack.org/17/606417/1/check \
/octavia-v2-dsvm-scenario-centos-7/0b4c23a/testr_results.html.gz
Try to raise the default and see if it helps.
Change-Id: Id6dfd80f04624e845807f2a20f2f4e816a778415
This patch implements listener tests for the Octavia
Tempest Plugin.
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Change-Id: I5c0d3a737ff4cc929573c6fb7fbb5d46f1159d80
Story: 2001387
Task: 5965
This patch implements the tempest plugin for
for testing load balancer creation in Octavia.
Co-Authored-By: Jude Cross <jcross@godaddy.com>
Co-Authored-By: Lingxian Kong <anlin.kong@gmail.com>
Depends-On: https://review.openstack.org/557856
Change-Id: I57064f8e0834efba8859a780394a1c69851cc917
In real use case, it should be the end user who will create floating
ip and associate with loadbalancer vip.
Also use config_drive when creating backend server, to keep consistent
with amphora creation in octavia itself.
Tested in devstack.
Change-Id: I2cbee37f494a5775a96f8c285f0e52c0b2550d5b
This patch implements the tempest plugin for basic load balancer
operations in Octavia. It contains tests for loadbalancer API and
a minimal operation test for loadbalancing functionality.
Steps for testing in devstack environment:
- Clone octavia-tempest-plugin repo, check out this patch, install
octavia-tempest-plugin project.
- Create a tempest work directory by running 'tempest init <workdir>'.
In the etc/tempest.conf, add 'loadbalancer = true' in
'service_available' section.
- Set a big value to 'OS_TEST_TIMEOUT' in .testr.conf
- Add or modify other related config options (image, network, flavor,
validation, etc).
- Run 'tempest run --regex ^octavia_tempest_plugin'
Co-Authored-By: Lingxian Kong <anlin.kong@gmail.com>
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Change-Id: Ibc2904f431b15dfca2ff8e38e0d4d06c1430abea