From 040070add7ea35414aff8d61e4fe27a9afdec0e0 Mon Sep 17 00:00:00 2001 From: Ghanshyam Mann Date: Thu, 10 Oct 2024 21:04:00 -0700 Subject: [PATCH] Migrate tempest jobs to Ubuntu Noble (24.04) As per 2025.1 cycle testing runtime and community goal[1] we need to migrate upstream CI/CD to Ubuntu Noble(24.04). Most of the Tempest jobs will be migrate automatically once devstack base job start running on Noble(Depends-On). As we need to run at least one job on Ubuntu Jammy(22.04), I am adding a new job tempest-full-ubuntu-jammy. Few job like tempest-full-multinode-py3 and plugin sanity job needs to override the nodeset. multinode job needs to run on Jammy till stable/2024.2 and on Noble from master (2025.1) onwards. Stable branch jobs testing stable branch needs to keep running on their supported distro version. Also bump the autopep8 to 2.1.0 as older version does not work on python 3.12 and fail with error: "ModuleNotFoundError: No module named 'lib2to3'". - https://github.com/hhatto/autopep8/issues/581 To resolve the deps of autopep8 2.1.0, I need to bump the hacking to 7.0.0 (this gives flake8 7.1.1 and pycodestyl>2.12 which is needed by autopep8 2.1.0) Depends-On: https://review.opendev.org/c/openstack/devstack/+/931697 Depends-On: https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/932155 [1] https://governance.openstack.org/tc/goals/selected/migrate-ci-jobs-to-ubuntu-noble.html Change-Id: If4bf5e8f8c663933d70349aa8ddb45c28e8e558b --- test-requirements.txt | 2 +- tox.ini | 4 ++-- zuul.d/integrated-gate.yaml | 31 ++++++++++++++++++++++++------- zuul.d/project.yaml | 8 ++++++++ zuul.d/stable-jobs.yaml | 20 ++++++++++++++++++++ zuul.d/tempest-specific.yaml | 2 +- 6 files changed, 56 insertions(+), 11 deletions(-) diff --git a/test-requirements.txt b/test-requirements.txt index bd4d77291f..b9259217db 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,4 +1,4 @@ -hacking>=6.1.0,<6.2.0 +hacking>=7.0.0,<7.1.0 coverage!=4.4,>=4.0 # Apache-2.0 oslotest>=3.2.0 # Apache-2.0 flake8-import-order>=0.18.0,<0.19.0 # LGPLv3 diff --git a/tox.ini b/tox.ini index d9d2bad83b..0fbc252864 100644 --- a/tox.ini +++ b/tox.ini @@ -387,14 +387,14 @@ commands = [testenv:pep8] deps = {[testenv]deps} - autopep8 + autopep8>=2.1.0 commands = autopep8 --exit-code --max-line-length=79 --experimental --diff -r tempest setup.py flake8 {posargs} check-uuid [testenv:autopep8] -deps = autopep8 +deps = autopep8>=2.1.0 commands = {toxinidir}/tools/format.sh diff --git a/zuul.d/integrated-gate.yaml b/zuul.d/integrated-gate.yaml index fb0829768f..a9aa3846fe 100644 --- a/zuul.d/integrated-gate.yaml +++ b/zuul.d/integrated-gate.yaml @@ -255,10 +255,10 @@ - job: name: tempest-multinode-full-py3 parent: tempest-multinode-full-base - nodeset: openstack-two-node-jammy - # This job runs on ubuntu Jammy and after unmaintained/zed. + nodeset: openstack-two-node-noble + # This job runs on ubuntu Noble from 2025.1 onwards. branches: - regex: ^.*/(victoria|wallaby|xena|yoga|zed)$ + regex: ^.*/(victoria|wallaby|xena|yoga|zed|2023.1|2023.2|2024.1|2024.2)$ negate: true vars: # NOTE(gmann): Default concurrency is higher (number of cpu -2) which @@ -267,8 +267,6 @@ # oom issue, setting the concurrency to 4 in this job. tempest_concurrency: 4 tempest_set_src_dest_host: true - devstack_localrc: - USE_PYTHON3: true devstack_plugins: neutron: https://opendev.org/openstack/neutron devstack_services: @@ -277,8 +275,6 @@ br-int-flows: true group-vars: subnode: - devstack_localrc: - USE_PYTHON3: true devstack_services: br-ex-tcpdump: true br-int-flows: true @@ -344,6 +340,27 @@ devstack_localrc: ENABLE_VOLUME_MULTIATTACH: true +# TODO(gmann): As per the 2025.1 testing runtime, we need to run at least +# one job set on Jammy. These jammy job can be removed in the next +# cycle(2025.2). +- job: + name: tempest-full-ubuntu-jammy + description: This is tempest-full python3 job on Ubuntu Jammy(22.04) + parent: tempest-full-py3 + nodeset: openstack-single-node-jammy + +- job: + name: tempest-multinode-full-ubuntu-jammy + description: This is tempest-multinode-full-py3 python3 job on Ubuntu Jammy(22.04) + parent: tempest-multinode-full-py3 + nodeset: openstack-two-node-jammy + +- job: + name: tempest-extra-tests-ubuntu-jammy + description: This is tempest-extra-tests python3 job on Ubuntu Jammy(22.04) + parent: tempest-extra-tests + nodeset: openstack-single-node-jammy + - job: name: tempest-cinder-v2-api parent: devstack-tempest diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index a7641a6fec..f66b3e4bb6 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -27,6 +27,14 @@ - ^.gitignore$ - ^.gitreview$ - ^.mailmap$ + # NOTE(gmann): Running jobs on Jammy as per the additional testing + # for 2025.2 cycle and testing these in check pipeline only is enough. + - tempest-full-ubuntu-jammy: + irrelevant-files: *tempest-irrelevant-files + - tempest-multinode-full-ubuntu-jammy: + irrelevant-files: *tempest-irrelevant-files + - tempest-extra-tests-ubuntu-jammy: + irrelevant-files: *tempest-irrelevant-files - tempest-extra-tests: irrelevant-files: *tempest-irrelevant-files - glance-multistore-cinder-import: diff --git a/zuul.d/stable-jobs.yaml b/zuul.d/stable-jobs.yaml index efa771e7fa..5785ec61e2 100644 --- a/zuul.d/stable-jobs.yaml +++ b/zuul.d/stable-jobs.yaml @@ -87,6 +87,26 @@ # Enable horizon so that we can run horizon test. horizon: true +- job: + name: tempest-multinode-full-py3 + parent: tempest-multinode-full + nodeset: openstack-two-node-jammy + # This job runs on Jammy and supposed to run until 2024.2. + branches: + - ^.*/2023.1 + - ^.*/2023.2 + - ^.*/2024.1 + - ^.*/2024.2 + vars: + devstack_plugins: + neutron: https://opendev.org/openstack/neutron + devstack_services: + neutron-trunk: true + group-vars: + subnode: + devstack_localrc: + USE_PYTHON3: true + - job: name: tempest-multinode-full-py3 parent: tempest-multinode-full diff --git a/zuul.d/tempest-specific.yaml b/zuul.d/tempest-specific.yaml index 296682efa7..deb41578c4 100644 --- a/zuul.d/tempest-specific.yaml +++ b/zuul.d/tempest-specific.yaml @@ -76,7 +76,7 @@ parent: tox description: | Run tempest plugin sanity check script using tox. - nodeset: ubuntu-jammy + nodeset: ubuntu-noble vars: tox_envlist: plugin-sanity-check timeout: 5000