diff mbox series

[v2,04/13] tests: Update our CI to use CentOS Stream 9 instead of 8

Message ID 20240412132415.282354-5-thuth@redhat.com (mailing list archive)
State New, archived
Headers show
Series Drop old distros, bump glib and switch to glib URI parsing code | expand

Commit Message

Thomas Huth April 12, 2024, 1:24 p.m. UTC
RHEL 9 (and thus also the derivatives) are available since two years
now, so according to QEMU's support policy, we can drop the active
support for the previous major version 8 now.
Thus upgrade our CentOS Stream container to major version 9 now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/buildtest.yml                    | 16 ++++-----
 .gitlab-ci.d/container-core.yml               |  4 +--
 .../{centos8.docker => centos9.docker}        | 34 +++++++------------
 tests/lcitool/mappings.yml                    | 20 -----------
 tests/lcitool/refresh                         |  2 +-
 tests/vm/centos                               |  4 +--
 6 files changed, 26 insertions(+), 54 deletions(-)
 rename tests/docker/dockerfiles/{centos8.docker => centos9.docker} (82%)

Comments

Daniel P. Berrangé April 15, 2024, 5:12 p.m. UTC | #1
On Fri, Apr 12, 2024 at 03:24:06PM +0200, Thomas Huth wrote:
> RHEL 9 (and thus also the derivatives) are available since two years
> now, so according to QEMU's support policy, we can drop the active
> support for the previous major version 8 now.
> Thus upgrade our CentOS Stream container to major version 9 now.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  .gitlab-ci.d/buildtest.yml                    | 16 ++++-----
>  .gitlab-ci.d/container-core.yml               |  4 +--
>  .../{centos8.docker => centos9.docker}        | 34 +++++++------------
>  tests/lcitool/mappings.yml                    | 20 -----------
>  tests/lcitool/refresh                         |  2 +-
>  tests/vm/centos                               |  4 +--
>  6 files changed, 26 insertions(+), 54 deletions(-)
>  rename tests/docker/dockerfiles/{centos8.docker => centos9.docker} (82%)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


With regards,
Daniel
Daniel P. Berrangé April 17, 2024, 4:15 p.m. UTC | #2
On Fri, Apr 12, 2024 at 03:24:06PM +0200, Thomas Huth wrote:
> RHEL 9 (and thus also the derivatives) are available since two years
> now, so according to QEMU's support policy, we can drop the active
> support for the previous major version 8 now.
> Thus upgrade our CentOS Stream container to major version 9 now.

The second reason for doing this is that Centos Stream 8
will go EOL in about 1 month:

https://blog.centos.org/2023/04/end-dates-are-coming-for-centos-stream-8-and-centos-linux-7/

  "After May 31, 2024, CentOS Stream 8 will be archived
   and no further updates will be provided."

I'm seeking confirmation, but I suspect after that date we
will be unable to build centos8 containers, as the package
repos will likely be archived.

RHEL-8 and other derivatives (Alma Linux, Rocky Linux,
etc) remain actively supported by their respective vendors
/ communities. Only CentOS Stream EOLs.


This has implications for our CI on stable branches. It is
valid for our stable branches to continue targetting the
RHEL-8 family of distros, as a 2 year cutoff in our support
policy is evaluated at time of each given major release.

IOW, cherry-picking this change to switch to CentOS Stream
9 is possibly inappropriate for stable branches.

lcitool supports Alma Linux as target, so we could switch
stable branches to Alma Linux 8 if desired to keep CI
coverage of RHEL-8 family.

Thoughts ?

> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  .gitlab-ci.d/buildtest.yml                    | 16 ++++-----
>  .gitlab-ci.d/container-core.yml               |  4 +--
>  .../{centos8.docker => centos9.docker}        | 34 +++++++------------
>  tests/lcitool/mappings.yml                    | 20 -----------
>  tests/lcitool/refresh                         |  2 +-
>  tests/vm/centos                               |  4 +--
>  6 files changed, 26 insertions(+), 54 deletions(-)
>  rename tests/docker/dockerfiles/{centos8.docker => centos9.docker} (82%)
> 
> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> index cfdff175c3..9f34c650d6 100644
> --- a/.gitlab-ci.d/buildtest.yml
> +++ b/.gitlab-ci.d/buildtest.yml
> @@ -158,9 +158,9 @@ build-system-centos:
>      - .native_build_job_template
>      - .native_build_artifact_template
>    needs:
> -    job: amd64-centos8-container
> +    job: amd64-centos9-container
>    variables:
> -    IMAGE: centos8
> +    IMAGE: centos9
>      CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-vfio-user-server
>        --enable-modules --enable-trace-backends=dtrace --enable-docs
>      TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
> @@ -242,7 +242,7 @@ check-system-centos:
>      - job: build-system-centos
>        artifacts: true
>    variables:
> -    IMAGE: centos8
> +    IMAGE: centos9
>      MAKE_CHECK_ARGS: check
>  
>  avocado-system-centos:
> @@ -251,7 +251,7 @@ avocado-system-centos:
>      - job: build-system-centos
>        artifacts: true
>    variables:
> -    IMAGE: centos8
> +    IMAGE: centos9
>      MAKE_CHECK_ARGS: check-avocado
>      AVOCADO_TAGS: arch:ppc64 arch:or1k arch:s390x arch:x86_64 arch:rx
>        arch:sh4 arch:nios2
> @@ -327,9 +327,9 @@ avocado-system-flaky:
>  build-tcg-disabled:
>    extends: .native_build_job_template
>    needs:
> -    job: amd64-centos8-container
> +    job: amd64-centos9-container
>    variables:
> -    IMAGE: centos8
> +    IMAGE: centos9
>    script:
>      - mkdir build
>      - cd build
> @@ -651,9 +651,9 @@ build-tci:
>  build-without-defaults:
>    extends: .native_build_job_template
>    needs:
> -    job: amd64-centos8-container
> +    job: amd64-centos9-container
>    variables:
> -    IMAGE: centos8
> +    IMAGE: centos9
>      CONFIGURE_ARGS:
>        --without-default-devices
>        --without-default-features
> diff --git a/.gitlab-ci.d/container-core.yml b/.gitlab-ci.d/container-core.yml
> index 08f8450fa1..5459447676 100644
> --- a/.gitlab-ci.d/container-core.yml
> +++ b/.gitlab-ci.d/container-core.yml
> @@ -1,10 +1,10 @@
>  include:
>    - local: '/.gitlab-ci.d/container-template.yml'
>  
> -amd64-centos8-container:
> +amd64-centos9-container:
>    extends: .container_job_template
>    variables:
> -    NAME: centos8
> +    NAME: centos9
>  
>  amd64-fedora-container:
>    extends: .container_job_template
> diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerfiles/centos9.docker
> similarity index 82%
> rename from tests/docker/dockerfiles/centos8.docker
> rename to tests/docker/dockerfiles/centos9.docker
> index ea618bf352..6cf47ce786 100644
> --- a/tests/docker/dockerfiles/centos8.docker
> +++ b/tests/docker/dockerfiles/centos9.docker
> @@ -1,15 +1,14 @@
>  # THIS FILE WAS AUTO-GENERATED
>  #
> -#  $ lcitool dockerfile --layers all centos-stream-8 qemu
> +#  $ lcitool dockerfile --layers all centos-stream-9 qemu
>  #
>  # https://gitlab.com/libvirt/libvirt-ci
>  
> -FROM quay.io/centos/centos:stream8
> +FROM quay.io/centos/centos:stream9
>  
>  RUN dnf distro-sync -y && \
>      dnf install 'dnf-command(config-manager)' -y && \
> -    dnf config-manager --set-enabled -y powertools && \
> -    dnf install -y centos-release-advanced-virtualization && \
> +    dnf config-manager --set-enabled -y crb && \
>      dnf install -y epel-release && \
>      dnf install -y epel-next-release && \
>      dnf install -y \
> @@ -42,7 +41,6 @@ RUN dnf distro-sync -y && \
>          glib2-static \
>          glibc-langpack-en \
>          glibc-static \
> -        glusterfs-api-devel \
>          gnutls-devel \
>          gtk3-devel \
>          hostname \
> @@ -82,6 +80,7 @@ RUN dnf distro-sync -y && \
>          lzo-devel \
>          make \
>          mesa-libgbm-devel \
> +        meson \
>          mtools \
>          ncurses-devel \
>          nettle-devel \
> @@ -95,25 +94,25 @@ RUN dnf distro-sync -y && \
>          pixman-devel \
>          pkgconfig \
>          pulseaudio-libs-devel \
> -        python38 \
> -        python38-PyYAML \
> -        python38-numpy \
> -        python38-pip \
> -        python38-setuptools \
> -        python38-wheel \
> +        python3 \
> +        python3-PyYAML \
> +        python3-numpy \
> +        python3-pillow \
> +        python3-pip \
> +        python3-sphinx \
> +        python3-sphinx_rtd_theme \
> +        python3-tomli \
>          rdma-core-devel \
>          sed \
>          snappy-devel \
>          socat \
>          spice-protocol \
> -        spice-server-devel \
>          swtpm \
>          systemd-devel \
>          systemtap-sdt-devel \
>          tar \
>          usbredir-devel \
>          util-linux \
> -        virglrenderer-devel \
>          vte291-devel \
>          which \
>          xfsprogs-devel \
> @@ -132,18 +131,11 @@ RUN dnf distro-sync -y && \
>      ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
>      ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
>  
> -RUN /usr/bin/pip3.8 install \
> -                    meson==0.63.2 \
> -                    pillow \
> -                    sphinx \
> -                    sphinx-rtd-theme \
> -                    tomli
> -
>  ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
>  ENV LANG "en_US.UTF-8"
>  ENV MAKE "/usr/bin/make"
>  ENV NINJA "/usr/bin/ninja"
> -ENV PYTHON "/usr/bin/python3.8"
> +ENV PYTHON "/usr/bin/python3"
>  # As a final step configure the user (if env is defined)
>  ARG USER
>  ARG UID
> diff --git a/tests/lcitool/mappings.yml b/tests/lcitool/mappings.yml
> index 407c03301b..03b974ad02 100644
> --- a/tests/lcitool/mappings.yml
> +++ b/tests/lcitool/mappings.yml
> @@ -1,66 +1,50 @@
>  mappings:
>    flake8:
> -    CentOSStream8:
>      OpenSUSELeap15:
>  
>    meson:
> -    CentOSStream8:
>      OpenSUSELeap15:
>  
>    python3:
> -    CentOSStream8: python38
>      OpenSUSELeap15: python311-base
>  
>    python3-PyYAML:
> -    CentOSStream8: python38-PyYAML
>      OpenSUSELeap15:
>  
>    python3-devel:
> -    CentOSStream8: python38-devel
>      OpenSUSELeap15: python311-devel
>  
>    python3-docutils:
> -    CentOSStream8:
>      OpenSUSELeap15:
>  
>    python3-numpy:
> -    CentOSStream8: python38-numpy
>      OpenSUSELeap15:
>  
>    python3-opencv:
> -    CentOSStream8:
>      OpenSUSELeap15:
>  
>    python3-pillow:
> -    CentOSStream8:
>      OpenSUSELeap15:
>  
>    python3-pip:
> -    CentOSStream8: python38-pip
>      OpenSUSELeap15: python311-pip
>  
>    python3-pillow:
> -    CentOSStream8:
>      OpenSUSELeap15:
>  
>    python3-selinux:
> -    CentOSStream8:
>      OpenSUSELeap15:
>  
>    python3-setuptools:
> -    CentOSStream8: python38-setuptools
>      OpenSUSELeap15: python311-setuptools
>  
>    python3-sphinx:
> -    CentOSStream8:
>      OpenSUSELeap15:
>  
>    python3-sphinx-rtd-theme:
> -    CentOSStream8:
>      OpenSUSELeap15:
>  
>    python3-sqlite3:
> -    CentOSStream8: python38
>      OpenSUSELeap15: python311
>  
>    python3-tomli:
> @@ -69,15 +53,11 @@ mappings:
>      Fedora:
>      Debian12:
>      OpenSUSELeap15:
> -    # Not available for Python 3.8
> -    CentOSStream8:
>  
>    python3-venv:
> -    CentOSStream8: python38
>      OpenSUSELeap15: python311-base
>  
>    python3-wheel:
> -    CentOSStream8: python38-wheel
>      OpenSUSELeap15: python311-pip
>  
>  pypi_mappings:
> diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
> index 692752a3df..24a735a3f2 100755
> --- a/tests/lcitool/refresh
> +++ b/tests/lcitool/refresh
> @@ -125,7 +125,7 @@ try:
>      # Standard native builds
>      #
>      generate_dockerfile("alpine", "alpine-318")
> -    generate_dockerfile("centos8", "centos-stream-8")
> +    generate_dockerfile("centos9", "centos-stream-9")
>      generate_dockerfile("debian", "debian-12",
>                          trailer="".join(debian12_extras))
>      generate_dockerfile("fedora", "fedora-38")
> diff --git a/tests/vm/centos b/tests/vm/centos
> index 097a9ca14d..d25c8f8b5b 100755
> --- a/tests/vm/centos
> +++ b/tests/vm/centos
> @@ -26,8 +26,8 @@ class CentosVM(basevm.BaseVM):
>          export SRC_ARCHIVE=/dev/vdb;
>          sudo chmod a+r $SRC_ARCHIVE;
>          tar -xf $SRC_ARCHIVE;
> -        make docker-test-block@centos8 {verbose} J={jobs} NETWORK=1;
> -        make docker-test-quick@centos8 {verbose} J={jobs} NETWORK=1;
> +        make docker-test-block@centos9 {verbose} J={jobs} NETWORK=1;
> +        make docker-test-quick@centos9 {verbose} J={jobs} NETWORK=1;
>      """
>  
>      def build_image(self, img):
> -- 
> 2.44.0
> 

With regards,
Daniel
Thomas Huth April 18, 2024, 6:19 a.m. UTC | #3
On 17/04/2024 18.15, Daniel P. Berrangé wrote:
> On Fri, Apr 12, 2024 at 03:24:06PM +0200, Thomas Huth wrote:
>> RHEL 9 (and thus also the derivatives) are available since two years
>> now, so according to QEMU's support policy, we can drop the active
>> support for the previous major version 8 now.
>> Thus upgrade our CentOS Stream container to major version 9 now.
> 
> The second reason for doing this is that Centos Stream 8
> will go EOL in about 1 month:
> 
> https://blog.centos.org/2023/04/end-dates-are-coming-for-centos-stream-8-and-centos-linux-7/
> 
>    "After May 31, 2024, CentOS Stream 8 will be archived
>     and no further updates will be provided."
> 
> I'm seeking confirmation, but I suspect after that date we
> will be unable to build centos8 containers, as the package
> repos will likely be archived.
> 
> RHEL-8 and other derivatives (Alma Linux, Rocky Linux,
> etc) remain actively supported by their respective vendors
> / communities. Only CentOS Stream EOLs.
> 
> 
> This has implications for our CI on stable branches. It is
> valid for our stable branches to continue targetting the
> RHEL-8 family of distros, as a 2 year cutoff in our support
> policy is evaluated at time of each given major release.
> 
> IOW, cherry-picking this change to switch to CentOS Stream
> 9 is possibly inappropriate for stable branches.
> 
> lcitool supports Alma Linux as target, so we could switch
> stable branches to Alma Linux 8 if desired to keep CI
> coverage of RHEL-8 family.
> 
> Thoughts ?

Either use AlmaLinux for the stable branches, or drop the EL 8 testing in 
the stable CI completely ... I assume that the probability will be rather 
low that we break something there by backporting some few patches (and if 
so, people can still complain by opening a bug ticket, then we can fix it in 
the following stable release).

  Thomas
diff mbox series

Patch

diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index cfdff175c3..9f34c650d6 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -158,9 +158,9 @@  build-system-centos:
     - .native_build_job_template
     - .native_build_artifact_template
   needs:
-    job: amd64-centos8-container
+    job: amd64-centos9-container
   variables:
-    IMAGE: centos8
+    IMAGE: centos9
     CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-vfio-user-server
       --enable-modules --enable-trace-backends=dtrace --enable-docs
     TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
@@ -242,7 +242,7 @@  check-system-centos:
     - job: build-system-centos
       artifacts: true
   variables:
-    IMAGE: centos8
+    IMAGE: centos9
     MAKE_CHECK_ARGS: check
 
 avocado-system-centos:
@@ -251,7 +251,7 @@  avocado-system-centos:
     - job: build-system-centos
       artifacts: true
   variables:
-    IMAGE: centos8
+    IMAGE: centos9
     MAKE_CHECK_ARGS: check-avocado
     AVOCADO_TAGS: arch:ppc64 arch:or1k arch:s390x arch:x86_64 arch:rx
       arch:sh4 arch:nios2
@@ -327,9 +327,9 @@  avocado-system-flaky:
 build-tcg-disabled:
   extends: .native_build_job_template
   needs:
-    job: amd64-centos8-container
+    job: amd64-centos9-container
   variables:
-    IMAGE: centos8
+    IMAGE: centos9
   script:
     - mkdir build
     - cd build
@@ -651,9 +651,9 @@  build-tci:
 build-without-defaults:
   extends: .native_build_job_template
   needs:
-    job: amd64-centos8-container
+    job: amd64-centos9-container
   variables:
-    IMAGE: centos8
+    IMAGE: centos9
     CONFIGURE_ARGS:
       --without-default-devices
       --without-default-features
diff --git a/.gitlab-ci.d/container-core.yml b/.gitlab-ci.d/container-core.yml
index 08f8450fa1..5459447676 100644
--- a/.gitlab-ci.d/container-core.yml
+++ b/.gitlab-ci.d/container-core.yml
@@ -1,10 +1,10 @@ 
 include:
   - local: '/.gitlab-ci.d/container-template.yml'
 
-amd64-centos8-container:
+amd64-centos9-container:
   extends: .container_job_template
   variables:
-    NAME: centos8
+    NAME: centos9
 
 amd64-fedora-container:
   extends: .container_job_template
diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerfiles/centos9.docker
similarity index 82%
rename from tests/docker/dockerfiles/centos8.docker
rename to tests/docker/dockerfiles/centos9.docker
index ea618bf352..6cf47ce786 100644
--- a/tests/docker/dockerfiles/centos8.docker
+++ b/tests/docker/dockerfiles/centos9.docker
@@ -1,15 +1,14 @@ 
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all centos-stream-8 qemu
+#  $ lcitool dockerfile --layers all centos-stream-9 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM quay.io/centos/centos:stream8
+FROM quay.io/centos/centos:stream9
 
 RUN dnf distro-sync -y && \
     dnf install 'dnf-command(config-manager)' -y && \
-    dnf config-manager --set-enabled -y powertools && \
-    dnf install -y centos-release-advanced-virtualization && \
+    dnf config-manager --set-enabled -y crb && \
     dnf install -y epel-release && \
     dnf install -y epel-next-release && \
     dnf install -y \
@@ -42,7 +41,6 @@  RUN dnf distro-sync -y && \
         glib2-static \
         glibc-langpack-en \
         glibc-static \
-        glusterfs-api-devel \
         gnutls-devel \
         gtk3-devel \
         hostname \
@@ -82,6 +80,7 @@  RUN dnf distro-sync -y && \
         lzo-devel \
         make \
         mesa-libgbm-devel \
+        meson \
         mtools \
         ncurses-devel \
         nettle-devel \
@@ -95,25 +94,25 @@  RUN dnf distro-sync -y && \
         pixman-devel \
         pkgconfig \
         pulseaudio-libs-devel \
-        python38 \
-        python38-PyYAML \
-        python38-numpy \
-        python38-pip \
-        python38-setuptools \
-        python38-wheel \
+        python3 \
+        python3-PyYAML \
+        python3-numpy \
+        python3-pillow \
+        python3-pip \
+        python3-sphinx \
+        python3-sphinx_rtd_theme \
+        python3-tomli \
         rdma-core-devel \
         sed \
         snappy-devel \
         socat \
         spice-protocol \
-        spice-server-devel \
         swtpm \
         systemd-devel \
         systemtap-sdt-devel \
         tar \
         usbredir-devel \
         util-linux \
-        virglrenderer-devel \
         vte291-devel \
         which \
         xfsprogs-devel \
@@ -132,18 +131,11 @@  RUN dnf distro-sync -y && \
     ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
     ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
 
-RUN /usr/bin/pip3.8 install \
-                    meson==0.63.2 \
-                    pillow \
-                    sphinx \
-                    sphinx-rtd-theme \
-                    tomli
-
 ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
 ENV LANG "en_US.UTF-8"
 ENV MAKE "/usr/bin/make"
 ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3.8"
+ENV PYTHON "/usr/bin/python3"
 # As a final step configure the user (if env is defined)
 ARG USER
 ARG UID
diff --git a/tests/lcitool/mappings.yml b/tests/lcitool/mappings.yml
index 407c03301b..03b974ad02 100644
--- a/tests/lcitool/mappings.yml
+++ b/tests/lcitool/mappings.yml
@@ -1,66 +1,50 @@ 
 mappings:
   flake8:
-    CentOSStream8:
     OpenSUSELeap15:
 
   meson:
-    CentOSStream8:
     OpenSUSELeap15:
 
   python3:
-    CentOSStream8: python38
     OpenSUSELeap15: python311-base
 
   python3-PyYAML:
-    CentOSStream8: python38-PyYAML
     OpenSUSELeap15:
 
   python3-devel:
-    CentOSStream8: python38-devel
     OpenSUSELeap15: python311-devel
 
   python3-docutils:
-    CentOSStream8:
     OpenSUSELeap15:
 
   python3-numpy:
-    CentOSStream8: python38-numpy
     OpenSUSELeap15:
 
   python3-opencv:
-    CentOSStream8:
     OpenSUSELeap15:
 
   python3-pillow:
-    CentOSStream8:
     OpenSUSELeap15:
 
   python3-pip:
-    CentOSStream8: python38-pip
     OpenSUSELeap15: python311-pip
 
   python3-pillow:
-    CentOSStream8:
     OpenSUSELeap15:
 
   python3-selinux:
-    CentOSStream8:
     OpenSUSELeap15:
 
   python3-setuptools:
-    CentOSStream8: python38-setuptools
     OpenSUSELeap15: python311-setuptools
 
   python3-sphinx:
-    CentOSStream8:
     OpenSUSELeap15:
 
   python3-sphinx-rtd-theme:
-    CentOSStream8:
     OpenSUSELeap15:
 
   python3-sqlite3:
-    CentOSStream8: python38
     OpenSUSELeap15: python311
 
   python3-tomli:
@@ -69,15 +53,11 @@  mappings:
     Fedora:
     Debian12:
     OpenSUSELeap15:
-    # Not available for Python 3.8
-    CentOSStream8:
 
   python3-venv:
-    CentOSStream8: python38
     OpenSUSELeap15: python311-base
 
   python3-wheel:
-    CentOSStream8: python38-wheel
     OpenSUSELeap15: python311-pip
 
 pypi_mappings:
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 692752a3df..24a735a3f2 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -125,7 +125,7 @@  try:
     # Standard native builds
     #
     generate_dockerfile("alpine", "alpine-318")
-    generate_dockerfile("centos8", "centos-stream-8")
+    generate_dockerfile("centos9", "centos-stream-9")
     generate_dockerfile("debian", "debian-12",
                         trailer="".join(debian12_extras))
     generate_dockerfile("fedora", "fedora-38")
diff --git a/tests/vm/centos b/tests/vm/centos
index 097a9ca14d..d25c8f8b5b 100755
--- a/tests/vm/centos
+++ b/tests/vm/centos
@@ -26,8 +26,8 @@  class CentosVM(basevm.BaseVM):
         export SRC_ARCHIVE=/dev/vdb;
         sudo chmod a+r $SRC_ARCHIVE;
         tar -xf $SRC_ARCHIVE;
-        make docker-test-block@centos8 {verbose} J={jobs} NETWORK=1;
-        make docker-test-quick@centos8 {verbose} J={jobs} NETWORK=1;
+        make docker-test-block@centos9 {verbose} J={jobs} NETWORK=1;
+        make docker-test-quick@centos9 {verbose} J={jobs} NETWORK=1;
     """
 
     def build_image(self, img):