CentOS Stream 9 end of life on 31 May 2027: RHEL 9 dates and options

CentOS Stream 9 ends on 31 May 2027; RHEL 9 only changes phase. Targets that run to 2030, 2032 or 2035, plus a CI and base-image plan.

Read time
18 min
Word count
2.8K
Sections
11
FAQs
8
Share
Engineer labelling rack servers in a lab while a colleague checks a tablet, beside CentOS, Red Hat and AlmaLinux logos
On this page · 11 sections
  1. What actually happens on 31 May 2027
  2. Red Hat's layered minor-release coverage
  3. Your options, one by one
  4. Head-to-head comparison
  5. Decision table
  6. Worked example: support runway from 31 May 2027
  7. CI and container base-image plan
  8. Migration checklist
  9. India and compliance note
  10. How eCorpIT can help
  11. References

Summary. CentOS Stream 9 reaches end of life on 31 May 2027, the day RHEL 9 Full Support ends. For RHEL 9 that date is only a phase change: Maintenance Support runs from 1 June 2027 to 31 May 2032, and an extended life cycle add-on runs to 31 May 2036. For Stream 9 it is a hard stop, as it was for Stream 8, whose packages went to vault.centos.org in 2024. AlmaLinux 9 and Rocky Linux 9 also run to 2032, and Oracle lists Premier Support for Oracle Linux 9 until June 2032. So every Stream 9 machine needs a new home: CentOS Stream 10 (end of life 31 May 2030; x86-64-v3 processors only on x86), RHEL 9 or 10, or a RHEL-compatible rebuild. AlmaLinux's migration script lists Stream 9 as a supported source. Red Hat calls a Convert2RHEL conversion from Stream 9 possible but unsupported. Our verdict: move servers and base images to a 9.x rebuild or RHEL 9, keep Stream 10 for jobs that need a preview of the next RHEL, and finish by April 2027.

About this article. This guide is for teams running CentOS Stream 9 on build servers, CI runners, developer machines and container images. On 7 November 2026 we checked every date, version and command against primary sources: CentOS Project pages, Red Hat's lifecycle policy, data and documentation, the AlmaLinux, Rocky Linux and Oracle lifecycle pages, the migration tools' READMEs and the image registries. Red Hat calls its future dates approximations, so re-check before you book a change window. Prices quoted are US list prices and can change. No vendor paid for inclusion. Researched with AI assistance and reviewed by our editorial team.

Running Ubuntu 22.04 LTS too? Our guide to Ubuntu 22.04's end of standard support covers the same month.

What actually happens on 31 May 2027

CentOS Stream is the development branch that Red Hat engineers build and RHEL minor releases are cut from. Once a RHEL major version enters maintenance, its Stream branch has no more minor releases to feed, so the project ends it. That is exactly how the CentOS Project explained the end of Stream 8 in 2023: RHEL 8 was moving to maintenance, so Stream 8 had done its job and would be archived after 31 May 2024. Within days the old mirror tree was emptied and pointed users to the vault.

The same logic applies to Stream 9. Here is what each RHEL-family distribution does that day, from the vendors' lifecycle pages.

Distribution What changes on 31 May 2027 Updates continue until
CentOS Stream 9 End of life; no further updates 31 May 2027
RHEL 9 Full Support ends; Maintenance Support begins 1 June 2027 31 May 2032 (add-on to 31 May 2036)
Rocky Linux 9 Active support ends; maintenance updates continue 31 May 2032
AlmaLinux 9 Nothing announced; follows RHEL 9 2032
Oracle Linux 9 Nothing; Premier Support continues June 2032 (Extended Support to June 2035)
CentOS Stream 10 Nothing 31 May 2030
RHEL 10 Nothing; Full Support continues Full to 31 May 2030, Maintenance to 31 May 2035

On RHEL 9, AlmaLinux 9, Rocky Linux 9 or Oracle Linux 9, 31 May 2027 is a phase change and you can stay until 2032. On CentOS Stream 9, it is the end.

What the maintenance phase means for RHEL 9

Red Hat's feature matrix sets out the difference. In Full Support, RHEL gets errata, minor releases, native hardware enablement and software enhancements. In Maintenance Support, errata continue but minor releases and enhancements stop. Newer hardware is then handled by running RHEL 9 as a virtual guest on a newer host, not by backporting drivers.

Errata follow Red Hat's standard criteria: security advisories for Critical and Important issues and for Moderate CVEs scoring 7 or more on CVSS (in force since 1 April 2025), plus urgent and selected high-priority bug fixes. The minimum package list for urgent bug fixes includes the kernel, glibc, openssl, openssh, systemd, sudo, dnf and, on RHEL 9, Python 3.9. Some Application Streams, such as language runtimes and databases, have shorter lives than the OS itself.

Red Hat lists 9.10 as the final RHEL 9 minor release. Its release-dates page (last updated 21 May 2026) still shows RHEL 9.8, released on 19 May 2026 with RHEL 10.2, as the newest, and Red Hat does not generally publish future dates. AlmaLinux shipped a 9.9 beta on 17 September 2026, so 9.9 is close, but do not plan around a specific day for 9.9 or 9.10.

Red Hat's layered minor-release coverage

Red Hat keeps the ten-year major-version lifecycle (about five years of Full Support and five of Maintenance) but now sells coverage for individual minor releases in three layers:

  • RHEL Standard covers each minor release for 6 months.
  • RHEL Premium covers eligible minor releases for 2 years.
  • Extended Life Cycle Premium (ELCP), an add-on to Premium, covers even-numbered minor releases (.2, .4, .6, .8) for 6 years from general availability and the final .10 release for 9 years.

From RHEL 9, ELCP replaces Extended Update Support, Enhanced EUS and Update Services for SAP Solutions (E4S), though SAP customers keep E4S on RHEL 8 and 9. It also replaces Extended Life-cycle Support from RHEL 8.10 on 1 June 2029. After ELCP, renewable one-year Long-Life terms keep errata flowing.

This matters in one case: if a certified application needs a fixed RHEL 9 minor version, budget for Premium or ELCP. For a patched OS that takes each minor update, Standard is enough.

Your options, one by one

CentOS Stream 10

CentOS Stream 10 Coughlan runs until 31 May 2030, the end of RHEL 10 Full Support. It ships Linux kernel 6.12, Python 3.12, GCC 14, OpenJDK 21, Node.js 22, PostgreSQL 16 and MySQL 8.4. Valkey replaces Redis, the Xorg server is gone (Wayland is the default, with Xwayland for older X11 applications), and modularity has been dropped in favour of ordinary non-modular RPM packages.

The catch is hardware. The x86_64 build targets the x86-64-v3 level, which sets a minimum processor; the release notes suggest ld.so --help to see which levels your CPU supports. Red Hat notes that v3 arrived with Intel Haswell (2013) and AMD Excavator (2015), and that hypervisors may need reconfiguring to pass it through to guests. Broadcom documents RHEL 10 installs failing on vSphere clusters with a Sandy Bridge EVC baseline, which hides AVX2. If your hypervisor estate is also changing, see our VMware vSphere 8 alternatives comparison.

Stream 10 suits CI pipelines that want an early look at the next RHEL 10 minor release and teams that contribute upstream. It gives three years of runway, then the same migration again. We found no documented in-place upgrade from Stream 9 to Stream 10 on the CentOS Project's pages, so plan on rebuilding.

RHEL 9 or RHEL 10

RHEL 9 runs to 31 May 2032, with the extended life cycle add-on to 31 May 2036. RHEL 10 has Full Support to 31 May 2030 and Maintenance to 31 May 2035, with the add-on to 31 May 2039. Red Hat's online store lists one-year RHEL Server subscriptions at US$878.90 (Standard) and US$1,428.90 (Premium). It does not state the counting unit, so confirm that, and Indian pricing, with Red Hat or a partner. Our Ubuntu 24.04 vs 26.04 vs RHEL 10 server comparison sets RHEL 10 against Ubuntu.

The no-cost Red Hat Developer Subscription for Individuals covers up to 16 physical or virtual nodes on x86_64 and aarch64, self-supported, for demos, prototyping, QA and small production use. Organisations are pointed to Red Hat sales for the Developer Subscription for Teams.

Getting from Stream 9 to RHEL is the awkward part. In the latest copy of Red Hat's Convert2RHEL guide we could read (archived 3 May 2026), supported RHEL 9 conversions run from AlmaLinux, Oracle Linux or Rocky Linux 9.7 to RHEL 9.7, while a CentOS Stream 9 conversion is possible but unsupported. Stream packages can be newer than the released RHEL packages that would replace them, so treat RHEL as a rebuild target.

AlmaLinux 9 or 10

The AlmaLinux OS Foundation commits to updates for AlmaLinux 9.x until 2032, and each minor version reaches end of life when the next one ships. Since July 2023 AlmaLinux has aimed for ABI compatibility with RHEL rather than an exact rebuild, and it treats software that works on RHEL but fails on AlmaLinux as a bug. Its FAQ table does not yet have a 10.x row, but the 10.2 release notes say the AlmaLinux 10 architectures are maintained through 2035.

The almalinux-deploy script lists CentOS Stream 9 and 10 as supported sources, with the -d flag to allow downgrades because Stream runs ahead of AlmaLinux stable. It handles x86_64, aarch64, ppc64le and s390x, UEFI with Secure Boot, and OCI containers, and its README asks for a backup and a console or tmux session first. AlmaLinux 10 also ships an extra x86-64-v2 build for older hardware that RHEL 10 and Stream 10 no longer run on, with the caveat that third-party RHEL 10 packages target v3.

Rocky Linux 9

Rocky Linux 9 was released on 14 July 2022. Its active support ends on 31 May 2027 and its end of life is 31 May 2032; Rocky Linux 10 runs to 31 May 2035. Rocky ships minor releases each May and November; the previous one then moves to the vault and gets no more fixes, so stay supported by running dnf upgrade after each release.

Rocky's migrate2rocky9 script converts Enterprise Linux 9 systems to Rocky Linux 9, and its README says upgrades are not supported. Rocky's documentation guide lists CentOS Stream 8 and 9 among the sources and advises a snapshot or staging run before converting a production server, so test on a clone first.

Oracle Linux 9

Oracle's Lifetime Support Policy lists Oracle Linux 9 (GA June 2022) with Premier Support to June 2032, Extended Support to June 2035 and Sustaining Support with no end date, the longest published horizon among the 9.x rebuilds here. Oracle Linux is free to download and distribute, with support sold as a subscription. It fits teams that already hold Oracle support contracts or run Oracle-certified software.

Head-to-head comparison

Sources are those cited in the sections above.

Option Updates until Cost model Path from Stream 9 x86 CPU baseline Best for
CentOS Stream 10 31 May 2030 Free Rebuild; no documented in-place path x86-64-v3 CI that previews the next RHEL minor
RHEL 9 31 May 2032 (add-on to 2036) Subscription; free for individuals up to 16 nodes Rebuild; Convert2RHEL from Stream unsupported x86-64-v2 Vendor-certified enterprise workloads
RHEL 10 Full 2030, Maintenance 31 May 2035 Subscription Rebuild x86-64-v3 New builds with a long horizon
AlmaLinux 9 2032 Free almalinux-deploy lists Stream 9 (with -d) Same as RHEL 9 Fastest like-for-like move
AlmaLinux 10 2035 (release notes) Free Rebuild v3, plus a separate v2 build EL10 on older hardware
Rocky Linux 9 31 May 2032 Free migrate2rocky9 (guide lists Stream 9) x86-64-v2 Teams already standardised on Rocky
Oracle Linux 9 Premier June 2032, Extended June 2035 Free to use; paid support tiers Rebuild Same as RHEL 9 Oracle-certified stacks

Decision table

Pick this If
AlmaLinux 9 You need Stream 9 servers off an unsupported OS quickly, with a documented conversion path
RHEL 9 An ISV certifies only on RHEL, or you need a vendor support contract and SLA
RHEL 10 or an EL10 rebuild You are rebuilding anyway, your CPUs support x86-64-v3 and you want updates past 2032
CentOS Stream 10 You test against what RHEL will ship next and accept a 2030 end date
Rocky Linux 9 Your other fleets already run Rocky and your tooling assumes it
Oracle Linux 9 You run Oracle software or want the June 2035 Extended Support date
UBI 9 images You need a redistributable RHEL-based container base that follows the RHEL 9 lifecycle

Worked example: support runway from 31 May 2027

Months of updates gained by moving, counted from 31 May 2027:

Target End date Months of runway Further OS migrations before mid-2032
CentOS Stream 10 31 May 2030 36 1 (in 2030)
AlmaLinux 9, Rocky 9, RHEL 9 31 May 2032 (AlmaLinux: 2032) 60 0
Oracle Linux 9 (Premier) June 2032 about 61 0
RHEL 10 (Maintenance) 31 May 2035 96 0
RHEL 9 with add-on 31 May 2036 108 0

Take a hypothetical engineering organisation with 30 CI runners, 8 container base images and 5 long-lived build servers on Stream 9: 30 + 8 + 5 = 43 systems. Moving everything to Stream 10 means 43 migrations in 2027 and 43 more in 2030, so 43 + 43 = 86 by mid-2032. Instead, move the 13 images and servers to a 9.x rebuild, keep 10 runners on Stream 10 for next-RHEL jobs and put the other 20 on a 9.x image. The 2030 repeat drops to the 10 Stream runners: 43 + 10 = 53. That is the case against choosing Stream 10 by default.

CI and container base-image plan

Most Stream 9 exposure sits in build infrastructure rather than production servers, and it is easy to miss because a base image rarely has a named owner.

Step 1: find every Stream 9 reference

Search repositories, CI configuration, Packer templates and Vagrantfiles for the names the CentOS Project publishes: the quay.io/centos/centos:stream9 container image, the centos/stream9 Vagrant box and cloud images under cloud.centos.org/centos/9-stream.


            # Run from a directory containing your checked-out repositories
grep -rIn --include='*Dockerfile*' --include='Containerfile*' \
  --include='*.yml' --include='*.yaml' --include='*.pkr.hcl' \
  --include='Vagrantfile' -E 'stream9|9-stream|centos-stream-9' .

# On a running host or runner
grep -E '^(NAME|VERSION_ID)=' /etc/os-release
# A Stream 9 host prints NAME="CentOS Stream" and VERSION_ID="9"
          

Those values come from the Stream 9 release package. Add the check to your configuration-management facts so the count reaches dashboards.

Step 2: choose replacement base images

We checked these images against Red Hat's container data and the CentOS download page.

Need Replacement image Lifecycle
Redistributable RHEL-based base, supportable on RHEL or OpenShift registry.access.redhat.com/ubi9/ubi (UBI 9) Follows RHEL 9
Free community base with 2032 updates almalinux:9 or rockylinux/rockylinux:9 2032
Preview of the next RHEL minor quay.io/centos/centos:stream10 31 May 2030
Oracle-aligned base oraclelinux:9 Premier June 2032

For Rocky, use the rockylinux/rockylinux namespace. Its 9 tag was last rebuilt on 12 June 2026, while the Docker Official Images rockylinux:9 tag has not changed since 30 May 2024. Either way, keep a package update step in your build.

Before you standardise on UBI, note what Red Hat's FAQ says. UBI images and their package repositories are free to use and redistribute under the UBI EULA, with no subscription. Adding non-UBI RHEL packages needs a subscription and makes the image non-redistributable. Full support applies only on RHEL or OpenShift, and EPEL works only partly on UBI because many EPEL packages depend on full RHEL content.

Step 3: make the base image a build argument


            # Containerfile
ARG BASE_IMAGE=registry.access.redhat.com/ubi9/ubi
FROM ${BASE_IMAGE}
RUN dnf -y update && dnf clean all
          

Run the pipeline as a matrix over two values of BASE_IMAGE during the transition, such as UBI 9 and Stream 10, and drop the old one once tests pass. Pin by digest in production builds and rebuild on a schedule so security fixes reach your images.

Step 4: expect package-level differences on EL10

If you jump to Stream 10 or RHEL 10, check three things that commonly break builds. The default Python moves from 3.9 to 3.12, Redis is replaced by Valkey, and module streams are gone, so scripts that enable streams with dnf module need rewriting. On x86 runners, also confirm the virtual CPU exposes x86-64-v3; a conservative hypervisor CPU model can hide the required instructions even on new hardware.

Step 5: plan for the repositories going away

As of 7 November 2026 we found no Stream 9 archive plan on the CentOS blog. If the project follows the Stream 8 precedent, packages will move to vault.centos.org and receive no further updates, and the old mirror paths will stop serving them. Any build that runs dnf install against Stream 9 mirrors will then fail or pull frozen, unpatched packages.

Migration checklist

  1. November to December 2026: inventory Stream 9 hosts, images, runners and Vagrant boxes; record each owner and purpose.
  1. January 2027: choose a target per class (images, runners, servers); test x86-64-v3 support anywhere EL10 is an option.
  1. February 2027: build replacement images and run CI matrices against both old and new bases.
  1. March 2027: convert or rebuild long-lived servers. Run almalinux-deploy with the downgrade flag only after a tested backup or snapshot, from a console or a tmux session.
  1. April 2027: switch default images, retire Stream 9 runner pools, and update Packer and Vagrant templates.
  1. May 2027: freeze remaining exceptions with named owners and a removal date.
  1. After 31 May 2027: block stream9 image references in admission policy or CI linting so old references do not creep back.

India and compliance note

AlmaLinux, Rocky Linux and Oracle Linux charge no licence fees, so for Indian startups the main cost here is engineering time. Compliance matters more. Customer security questionnaires and ISO 27001 or SOC 2 audits commonly ask whether every operating system is within vendor support, and an end-of-life Stream 9 image in a production pipeline is an easy finding. Keep a dated OS inventory, as you would for Windows Server 2016's end of support; it is cheaper than explaining an exception to a customer's vendor-risk team in June 2027.

How eCorpIT can help

eCorpIT is a Gurugram-based technology organisation, founded in 2021, assessed at CMMI Level 5 and MSME certified, with senior-led engineering teams working across AWS, Microsoft and Google platforms. Our data centre and cloud networking team plans and runs Linux end-of-life migrations, from inventory of hosts, runners and images to EL10 CPU checks, base-image pipelines and staged cut-overs with rollback. Talk to us at /contact-us/.

Last updated: 7 November 2026.

References

  1. Download, CentOS Stream 9 and 10 end-of-life dates and images — The CentOS Project
  1. Product Life Cycles API: Red Hat Enterprise Linux — Red Hat Customer Portal
  1. End dates are coming for CentOS Stream 8 and CentOS Linux 7, 11 April 2023 — CentOS Blog
  1. Frequently asked questions — AlmaLinux Wiki
  1. Rocky Releases: current supported releases and lifecycle policy — Rocky Linux Documentation
  1. Lifetime Support Policy: Coverage for Oracle Open Source Service Offerings (PDF) — Oracle
  1. CentOS Stream 10 Release Notes — The CentOS Project
  1. almalinux-deploy: an EL to AlmaLinux migration tool, README — AlmaLinux on GitHub
  1. Converting from a Linux distribution to RHEL using the Convert2RHEL utility, archived 3 May 2026 — Red Hat Documentation
  1. Red Hat Enterprise Linux Life Cycle — Red Hat Customer Portal
  1. CentOS Mirror: centos/8-stream directory — The CentOS Project
  1. Red Hat Enterprise Linux Release Dates, updated 21 May 2026 — Red Hat Customer Portal
  1. AlmaLinux 9.9 Beta Now Available!, 17 September 2026 — AlmaLinux OS Foundation
  1. Exploring x86-64-v3 for Red Hat Enterprise Linux 10, 2 January 2024 — Red Hat Developer
  1. RHEL 10 installation fails with Fatal glibc CPU unsupported error on VMware EVC Sandy Bridge clusters, article 411056 — Broadcom Knowledge Base
  1. Red Hat Enterprise Linux Server: choose your subscription — Red Hat Store
  1. No-cost RHEL Individual Developer Subscription: FAQs — Red Hat Developer
  1. AlmaLinux 10.2 Release Notes — AlmaLinux Wiki
  1. AlmaLinux 10.0 Release Notes: deviations from RHEL 10 — AlmaLinux Wiki
  1. migrate2rocky conversion script, README — Rocky Linux on GitHub
  1. How to migrate to Rocky Linux from CentOS Stream, CentOS, AlmaLinux, RHEL, or Oracle Linux — Rocky Linux Documentation
  1. Oracle Linux — Oracle
  1. centos-stream-release.spec, c9s branch — CentOS Stream on GitLab
  1. Red Hat Universal Base Image 9 (ubi9/ubi) repository data — Red Hat Ecosystem Catalog
  1. rockylinux/rockylinux, tag 9 — Docker Hub
  1. rockylinux Docker Official Image, tag 9 — Docker Hub
  1. Red Hat Universal Base Images (UBI) FAQ — Red Hat Developer
  1. Blog.CentOS.org feed, posts to 22 June 2026 — The CentOS Project

Frequently asked

Quick answers.

01 When does CentOS Stream 9 reach end of life?
The CentOS Project lists 31 May 2027 as the end of life for CentOS Stream 9, matching the end of RHEL 9 Full Support. After that date the project stops publishing updates. When CentOS Stream 8 ended in May 2024, its packages were archived to vault.centos.org.
02 Does RHEL 9 reach end of life on 31 May 2027?
No. RHEL 9 leaves Full Support on 31 May 2027 and enters Maintenance Support on 1 June 2027, which runs until 31 May 2032. Security errata and selected bug fixes continue, but new features and minor releases stop after 9.10. An extended life cycle add-on runs to 31 May 2036.
03 Can I upgrade CentOS Stream 9 to CentOS Stream 10 in place?
We found no documented in-place upgrade from Stream 9 to Stream 10 on the CentOS Project's pages, so plan to rebuild. Check hardware first: the Stream 10 x86_64 build targets the x86-64-v3 level, so processors older than Intel Haswell or AMD Excavator, and some conservative virtual CPU models, cannot run it.
04 Can I convert CentOS Stream 9 to RHEL with Convert2RHEL?
Red Hat's guide lists a CentOS Stream 9 conversion as possible but unsupported. Supported RHEL 9 conversions start from the matching minor release of AlmaLinux, Oracle Linux or Rocky Linux 9. Because Stream packages can be newer than released RHEL packages, most teams are better off building fresh RHEL machines and moving workloads across.
05 Are AlmaLinux 9 and Rocky Linux 9 affected by the May 2027 date?
Not directly. Rocky Linux 9 ends active support on 31 May 2027 but keeps maintenance updates until 31 May 2032. The AlmaLinux OS Foundation commits to AlmaLinux 9 updates until 2032. Both follow the RHEL 9 maintenance phase, so systems already on them can stay put, provided they keep taking each minor release.
06 Which container image should replace centos:stream9?
For a redistributable RHEL-based image that follows the RHEL 9 lifecycle, use UBI 9 from Red Hat's registry. For a free community base with updates to 2032, use the AlmaLinux 9 image or the Rocky Linux 9 image from Rocky's own namespace. Use the stream10 tag only to test what RHEL 10 ships next.
07 What happens to my Stream 9 container images after 31 May 2027?
Existing images keep running, but they stop receiving security fixes and scanners will flag their packages. If the project follows the Stream 8 precedent, the repositories move to the vault, so rebuilds that install packages from Stream 9 mirrors will fail. Rebuild on a supported base first.
08 Is there a free way to run RHEL on a few servers?
Yes, for individuals. The no-cost Red Hat Developer Subscription for Individuals covers up to 16 physical or virtual nodes and allows demos, prototyping, QA and small production use. It is self-supported and limited to one subscription per Red Hat account. Organisations are directed to Red Hat sales for the Developer Subscription for Teams.

About the author

Manu Shukla

Founder & Director

Founder of eCorpIT. Hands-on engineer leading senior-only delivery for AI apps, custom software, and cloud systems for global clients.

Subscribe

One engineering note a week. No fluff, no spam.

Senior-architect playbooks on AI agents, mobile apps, cloud, security, data, and marketing — delivered every Wednesday.

Past the reading

Read enough. Let's build something.

A senior architect responds in 24 working hours with scope, indicative cost, and a timeline. NDA before any technical conversation.

Loading search…

Browse all guides