Commit Graph

34 Commits

Author SHA1 Message Date
Ghanshyam Mann 9a1be7794b Pin tox<4.0.0 for <=stable/zed branch testing
Tox 4.0.0 has some incompatible changes, epecially more
strict on allowlist_externals. Tempest recently changed
allowlist_externals not to be *[1] causing the failure
on jobs where lib/tempest failing to run the tempest
as command in virtual env.

----------
venv: commands[0]> tempest verify-config -uro /tmp/tmp.qH5KgJHTF4
venv: failed with tempest is not allowed, use allowlist_externals to allow it
------

We do not need to test/fix the <=stable/zed branches with tox 4.0.0
and pinning them with the compatible tox version of the time stable
brnaches were releaased is better way.

This commit proposes:
1. Pinning the tox<4.0.0 for <=stable/ze branches testing
2. Workaround to unblock the master gate by pinning it <4.0.0 but
we should make our testing compatible with tox 4.0.0 soon.

Depends-On: https://review.opendev.org/c/openstack/devstack/+/867066

Related-Bug: #1999183

[1] https://review.opendev.org/c/openstack/tempest/+/865314 devstack based job started failing to run tempest command on venv.

Change-Id: I9a138af94dedc0d8ce5a0d519d75779415d3c30b
2022-12-09 02:55:08 +00:00
Dan Smith f7d87aa433 Capture QEMU core dumps when possible
Some of the hardest-to-debug issues are qemu crashes deep in a nova
workflow that can't be reproduced locally. This adds a post task to
the playbook so that we capture the most recent qemu core dump, if
there is one.

Change-Id: I48a2ea883325ca920b7e7909edad53a9832fb319
2022-06-03 07:54:35 -07:00
Dan Smith c2772c2984 Gather performance data after tempest
This makes us gather a bunch of consistent statistics after we run
tempest that can be use to measure the impact of a given change. These
are stable metrics such as "number of DB queries made" and "how much
memory is each service using after a tempest run."

Note that this will always run after devstack to generate the JSON
file, but there are two things that control its completeness:

 - MYSQL_GATHER_PERFORMANCE must be enabled to get per-db stats
 - Unless tls-proxy is enabled, we will only get API stats for keystone

Change-Id: Ie3b1504256dc1c9c6b59634e86fa98494bcb07b1
2022-04-20 13:07:22 -07:00
Brian Haley 2bb62b43bf Decrease MTU to account for IPv6 header
(MTU - 50) only supports VxLAN over IPv4, decrease it
to support IPv6 as well, which is 20 bytes larger.

Change-Id: I0cf258770f628c1b4fb590bd274b5433fbcc1450
2020-11-06 17:34:53 -05:00
Luigi Toscano 906d824a19 Fix: do not lose the tox_environment value in func tests
The current code always overrides tox_environment when running
functional tests, but the correct behavior is to add
the discovered environment variables to tox_environments,
while keeping the user-specified value for it.

The current behavior breaks the devstack-tox-functional children
jobs, like openstacksdk-functional-devstack-ironic, which set
tox_environment.

Change-Id: I5dc9054a1495ca0ef7745c08316441ab153956f4
2020-10-11 21:59:07 +02:00
Luigi Toscano 6fba3fdfa1 New get-devstack-os-environment role
The role reads the OS_* variables set by devstack through openrc
for the specified user and project and exports them as
the os_env_vars fact. It is meant to be used as a porting aid
for the jobs of the non-unified *clients only.

This is useful to run functional tests against the generated
environment. A slightly less generic version of this role
is currently used by python-cinderclient and python-novaclient
(get-os-environment).

In order to make this more useful, call it from
devstack-tox-functional and derived jobs. The role
execution is disabled by default and it can be enabled
by setting openrc_enable_export: true.

Change-Id: I15f5a187dbc54c82e8f4a08b4bb58d56e0d66961
2020-08-18 22:29:50 +02:00
Mohammed Naser 5ae8a3504c Drop DEVSTACK_GATE_FEATURE_MATRIX
DEVSTACK_GATE_FEATURE_MATRIX seems to be an old legacy thing that
is no longer being used.  It currently prevents using the jobs in
openstack/devstack without adding openstack/devstack-gate for the
role.

Change-Id: Iab9b4862c01043d2c158398bac4b3b289a0adba0
2020-03-17 20:54:07 -04:00
Luigi Toscano c67a689fe5 Ensure that the zuul home can be traversed
The default permissions for the zuul home directory
are not the same in the various distributions.
As /home/zuul contains the sources, a 700 default may be
problematic when accessing those files, so make sure
that the executable permissions are set.

Closes-Bug: 1846251
Change-Id: Ic9769e56274d7205844b86d3b5200a6415e4acad
2019-10-01 20:14:22 +02:00
Andrea Frittoli 02bb57bfef Enforce linear strategy for orchestrate-devstack
Document that orchestrate-devstack requires a linear strategy in the
invoking play. Also enforce the strategy in devstack.yaml.

Change-Id: Ia081225ec2be959fc5a4ddfd491f526296a8ca10
2018-03-11 11:17:42 +00:00
Andrea Frittoli 5e714d3308 Fix multinode mode for devstack
Extend the devstack job so that it can support both single and multinode
cases.  Multinode mode require extra settings in devstack configuration,
some of which as subnode specific, some controller specific.

Also keep a simple devstack-multinode job defined for now so we can run
a multinode job in devstack gate, until the full tempest multinode job
is ready to match the old
gate-tempest-dsvm-neutron-multinode-full-ubuntu-xenial-nv.

Fixing multinode also requires sharing the CA configuration between
controller and peers, overlay network configuration for communication
between virtual machines and running discover_hosts for nova after the
subnode has been setup.

The extra orchestration required for multinode is encoded in a
dedicated role to allow for jobs in other repos to re-use it.

Change-Id: I2dcbd9bdb401860820e655d97aa3c4775af2827f
2018-03-07 12:47:55 +00:00
Zuul 3f2f418fbf Merge "Add Zuul v3 native unit-tests" 2018-02-12 23:24:54 +00:00
Andreas Jaeger 838b833b63 Add Zuul v3 native unit-tests
Add new job to replace legacy-devstack-unit-tests.

Change-Id: I4fe59b1954514a7146a4412e3103a0a05a9250f2
2018-02-04 21:42:00 +01:00
Andrea Frittoli (andreaf) 63171eeae2 Move extensions_to_txt to the job defintion
Move extensions_to_txt to the job defintion so that it may be
extended by descendant jobs.

Depends-on: https://review.openstack.org/540485/

Change-Id: I6e9009faa1451698ed781ce1ffdd9f22c97daa93
2018-02-02 18:45:40 +00:00
Monty Taylor a904caded4
Move zuul_copy_output to be a job variable
The zuul_copy_output variable is designed to be able to be used as
a zuul job variable so that zuul dictionary merging will work. However,
it's currently being set in the playbook rather than as a job variable,
so it's not possible to supplement it in a child job.

Move it to be a job variable. Also remove the wrapping {} as they should
not be needed to make zuul_copy_output a dictionary.

Change-Id: I78c7fed47c2ab868384c74dbff7904d33d510dd9
2018-01-31 14:40:39 -06:00
Zuul 614cab33c4 Merge "Remove hack for ubuntu cloud archive" 2018-01-21 22:08:24 +00:00
Monty Taylor 0b45e2f8e8
Remove hack for ubuntu cloud archive
There is a hack here to set up ubuntu cloud archive, pinning it to
mirror.dfw.rax.openstack.org. The mirror-info role seems to be doing
this correctly now though, so let's remove the hack and let things work
normally.

Change-Id: I283cb3452245b64e9492806f06404b484f21c358
2018-01-18 17:41:04 -06:00
Zuul c5c7d8f37e Merge "Switch to consolidated fetch-subunit-output role" 2018-01-17 20:31:33 +00:00
Zuul 28b4be1861 Merge "Make stackenv file visible" 2018-01-03 23:19:46 +00:00
Monty Taylor 421753f71d
Switch to consolidated fetch-subunit-output role
fetch-testr-output and fetch-stestr-output are being merged.

Change-Id: I00d448c4e6b98a1f504b048c74eff4e110c0b511
Depends-On: I833320cf9a932d8e119645eb798ce0c93d854321
2017-12-20 08:31:15 -06:00
Jens Harbott 49f3cc76bf Make stackenv file visible
The file won't be listed as long as it is called .stackenv.txt.gz, with
this it will be called _stackenv.txt.gz instead.

Change-Id: Ib3b44c287ffb2ec0e48fefef1662a1c02d162657
2017-12-20 08:38:29 +00:00
Andrea Frittoli (andreaf) a2b174168a Stage a number of system type logs
This could be ansiblesed a more, for now more or less the bash code
from d-g wrapped in a role.

Change-Id: Ia7fe40f05ca394da9a65fef6383d72f29a532e2f
2017-12-18 18:21:24 +00:00
Andrea Frittoli (andreaf) 5a9872a9b9 Stage openstack config files
Stage config files from openstack and all projects used by the
devstack run.

Change-Id: I99f1bc71856b0da7fc5b438d13d4f508d2341e44
2017-12-18 18:21:24 +00:00
Andrea Frittoli (andreaf) e6b0169a02 Stage libvirt logs and sudoers
Stage libvirt logs and sudoers configuration.

Change-Id: I46112c52f05c6015a9f397eda130404beeb5e899
2017-12-18 18:21:24 +00:00
Andrea Frittoli (andreaf) d04658eb50 Stage rabbitmq and DB logs
Stage rabbitmq and DB logs so they are copied to logs.o.o

Change-Id: Ica8a86c2649b2871f366e3ca48a8b47f455879bc
2017-12-18 18:21:24 +00:00
Andrea Frittoli (andreaf) 9c977b56eb Stage apache logs
Add apache logs to the list of things we stage.

Change-Id: I9d3d8e710ae87a71b74f96538cad6fad58dbef79
2017-12-18 18:21:24 +00:00
Andrea Frittoli (andreaf) b7f8624bed Setup devstack-early log
The whole devstack log is written into the console output
(job-output.txt) and into devstacklog.txt.

Remove it from job-output and add a devstack-early log file (same as in
legacy job) that includes all the output of stack.sh.

Make sure the log file is pulled into the stage folder so that it will
end up on logs.o.o.

Change-Id: Ia7c1d8fe5cc03d15f455c6e62ebf4a5f6d62ab1f
2017-12-18 18:21:24 +00:00
Andrea Frittoli (andreaf) 71bf831a90 Add a few more devstack confs and logs
Add localrc for places where it may be still used.
Collect verify_tempest_conf.

Change-Id: I733c6472e8452ed6fc04c6de1c170713812a436f
2017-12-18 18:21:24 +00:00
Andrea Frittoli (andreaf) 290d9d87f4 Use stage_dir instead of /opt/stack
Historically we have collected devstack logs under /opt/stack.
Stop doing that and collect them in the stage_dir instead, so that
once the base job logs pull service comes around we are ready for it.

This add the benefit of writing things into a folder which is
already owned by the ansible user (ansible_user_dir), so we don't
run into issue writing there.

A few logs (devstack log, log summary and dstat) use to show up on
logs.o.o. just because they happened to already be in /opt/stack/logs.
With this change they would be lost, so adding them to post.yaml.

Depends-on: I5ad4dfccbc1389da3afc53f3c866d3475e006db6

Change-Id: Ib4be2f5056c0dc2b776de4a0d18b47b12624be92
2017-12-18 18:21:24 +00:00
Zuul 62af9362aa Merge "Add base jobs for functional tests" 2017-12-14 17:54:59 +00:00
Zuul 8ac838e5e3 Merge "Set the base set of services" 2017-12-14 11:34:40 +00:00
Monty Taylor e1b0c3886b
Add base jobs for functional tests
I keep copy-pasting these to projects from the shade repo. Let's make
some base jobs people can more easily use.

devstack-tox-functional runs devstack and a tox functional environment.

devstack-tox-functional-consumer is the same, but runs devstack in pre.
It's intended for projects for whom patches to the project won't
actually impact the devstack deployment (shade, nodepool, gophercloud
are all examples of such things)

Change-Id: I84de60181cb88574e341ff83cd4857cce241f2dd
2017-12-11 16:13:22 -06:00
Dean Troyer 986cd13a21 Collect devstack config files in post.
Co-Authored-By: yong sheng gong <gong.yongsheng@99cloud.net>
Co-Authored-By: Dean Troyer <dtroyer@gmail.com>
Co-Authored-By: Andrea Frittoli <andrea.frittoli@gmail.com>

Change-Id: Id9ad3be4be25e699f77d6b5a252f046ce8234f45
2017-12-08 17:28:12 +00:00
Andrea Frittoli (andreaf) 7d4446541d Set the base set of services
Use the test-matrix role from devstack-gate to define a base set of
services to be enabled for the controller and compute nodes.

Extend the local conf module to handle the base set of services.

Since the test-matrix defines services for primary and subnode nodes, we
need a multinode job to test that this works. Add a new host group
called subnode that includes the non-controller hosts. Add a new job
that runs devstack on a two nodes environment.

Using service from the test matrix enables swift in the gate, so we need
to set SWIFT_HASH for devstack to work.

Depends-on: Ie36ba0cd7cfcd450b75000a76a64d856f2a83eba
Depends-on: Id9ad3be4be25e699f77d6b5a252f046ce8234f45
Change-Id: I379abf482c89122533324e64fefbff3d5a618a89
2017-12-06 12:46:44 +00:00
Monty Taylor 36ddea31a2 Add devstack base job for zuul v3
This should be managed in the devstack repo, since it's a base job to
run devstack.

Change-Id: Iffe54fbccbccd68db08f79a1b51dd7f76dbff408
Depends-On: Ie2119f24360d56690ffd772b95a9ea6b98dd4a39
2017-10-15 07:17:18 -07:00