CI: Move off CentOS 8

This is a combination of 3 commits.

========================================

CI: Move probe tests to centos 9 stream

Pin selenium to 3.x for now, until we can run down the issues with 4.x

========================================

CI: Move off CentOS 8

Remove swift-tox-py36-centos-8-stream job entirely.

Move the following jobs to CentOS 9:

  - swift-tox-func-s3api-ceph-s3tests-tempauth
  - swift-tox-func-s3api-tests-tempauth
  - swift-multinode-rolling-upgrade, as well as the other rolling
    upgrade jobs

Remove the swift-multinode-rolling-upgrade-victoria job, as py39
support (required for CentOS 9) was not added until wallaby.

========================================

CI: Migrate CentOS Stream 8 FIPS job to CentOS Stream 9
(cherry picked from commit 6fd031055c)

========================================

Conflicts:
  .zuul.yaml

NOTE(elod.illes): this patch is backported to unmaintained/yoga as
CentOS Stream 8 is EOL and centos-8-stream nodeset was removed from
Zuul and it gives a config error: 'The nodeset "centos-8-stream" was
not found.' Besides, official Yoga runtimes [1] contains CentOS Stream 9
and python 3.9.

[1] https://governance.openstack.org/tc/reference/runtimes/yoga.html

Related-Change: I596415d17f77f48a6e8a63a61b734a8ca0865847
Change-Id: I4f6b9c07af7bc768654f1a5d0c66b048e0f2c9c1
(cherry picked from commit 2032fb214e)
(cherry picked from commit 9fa1b7edec)
This commit is contained in:
Tim Burke 2024-06-04 08:58:19 -07:00 committed by Elod Illes
parent 11fd2ec0f6
commit 1a18d3c16b
4 changed files with 63 additions and 56 deletions

View File

@ -45,11 +45,6 @@
NOSE_COVER_HTML_DIR: '{toxinidir}/cover' NOSE_COVER_HTML_DIR: '{toxinidir}/cover'
post-run: tools/playbooks/common/cover-post.yaml post-run: tools/playbooks/common/cover-post.yaml
- job:
name: swift-tox-py36-centos-8-stream
parent: swift-tox-py36
nodeset: centos-8-stream
- job: - job:
name: swift-tox-py37 name: swift-tox-py37
parent: swift-tox-base parent: swift-tox-base
@ -151,22 +146,22 @@
python_version: 3.8 python_version: 3.8
- job: - job:
name: swift-tox-func-py36-centos-8-stream name: swift-tox-func-py39-centos-9-stream
parent: swift-tox-func-py38 parent: swift-tox-func-py38
nodeset: centos-8-stream nodeset: centos-9-stream
vars: vars:
bindep_profile: test py36 bindep_profile: test py39
python_version: 3.6 python_version: 3.9
- job: - job:
name: swift-tox-func-encryption-py36-centos-8-stream name: swift-tox-func-encryption-py39-centos-9-stream
parent: swift-tox-func-py36-centos-8-stream parent: swift-tox-func-py39-centos-9-stream
vars: vars:
tox_envlist: func-encryption-py3 tox_envlist: func-encryption-py3
- job: - job:
name: swift-tox-func-ec-py36-centos-8-stream name: swift-tox-func-ec-py39-centos-9-stream
parent: swift-tox-func-py36-centos-8-stream parent: swift-tox-func-py39-centos-9-stream
vars: vars:
tox_envlist: func-ec-py3 tox_envlist: func-ec-py3
@ -282,15 +277,15 @@
SERVICE_HOST: "" SERVICE_HOST: ""
- job: - job:
name: swift-probetests-centos-8-stream name: swift-probetests-centos-9-stream
parent: unittests parent: unittests
nodeset: centos-8-stream nodeset: centos-9-stream
description: | description: |
Setup a SAIO dev environment and run Swift's probe tests Setup a SAIO dev environment and run Swift's probe tests
under Python 3. under Python 3.
timeout: 7200 timeout: 7200
vars: vars:
bindep_profile: test py36 bindep_profile: test py39
pre-run: pre-run:
- tools/playbooks/common/install_dependencies.yaml - tools/playbooks/common/install_dependencies.yaml
- tools/playbooks/saio_single_node_setup/setup_saio.yaml - tools/playbooks/saio_single_node_setup/setup_saio.yaml
@ -299,12 +294,12 @@
post-run: tools/playbooks/probetests/post.yaml post-run: tools/playbooks/probetests/post.yaml
- job: - job:
name: swift-probetests-centos-8-stream-arm64 name: swift-probetests-centos-9-stream-arm64
parent: swift-probetests-centos-8-stream parent: swift-probetests-centos-9-stream
nodeset: nodeset:
nodes: nodes:
- name: swift-centos-8-stream-arm64 - name: swift-centos-9-stream-arm64
label: centos-8-stream-arm64 label: centos-9-stream-arm64
description: | description: |
Setup a SAIO dev environment and run Swift's probe tests Setup a SAIO dev environment and run Swift's probe tests
under Python 3 on top of arm64 architecture. under Python 3 on top of arm64 architecture.
@ -312,7 +307,7 @@
- job: - job:
name: swift-func-cors name: swift-func-cors
parent: swift-probetests-centos-8-stream parent: swift-probetests-centos-9-stream
description: | description: |
Setup a SAIO dev environment and run Swift's CORS functional tests Setup a SAIO dev environment and run Swift's CORS functional tests
timeout: 1200 timeout: 1200
@ -325,18 +320,18 @@
post-run: tools/playbooks/cors/post.yaml post-run: tools/playbooks/cors/post.yaml
- nodeset: - nodeset:
name: swift-five-nodes-centos8 name: swift-five-nodes-centos-9
nodes: nodes:
- name: test-runner1 - name: test-runner1
label: centos-8-stream label: centos-9-stream
- name: proxy1 - name: proxy1
label: centos-8-stream label: centos-9-stream
- name: account1 - name: account1
label: centos-8-stream label: centos-9-stream
- name: container1 - name: container1
label: centos-8-stream label: centos-9-stream
- name: object1 - name: object1
label: centos-8-stream label: centos-9-stream
groups: groups:
- name: test-runner - name: test-runner
nodes: nodes:
@ -368,10 +363,12 @@
- job: - job:
name: swift-multinode-rolling-upgrade name: swift-multinode-rolling-upgrade
parent: multinode parent: multinode
nodeset: swift-five-nodes-centos8 nodeset: swift-five-nodes-centos-9
description: | description: |
Build a 4 node swift cluster and run functional tests Build a 4 node swift cluster and run functional tests
timeout: 5400 timeout: 5400
vars:
bindep_profile: test py39
pre-run: pre-run:
- tools/playbooks/multinode_setup/pre.yaml - tools/playbooks/multinode_setup/pre.yaml
- tools/playbooks/common/install_dependencies.yaml - tools/playbooks/common/install_dependencies.yaml
@ -381,12 +378,6 @@
run: tools/playbooks/multinode_setup/run.yaml run: tools/playbooks/multinode_setup/run.yaml
post-run: tools/playbooks/probetests/post.yaml post-run: tools/playbooks/probetests/post.yaml
- job:
name: swift-multinode-rolling-upgrade-victoria
parent: swift-multinode-rolling-upgrade
vars:
previous_swift_version: origin/unmaintained/victoria
- job: - job:
name: swift-multinode-rolling-upgrade-wallaby name: swift-multinode-rolling-upgrade-wallaby
parent: swift-multinode-rolling-upgrade parent: swift-multinode-rolling-upgrade
@ -501,32 +492,32 @@
vars: *swift_image_vars_py3 vars: *swift_image_vars_py3
- job: - job:
name: swift-tox-func-py36-centos-8-stream-fips name: swift-tox-func-py39-centos-9-stream-fips
parent: swift-tox-func-py36-centos-8-stream parent: swift-tox-func-py39-centos-9-stream
voting: false voting: false
description: | description: |
Functional testing on a FIPS enabled Centos 8 system Functional testing on a FIPS enabled Centos 9 system
vars: vars:
nslookup_target: 'opendev.org' nslookup_target: 'opendev.org'
enable_fips: true enable_fips: true
- job: - job:
name: swift-tox-func-encryption-py36-centos-8-stream-fips name: swift-tox-func-encryption-py39-centos-9-stream-fips
parent: swift-tox-func-encryption-py36-centos-8-stream parent: swift-tox-func-encryption-py39-centos-9-stream
voting: false voting: false
description: | description: |
Functional encryption testing on a FIPS enabled Functional encryption testing on a FIPS enabled
Centos 8 system Centos 9 system
vars: vars:
nslookup_target: 'opendev.org' nslookup_target: 'opendev.org'
enable_fips: true enable_fips: true
- job: - job:
name: swift-tox-func-ec-py36-centos-8-stream-fips name: swift-tox-func-ec-py39-centos-9-stream-fips
parent: swift-tox-func-ec-py36-centos-8-stream parent: swift-tox-func-ec-py39-centos-9-stream
voting: false voting: false
description: | description: |
Functional EC testing on a FIPS enabled Centos 8 system Functional EC testing on a FIPS enabled Centos 9 system
vars: vars:
nslookup_target: 'opendev.org' nslookup_target: 'opendev.org'
enable_fips: true enable_fips: true
@ -540,7 +531,7 @@
jobs: jobs:
- swift-tox-py38-arm64 - swift-tox-py38-arm64
- swift-tox-py39-arm64 - swift-tox-py39-arm64
- swift-probetests-centos-8-stream-arm64 - swift-probetests-centos-9-stream-arm64
- swift-tox-func-encryption-py38-arm64 - swift-tox-func-encryption-py38-arm64
- swift-tox-func-py38-arm64 - swift-tox-func-py38-arm64
@ -555,14 +546,14 @@
- swift-jobs-arm64 - swift-jobs-arm64
check: check:
jobs: jobs:
- swift-tox-func-py36-centos-8-stream-fips: - swift-tox-func-py39-centos-9-stream-fips:
irrelevant-files: &functest-irrelevant-files irrelevant-files: &functest-irrelevant-files
- ^(api-ref|doc|releasenotes)/.*$ - ^(api-ref|doc|releasenotes)/.*$
- ^test/(cors|probe)/.*$ - ^test/(cors|probe)/.*$
- ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$ - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
- swift-tox-func-encryption-py36-centos-8-stream-fips: - swift-tox-func-encryption-py39-centos-9-stream-fips:
irrelevant-files: *functest-irrelevant-files irrelevant-files: *functest-irrelevant-files
- swift-tox-func-ec-py36-centos-8-stream-fips: - swift-tox-func-ec-py39-centos-9-stream-fips:
irrelevant-files: *functest-irrelevant-files irrelevant-files: *functest-irrelevant-files
- swift-build-image: - swift-build-image:
irrelevant-files: &docker-irrelevant-files irrelevant-files: &docker-irrelevant-files
@ -665,7 +656,7 @@
- swift-tox-func-encryption-py38 - swift-tox-func-encryption-py38
- swift-tox-func-ec-py38 - swift-tox-func-ec-py38
- swift-func-cors - swift-func-cors
- swift-probetests-centos-8-stream: - swift-probetests-centos-9-stream:
irrelevant-files: *probetest-irrelevant-files irrelevant-files: *probetest-irrelevant-files
- swift-dsvm-functional: - swift-dsvm-functional:
irrelevant-files: *functest-irrelevant-files irrelevant-files: *functest-irrelevant-files
@ -684,11 +675,9 @@
jobs: jobs:
- swift-tox-py37 - swift-tox-py37
- swift-tox-py38 - swift-tox-py38
- swift-tox-py36-centos-8-stream - swift-tox-func-py39-centos-9-stream
- swift-tox-func-py36-centos-8-stream - swift-tox-func-encryption-py39-centos-9-stream
- swift-tox-func-encryption-py36-centos-8-stream - swift-tox-func-ec-py39-centos-9-stream
- swift-tox-func-ec-py36-centos-8-stream
- swift-multinode-rolling-upgrade-victoria
- swift-multinode-rolling-upgrade-wallaby - swift-multinode-rolling-upgrade-wallaby
- swift-multinode-rolling-upgrade-xena - swift-multinode-rolling-upgrade-xena
- swift-multinode-rolling-upgrade-master: - swift-multinode-rolling-upgrade-master:

View File

@ -24,13 +24,13 @@
name: pip<21 name: pip<21
extra_args: --upgrade extra_args: --upgrade
- name: install rsync-daemon - CentOS 8 - name: install rsync-daemon - CentOS 8, 9
package: package:
name: rsync-daemon name: rsync-daemon
state: present state: present
when: when:
- ansible_facts['distribution'] == "CentOS" - ansible_facts['distribution'] == "CentOS"
- ansible_facts['distribution_major_version'] == "8" - ansible_facts['distribution_major_version'] != "7"
- name: install python modules with pip - name: install python modules with pip
pip: name={{ item }} state=present extra_args='--upgrade' pip: name={{ item }} state=present extra_args='--upgrade'

View File

@ -5,9 +5,15 @@
yum: yum:
name: xorg-x11-server-Xvfb name: xorg-x11-server-Xvfb
state: present state: present
# Note that more recent branches would require boto3, which would
# (eventually) enforce a similar version cap on urllib3
- name: cap urllib3
pip:
name: 'urllib3<2'
state: present
- name: install selenium - name: install selenium
pip: pip:
name: selenium name: 'selenium<4'
state: present state: present
- name: install firefox - name: install firefox
yum: yum:

View File

@ -25,6 +25,11 @@ function is_rhel8 {
cat /etc/*release | grep -q -e "Red Hat" -e "CentOS" -e "CloudLinux" && \ cat /etc/*release | grep -q -e "Red Hat" -e "CentOS" -e "CloudLinux" && \
cat /etc/*release | grep -q 'release 8' cat /etc/*release | grep -q 'release 8'
} }
function is_rhel9 {
[ -f /usr/bin/dnf ] && \
cat /etc/*release | grep -q -e "Red Hat" -e "CentOS" -e "CloudLinux" && \
cat /etc/*release | grep -q 'release 9'
}
if is_rhel7; then if is_rhel7; then
@ -40,3 +45,10 @@ if is_rhel8; then
sudo dnf install -y centos-release-openstack-xena sudo dnf install -y centos-release-openstack-xena
sudo dnf install -y liberasurecode-devel sudo dnf install -y liberasurecode-devel
fi fi
if is_rhel9; then
# Install CentOS OpenStack repos so that we have access to some extra
# packages.
sudo dnf install -y centos-release-openstack-yoga
sudo dnf install -y liberasurecode-devel
fi