## Summary The plan is to reduce the number of OpenShift Pipelines version we support at a given time while augmenting the number of OpenShift version we support them in. Supporting Materials: * [Enhance Support Policy of OpenShift Pipelines](./enhance-support-policy.md) * [OCP 4.y lifecycles](https://docs.google.com/document/d/1exNNJPdwCH3F5eEKaLVBcrj_qAHfJ3PlfnquP0-6TxM/edit#heading=h.539ohzh6t1k6) * [Proposal for Pipelines & GitOps](https://docs.google.com/spreadsheets/d/1Tn6BHNBJnEaTBRm22U0KrNCR_Zwu_qBn-IR-xFEa4Os/edit#gid=1430910332) ## Motivation OpenShift Pipelines versions are currently only shipped and supported for a small set of OpenShift version (n-1, n, n+1). OpenShift support can be very long (especially for EUS version), which makes us having to support a lot of version at the same time. Adding to this support exception that we may give to customers, it can become a burden for maintainance, and a lot of bugfix version to release. For example, today (2023, 31st of July), we are *technically* supporting the following: - 1.8.x on 4.10 (EUS) - 1.9.x on >= 4.10 - 1.10.x - 1.11.x In addition, it has no real technological reason for not supporting multiple version. Tekton supports a relatively wide range of k8s version, and so can OpenShift Pipelines. Enabling customers to get the latest of feature from Tekton in their supported cluster is a win-win situation : customers can use the latest, and we can ship the latest (fixes, …) to our customers. ## Proposal ### Support only the last 2 releases The proposal is to only support the last 2 releases. As of today, this would mean supporting 1.11 and 1.10. In addition, as soon as release N is released, release N-1 becomes in maintenance mode, aka gets only critical bugfixes and security fixes. Quick note on this, it would also get any bugfix release if upstream components tracked in that release do a bugfix release as well. The idea of the proposal is to make it more appealing to get the latest release. The only challenge can be the `MIN_KUBERNETES_VERSION`, as discussed below. ### Support down to `MIN_KUBERNETES_VERSION` Each version we release is supported on **any** OpenShift version that satisfy the following: - OpenShift version is still supported. - The pipeline `MIN_KUBERNETES_VERSION` is compatible with the kubernetes version of OpenShift. In a gist this would mean, today, that: - 1.11 (`MIN_KUBERNETES_VERSION` = 1.24) is supported on >= 4.11 - 1.10 (`MIN_KUBERNETES_VERSION` = 1.23) is supported on >= 4.10 As of today, no OpenShift version below 4.10 is supported, so we could support only 1.10 and 1.11. In the case of an OpenShift version is still supported but the `MIN_KUBERNETES_VERSION` is lower than any of the 2 most recent OpenShift Pipeline's release, we would have to support that one (in maintenance/security mode) until the given OpenShift release is not supported anymore, but only on that given OpenShift version. For example, when we release 1.12 (`MIN_KUBERNETES_VERSION` = 1.24), we will need to still support 1.10 *on* 4.10 (not necessarily on 4.11 or higher).