-
Task
-
Resolution: Done
-
Major
-
None
-
2.11.0 CR1
-
None
-
False
-
False
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
Undefined
-
As received via mail on the operators mailing list, starting from OCP 4.9:
apiextensions/v1beta1[1] for CRDs and admissionregistration.k8s.io/v1beta1[2] for Webhooks was deprecated in Kubernetes 1.16 and will be removed in k8s 1.22 (OCP 4.9).
This means that all bundles that use CRD v1beta1 versions, which are all current 3scale versions will not work starting from OCP 4.9.
For 3scale 2.11, CRDs will be using v1 (related changes were done in https://issues.redhat.com/browse/THREESCALE-5859) so users will be able to use 3scale 2.11 there.
However, older 3scale versions (including 2.10) will not be compatible with OCP 4.9 and newer versions because they use CRD v1beta1 and the support for them is removed on OCP 4.9 as explained.
Due to this restrictions the upgrade path has some challenges / requirements that we will have to deal with:
- Users running 3scale versions <= 2.10 will have to upgrade to 3scale 2.11 BEFORE upgrading to OCP 4.9.
- Users should NOT upgrade to OCP 4.9 if they are on a 3scale version <= 2.10. If they do that 3scale will stop working and they won't have any functional upgrade path available. We should make this very visible and clear (doc, ...)
- Due to CRDs v1beta1 will not work on OCP 4.9 and future versions, we should deprecate all the bundles that use CRD v1beta1 in the OCP 4.9 index image. This is, all bundles corresponding to 3scale versions up to and including 2.10. The deprecation of the bundles in the index image should be done BEFORE 4.9 is GA. Red Hat releases the 4.9 index image internally as soon as 4.8 is GA and there's some window time where we will be able to do this changes before 4.9 going GA.
- From the previous points, this implies that we should provide/release a 3scale version that contains v1 CRDs (the first one including those is 3scale 2.11) to be installable in an OCP version <= 4.8 so users can upgrade to the 3scale version that contains v1 CRDs before upgrading to OCP 4.9. This means that ideally this should happen before 4.9 is released and before changes to the OCP 4.9 index image stop being accepted pre-4.9-ga. Otherwise, users won't be able to use 3scale on OCP 4.9 until we do a release that contains v1 CRDs.
- In case of community version of the operators, at the moment of writing this (2021-04-14) it is unknown how the deprecation process will work as work on the red hat catalog / pipelines is still currently being done
- In case of the operatorhub.io version of the apicast-operator, we've been told there's no really good way for it. So, the solution I can think of in this case is that users should upgrade to the 3scale version using CRD v1 before upgrading to K8s 1.22, and starting from K8s 1.22 only 3scale 2.11 and future versions will be supported. Probably we won't have a way to deprecate older bundles in the case of operatorhub.io so the channels will still appear there, and they simply will not work
- Due to bundle/index images support was introduced in OCP 4.6 and the deprecations control is for bundle/index images, 3scale 2.11 and future versions won't be released in OCP <= 4.5. To do that when creating the new bundles the appropriate annotations to release them in OCP >= 4.6 will have to be set. Additionally, probably for future 3scale versions we will stop releasing them on previous ocp versions higher than 4.6 gradually (4.7, 4.8, ...) as new 3scale versions keep being released, for maintenance purposes.
- is related to
-
THREESCALE-7609 Productize 3scale and apicast operators for 2.11.0 using skipRange in the CSV
- Closed