Design
From train release onwards, We moved to openstack-ansible-os_tempest ansible role for running tempest in TripleO CI Jobs in periodic pipeline, check and gate jobs.
It also leads to deprecation of validate-tempest.
The only bits which is used from validate-tempest TQE role is global skip list shared across all jobs.
It means if a tempest tests starts failing, we file a bug then add the tests to the global skip lists.
By Starting of Ussuri Release, Promotion pipeline got little change.
Now we have:
Component Pipeline
Periodic Pipeline
Upstream Check and Gate Pipeline
Now, Since we have a global skip list, if a new failing tests goes to global skip list. It is going to get skipped at all pipeline including integration, periodic and upstream
(check and gate pipeline).
The drawback of global skip list is that we might not able to test a particular feature or scenario at different pipeline leading to faulty content delivery in Upstream and we might
miss unknown issues.
The current skip list has following schema:
known_failures:
- test: 'neutron_tempest_plugin.scenario.test_dns_integration.DNSIntegrationTests'
reason: 'Remove this blacklist when OVS 2.12 will be released and https://patchwork.ozlabs.org/patch/1102717/ merged.'
lp: 'https://bugs.launchpad.net/tripleo/+bug/1832166'
And
- test: 'tempest.api.network.test_networks.NetworksTest.test_external_network_visibility'
reason: 'Running on undercloud'
undercloud: true
Goal is to skip to avoid skipping tests at global level.
Since any pipeline is collection of a set of jobs and here is the current skip list schema:
known_failures:
- test: 'neutron_tempest_plugin.scenario.test_dns_integration.DNSIntegrationTests'
reason: 'Remove this blacklist when OVS 2.12 will be released and https://patchwork.ozlabs.org/patch/1102717/ merged.'
lp: 'https://bugs.launchpad.net/tripleo/+bug/1832166'
And
- test: 'tempest.api.network.test_networks.NetworksTest.test_external_network_visibility'
reason: 'Running on undercloud'
undercloud: true
So we can add a new key job_name in the above skip list schema.
So the new schema will be:
known_failures:
- test: 'neutron_tempest_plugin.scenario.test_dns_integration.DNSIntegrationTests'
reason: 'Remove this blacklist when OVS 2.12 will be released and https://patchwork.ozlabs.org/patch/1102717/ merged.'
lp: 'https://bugs.launchpad.net/tripleo/+bug/1832166'
job_name: [<list of job name>] # Note: Job name will be a list.
There might be a case where we want to skip a test based on tempest conf feature enabled or disabled flags.
Then there schema will be:
known_failures:
- test: 'neutron_tempest_plugin.scenario.test_dns_integration.DNSIntegrationTests'
reason: 'Remove this blacklist when OVS 2.12 will be released and https://patchwork.ozlabs.org/patch/1102717/ merged.'
lp: 'https://bugs.launchpad.net/tripleo/+bug/1832166'
feature_skip: [tempest_tempest_conf_flags]
- test: 'telemetry_tempest_plugin.scenario.test_telemetry_integration.TestTelemetryIntegration'
reason: 'telemetry tests failed due to One or more ports have an IP allocation from this subnet'
lp: 'https://bugs.launchpad.net/tripleo/+bug/1792862'
- test: 'tempest.api.network.test_networks.NetworksTest.test_external_network_visibility'
reason: 'Running on undercloud'
undercloud: true
jobs:
- tripleo-bla-bla-bla
- tripleo-ble-ble-ble
releases:
- master
- newton
- queens
Define the YAML file structure
- test: 'test to be skipped'
installers:
- tripleo
releases:
- release1
lp: launchpad
bz: bugzilla
reason: reason to skip on release 1
- release2
lp: launchpad
bz: bugzilla
reason: reason to skip on release 2
jobs:
- job1
- job2
Where:
start the cli command
Consolidate the yaml file per release in one single file
create ansible collection/module
hook with os_tempest or fs052 job
install worked fine..
validate worked
the skip has the right test listed
[rlandy@localhost openstack-tempest-skiplist]$ tempest-skip list --file roles/validate-tempest/vars/tempest_skip.yml --release master | grep volumes_luks │························
| barbican_tempest_plugin.tests.scenario.test_volume_encryption.VolumeEncryptionTest.test_encrypted_cinder_volumes_luks |
this should be highlighted https://docs.openstack.org/openstack-tempest-skiplist/latest/listyaml/listyaml.html
add a test to skip via the cli
no clue, no doc
Is one meant to add a skip via the tool or by hand.. I thought the tool
same question for removing tests… is the tool only informative or will it remove tests that you select. How does one get into that select menu btw?
note that you need to add check jobs and periodic jobs separately. It's a complete name match. (that is what I missed).
If the file should only be managed by the tool, we should add a note to the file saying so. Most files managed by tools have a note telling you not to edit them manually.