OpenShift Support Lifecycle and Version Matrix
OpenShift Container Platform support lifecycle, version EOL dates, Kubernetes version mapping, upgrade paths, and Extended Update Support (EUS). Plan upgrades
π‘ Quick Answer: OpenShift versions receive ~18 months of full support from GA. EUS (Extended Update Support) releases (even minor versions: 4.12, 4.14, 4.16, 4.18) get extended to ~24 months. Each OCP version maps to a specific Kubernetes version (e.g., OCP 4.16 = K8s 1.29, OCP 4.17 = K8s 1.30). Upgrade only between adjacent minor versions unless using EUS-to-EUS.
The Problem
- OpenShift versions go end-of-life β running unsupported versions means no security patches
- Kubernetes API deprecations require planning before upgrading
- EUS vs non-EUS versions have different support timelines
- Upgrade path between versions must be sequential (canβt skip versions)
- Mapping OpenShift versions to Kubernetes versions is not obvious
The Solution
OpenShift β Kubernetes Version Mapping
OpenShift β Kubernetes β GA Date β End of Life β EUS
ββββββββββββΌβββββββββββββΌββββββββββββββΌβββββββββββββββΌβββββ
4.18 β 1.31 β 2025-06 β ~2027-06 β Yes
4.17 β 1.30 β 2024-11 β ~2026-05 β No
4.16 β 1.29 β 2024-06 β ~2026-06 β Yes
4.15 β 1.28 β 2024-02 β ~2025-08 β No
4.14 β 1.27 β 2023-10 β ~2025-10 β Yes
4.13 β 1.26 β 2023-05 β ~2024-11 β No
4.12 β 1.25 β 2023-01 β ~2025-01 β Yes
ββββββββββββ΄βββββββββββββ΄ββββββββββββββ΄βββββββββββββββ΄βββββ
Pattern:
β’ Even minor versions (4.12, 4.14, 4.16, 4.18) = EUS
β’ Odd minor versions (4.13, 4.15, 4.17) = Standard support only
β’ Each OCP minor = K8s minor + 3 offset (OCP 4.x β K8s 1.(x-3))Support Phases
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Full Support (~12-14 months from GA) β
β β’ Security fixes, bug fixes, feature backports β
β β’ New z-stream releases (4.16.1, 4.16.2, ...) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Maintenance Support (~6 months after Full Support ends) β
β β’ Critical security fixes only β
β β’ No new features, limited bug fixes β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Extended Update Support (EUS versions only, +6 months) β
β β’ Extends lifecycle to ~24 months total β
β β’ Enables EUS-to-EUS upgrade path (skip odd versions) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β End of Life β
β β’ No patches, no support β
β β’ Must upgrade to supported version β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββUpgrade Paths
Standard upgrade path (sequential):
4.14 β 4.15 β 4.16 β 4.17 β 4.18
EUS-to-EUS upgrade path (skip odd versions):
4.14 β 4.16 β 4.18
(Requires EUS subscription; runs through intermediate version internally)
Within minor version (z-stream):
4.16.0 β 4.16.5 β 4.16.12 (any z-stream to any higher z-stream)# Check available upgrade paths
oc adm upgrade
# Cluster version is 4.16.12
# Recommended updates:
# VERSION IMAGE
# 4.16.15 quay.io/openshift-release-dev/ocp-release@sha256:...
# 4.17.3 quay.io/openshift-release-dev/ocp-release@sha256:...
# Check current version and channel
oc get clusterversion
# NAME VERSION AVAILABLE PROGRESSING SINCE STATUS
# version 4.16.12 True False 10d Cluster version is 4.16.12
# Set update channel
oc adm upgrade channel eus-4.18
# View upgrade graph
oc adm upgrade --include-not-recommendedCheck Version and Support Status
# Current cluster version details
oc get clusterversion version -o yaml | grep -A5 "status:"
# Kubernetes version running
oc version
# Client Version: 4.16.12
# Kube Version: v1.29.8
# Server Version: 4.16.12
# Check if running EUS version
oc get clusterversion -o jsonpath='{.items[0].spec.channel}'
# eus-4.16Planning Upgrades
Upgrade planning checklist:
1. Check current version EOL date (Red Hat lifecycle page)
2. Review deprecated APIs in target version (oc adm upgrade)
3. Check operator compatibility matrix
4. Test in non-production first
5. Review release notes for breaking changes
6. Ensure enough time before EOL (~3 months buffer)
7. For EUS-to-EUS: both source and target must be EUS
Timeline recommendation:
β’ Start planning upgrade 6 months before EOL
β’ Test in dev/staging 3 months before
β’ Production upgrade 1-2 months before EOLCommon Issues
βVersion not found in channelβ when trying to upgrade
- Cause: Wrong channel selected (stable vs eus vs candidate)
- Fix:
oc adm upgrade channel stable-4.17oreus-4.18
Upgrade blocked by deprecated API usage
- Cause: Workloads using APIs removed in target version
- Fix: Run
oc get apirequestcountsto find deprecated API usage; migrate before upgrading
Cluster stuck on unsupported version
- Cause: Missed upgrade window, version went EOL
- Fix: Must upgrade through each intermediate version sequentially; contact Red Hat support
Best Practices
- Use EUS versions in production β longer support, cleaner upgrade paths
- Subscribe to errata notifications β early warning for security patches
- Test upgrades in non-prod first β catch operator/workload incompatibilities
- Monitor deprecated API usage β
oc get apirequestcountsshows which APIs will break - Upgrade at least every 12 months β donβt let versions go EOL under you
- Use EUS-to-EUS for minimal disruption β skip intermediate versions
Key Takeaways
- OpenShift versions get ~18 months full support (24 months for EUS)
- EUS = even minor versions (4.12, 4.14, 4.16, 4.18)
- Each OCP version maps to a specific Kubernetes version (OCP 4.16 = K8s 1.29)
- Upgrades must be sequential (4.14β4.15β4.16) unless EUS-to-EUS
- Check lifecycle status at access.redhat.com/support/policy/updates/openshift
- Plan upgrades 6 months ahead; test 3 months before production

Recommended
Kubernetes Recipes β The Complete Book100+ production-ready patterns with detailed explanations, best practices, and copy-paste YAML. Everything in one place.
Get the Book βLearn by Doing
CopyPasteLearn β Hands-on Cloud & DevOps CoursesMaster Kubernetes, Ansible, Terraform, and MLOps with interactive, copy-paste-run lessons. Start free.
Browse Courses βπ Deepen Your Skills β Hands-on Courses
Courses by CopyPasteLearn.com β Learn IT by Doing
