This sets new tempest config options for octavia, including the setting
of log_user_roles=False, which allows tests to avoid the optional
list_role_assignments call that was resulting in 403 Forbidden for all
octavia tests.
Heat charm when configured with traefik-route
can have multiple loadbalancers (for heat-api
and heat-api-cfn).
So remove the assertion in wait_for_traefik on
number of loadbalancers. Check on number of units
against number of servers should be sufficient.
Traefik config file names are of format
juju_ingress_ingress_<id>_<app>.yaml for
ingress interface. However if traefik_route
interface is used, the file name format
is juju_ingress_traefik-route_<id>_<app>.yamlwq
In tempest tests, wait_for_traefik, change the
filename format to support both ingress and
traefik-route interfaces.
The serial config can be set to True to add the --serial flag to the
tempest run. This appears to be useful with the current state of
serverstack and fixing tests that fail due to "Bad router request:
Router already has a port on subnet <subnet-uuid>."
Recent test runs have shown that the current number of retries is
not enough and traefik has still not updated its config. This PR
increases the number of retries in the hope that it will be
enough.
Add tactical work around for traefik readyness. Traefik takes
sometime to process changes to load balancer configuration.
Traefik has an api but it is turned off by default and currently
the charm does not expose a way to enable it. So, this change
looks at the traefik config on disk to check if it has the
correct number if units.
Tempest will by default run with a concurrency matching the
number of cores on the test runner.
When running on a workstation, it is likely that the default
concurrency will be too high for the scale of deployed workload.
Signed-off-by: Frode Nordahl <frode.nordahl@canonical.com>
Traefik might take some time to update its configuration,
and switch multiple times between active and maintenance for the duration.
Waiting only for tests is not enough. This change introduce a wait
for endpoints to be ready.
Moreover, at glance call to setup the image might fail because of this
very reason, add a retry on render_tempest_config_keystone_v3.
The magnum section is used to declare configuration specific information
used by magnum-tempest-plugin
The keys used are:
- nic_id, to indicate the external network
- image_id, to indicate the fedora-coreos image to be used
- flavor_id, the flavor id to use when creating clusters
- dns_nameserver, the upstream dns server IP.
- network_driver, the network driver to test (flannel).
- labels, to pass a custom (local) image registry.
- insecure_registry, to mark the custom image registry as http (instead
of https).
OpenStack Magnum relies on specific versions of Fedora CoreOS, this
patch addresses this maintaining a map of images per release according
to the upstream documentation[0]
The images are expected to be stored in the object store pointed out by
TEST_SWIFT_IP[1] environment variable in a container named 'magnum'. A
bash script to upload images can be found at
./zaza/openstack/charm_tests/magnum/upload_fedora_coreos_images.sh
[0] https://docs.openstack.org/magnum/latest/user/index.html#supported-versions
[1] https://github.com/openstack-charmers/zosci-config/pull/262
Add test class that runs tempest in miminal mode. This is useful
for testing that the OpenStack apis are responding but there are
components not configured like an external network. In addtion
some missing doc strings were added and support for neutron
tempest configuration pre ussuri removed as there is a branch
for that.
By default the provider that will be used by tempest is "octavia" which
in Octavia's default configuration is an alias of amphora, although in a
Charmed OpenStack is not.
This change sets the provider to be used by octavia-tempest-plugin to
amphora.
If the V3 volume endpoint is available, use it for tempest testing.
The V2 volume endpoint is removed in OpenStack Xena, so this allows
us to use the latest available endpoint.
* Use juju model as workspace and store in home
The current juju model will now be used as the tempest workspace name.
Additionally, all workspaces will be stored in ~/.tempest/<workspace>.
This patch also introduces a new option 'keep-workspace' that can be
specified along with other tempest options to keep the workspace after
tempest test execution. It defaults to False.
Also minor adjustment to smoke option to test boolean value.