Unify the default network naming with changes in the all-in-one
deployment and upstream neutron docs.
Change-Id: I3ceea9a1a5fab2f0ab91883f334fb924d89a5650
With efforts to create a resources in same, unified way,
we convert tempest role to use openstack_resources
for creating and managing openstack resources, like projects, flavors,
networks, images, etc. This should reduce maintenance costs
in case of futher collection updates and unify approach.
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/878794
Change-Id: I8d7609fac96935ed51e92ebf58515e8eb0c44d5c
Combine all variables starting with tempest_tempest_conf_overrides
to give a complete set of configuration to tempest when multiple
different test scenarios are enabled at the same time.
Change-Id: Iba5e061d1682d16c0516249f628f948a20580df8
Previously the os_tempest role had a single variable for
defining the include and exclude lists in order to select the
tempest tests to run.
This works for simple scenarios, where a single service
is deployed and the tests for that service are enabled through
the necessary variables set in user_variables. This approach is
used in openstack-ansible CI / AIO.
More complicated scenarios such as magnum+barbican+octavia, would
create several user_variables files each with conflicting settings
for the test settings. It is possible in this scenario for there to
be no valid tempest tests to run and tempest to fail immediately.
This patch adds the possibility to have many variables defining
the include/exclude lists which have names using a common prefix.
Any variable names matching the prefix are gathered and combined
with the original role default to make extending the test lists
easy to do in an incremental/distibuted way in the ansible variables
instead of having to maintain a single point defining all necessary
tests.
Change-Id: Ie3a9a7be849171af042567ba8a152e5df5d2cb53
These variable names collide with the best name prefix to use when
gathering many variable names into a combined include/exclude list.
Codesearch shows no use of these as overrides and the number of
cases when an override would be needed is small.
Change-Id: Ic64165e41d24ae8dc75061589de84fa57998f03d
More suitable replacement variables have been available for
several releases now so we can remove the deprecated vars.
Tripleo still defines these deprecated variables in several
places but seems to have made no attempt to move to the new
vars, and tripleo is itself now deprecated so we should move
ahead with removal of these vars from os_tempest.
Change-Id: I5a4a90bc963acc8b44caf7eb060b763e0f90a50f
With update of ansible-lint to version >=6.0.0 a lot of new
linters were added, that enabled by default. In order to comply
with linter rules we're applying changes to the role.
With that we also update metdata to reflect current state.
Change-Id: Ifcb6ebfa971e324e447509e50cc7294bddd6a4a0
For all services we do respect service_install_method vairable,
and define 'source' as the default options. At the moment tempest
attempts to follow source path even for distro deployments.
Change-Id: I5256943b5f175cbf46ae36361887dd055e0c52be
Currently we define fixed_network_name only when
tempest_create_isolated_networks == False.
It makes things complicated because tempest_create_isolated_networks is
applicable only when dynamic credentials are used.
fixed_network_name should be also defined when dynamic credentials
are not used.
Basically the only scenario when fixed_network_name should not be
defined is using dynamic credentials together with
tempest_create_isolated_networks.
fixed_network_name should be defined in all other cases.
Change-Id: I547d70995de5afbdc84c9f4e86b2599ad4cb100b
For some reason we define a list inside a _tempest_plugins dict.
It should be simplified to the list of dicts.
Change-Id: I891f77e3e22c962615697504d0870e25017511d7
internalURL is not a valid value for heat plugin, which makes workspace
creation to silenly fail. To avoid that we change default to just
`internal`, that should be supported by all plugins.
Change-Id: I86eef4f4a5cbcd7825488293bb8eaa9c7b9be5f1
Allow to set domain for admin authentication and dynamically provisioned
accounts.
Currently tempest admin user has to reside in the same domain as
dynamically provisioned accounts.
Change-Id: I1d5aa1f32bae42e2eeeed37588f6ca564563e57a
Tempest currently has two different internal methods for providing
authentication to tests: dynamic credentials and pre-provisioned credentials.
Depending on which one is in use the configuration of Tempest is slightly
different.
We should provide a support for both of them.
https: //docs.openstack.org/tempest/latest/configuration.html#credential-provider-mechanisms
Change-Id: I26d69caa3f96a530bc0a4a21365404b1a84e489a
In most cases, many of tempest resources are not needed.
From the other hand, some of our contributors still need them so we
can't just drop this functionality from this role.
The best solution I see is to add more flexibility and let users
choose which resources should be created by tempest role.
- public network:
new variable: bool tempest_public_net_create (default: true)
if false: require tempest_neutron_public_network_id to be set
if true: require all other tempest_public_net_* variables to be set
explanation: it'd be useful to choose if user wants to use already
existing public net or create a new one/
- private network:
new variable: bool tempest_private_net_create (default: false)
if true: require all tempest_private_* variables to be set
explanation: by default tempest has use_dynamic_credentials &
create_isolated_networks enabled, so it spawns an usable network,
subnet, and router when needed for each project it creates, so in
most cases it doesn't make sense to create special 'private' net.
- router:
new variable: bool tempest_router_create (default: false)
if true: both tempest_public_net_create and
tempest_private_net_create should be enabled
explanation: same case as for private network
- image:
new variable: bool tempest_images_create (default: true)
if false: require tempest_glance_image_id_1,
tempest_glance_image_id_2 to be set
explanation: tempest needs public images, so it'd be useful to just
use already existing ones
- flavor:
new variable: bool tempest_flavors_create (default: true)
if false: require tempest_nova_flavor_id_1, tempest_nova_flavor_id_2
to be set
explanation: tempest needs public flavors, so it'd be useful to just
use already existing ones
- projects:
new variable: bool tempest_projects_create (default:
"{{ tempest_public_net_create or tempest_private_net_create or
tempest_public_router_create }}")
explanation: by default tempest has use_dynamic_credentials &
create_isolated_networks enabled, so we don't need to create any
'static' projects, but network resources spawned by tempest
playbook belong to this project, so it should exist if any of
these resources are going to be created
I don't see any reason why users and tempest role should be created
so i dropped this functionality.
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/825166
Change-Id: Icb46f5cb9e2dda6511cc49e30587f541aa7e399f
We should not include [*-feature-enabled] sections in tempest.conf and use
``tempest_tempest_conf_overrides`` for these customizations instead.
There is no way we can keep feature list updated all the time and cover all
possible features in defaults/main.yml.
That's why I think we shouldn't cover them here at all.
If we need these customizations for testing purposed(tested it and I think we
don't), we should define them using ``tempest_tempest_conf_overrides`` only for
these tests.
Change-Id: If7d7ca5ae76cb3cb24f95fb9608ce3e1182d5e5a
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/825166
This allow us to define and later bump specific version of tempest
plugins for stable branches and override source of the repositories for
deployers.
Change-Id: I83fa8c729967046829db638500b65faa7f55a50d
Congress is no longer maintained and no reason to carry on it's
tempest testing.
LXD driver is also not supported by nova and project has been deprecated
back in Train.
Tempest tests for neutron vpnaas and bgpvpn were moved to neutron tempest
plugin with [1] and [2]
[1] 4077093c10
[2] 44866dadba
Change-Id: I161167b995a4cd3ee532719fa5fcf1f1a6cacb73
``tempest_endpoint_type`` variable has been implemented to avoid having endpoint type hardcoded in tempest.conf
Change-Id: Id218dcdfa788c184074d15519ac170d938290bd4
It is really unlikely to change these variables:
``tempest_network_tenant_network_cidr``, ``tempest_network_tenant_network_mask_bits``
and ``tempest_fatal_deprecations``
To keep tempest role as simple as it is possible, we should deprecate them.
They still can be changed using ``tempest_tempest_conf_overrides``.
Change-Id: Ia95f10c3548a5773c286e7d7075b71861fcef28b
It is generally better idea to not set tempest_private_net_seg_id by default for vxlan network(which is the default type for private net) and let openstack automatically choose segmentation id
Change-Id: Ie08e2a612711a57d74dca3e13d1d4223fd441989
This add a aditional test in the tempest_test_includelist. This is
required right now as a workaround for tripleo jobs, while the
implementation of the includelist in openstack-tempest-skiplist tool.
Tripleo uses os_tempest to setup and run tempest, but it doesn't run all
tempest tests. Sometimes, the list of excluded tests matches the list of
included tests and so tempest fail with no tests to run. This
tempest_test_extra_test will ensure that it will execute at least one
keystone api test to avoid this.
Right now, the tempest_test_whitelist variable is parsed to ansible via
-e command line, and so it's hard to overwrite it on tripleo side, and
it's spreaded in several different jobs with several different set of
tests. So, this is the best/easy way to fix this problem, while we work
on a long term solution.
Change-Id: Ic5f5b44d81ed39b1fa622b5a1d76e482c2aa23aa
'--whitelist-file' option is deprecated, use '--include-list' instead which is functionally equivalent.
Right now Tempest still supports this option for backward compatibility, however, it will be removed soon.
This change addresses the occurences of whitelist and blacklist in the os_tempest OSA role.
Change-Id: Id021d084867ef2891c381c5863b82421e90ee2ca
This is necessary to support the new pip resolver.
Depends-On: I9be6bbf4a29a4da2ddf96dc0336bc2a7d8ec9281
Depends-On: I49c75dd11d6c4e8d37fe013b7ffdfd56ff193fcd
Change-Id: If53aca6f16324d305b150466b94d3f18c8a1096a
If a user sets tempest_cleanup variable to true, tempest cleanup will be
executed prior tempest tests (to generate saved_state.json) and after the
tests in order to delete leaked resources if any.
Change-Id: Ief00b43237cb634ee25a18264461bfda8464bbc7
This patch is part of a set that aims to break out tempest
resource creation from the role, and introduces the
tempest_default_role_resources var. When true, default role
resources are created. When false, deployer-specific resources
must be created prior to executing os-tempest-install.yml or
including the os_tempest role in other playbooks.
Change-Id: I42cb8ffbe8aa8cfdcdcfcbbccf28117a27c519b1