Uploaded image for project: 'Operator Runtime'
  1. Operator Runtime
  2. OPRUN-2074

OLM blocks minor OpenShift upgrades when incompatible optional operators are installed

XMLWordPrintable

    • None
    • None
    • Qui-gon [OLM 199], Rey [OLM 199], Star Trek [OLM 200]

      User Story:

      As an OpenShift cluster admin, I want OLM to block cluster upgrades if one or more of the operators that it manages will will not run on the next minor OpenShift version.

      Why does this need to be released in 4.8?

      There will be a breaking API change introduced in 4.9.0: v1beta1 CRDs are removed. Many optional operators deployed by OLM still use v1beta1 CRDs.

      In order to prevent an upgrade from 4.8 to 4.9 that results in breaking these operators, at minimum we need:

      • A way for operator authors to signify which minor versions of OpenShift their operator is compatible with
      • OLM to signal to CVO – the thing that controls cluster upgrades – when operators, incompatible with the next minor version of OpenShift, are installed on a cluster

      This task enables the second bullet point above.

      Why can't this wait until 4.9 is released?

      OLM will not signal incompatibilities, leading to unsafe cluster upgrades that may result in broken optional operators and even data loss.
       
      Acceptance Criteria:

      • OLM sets the Upgradeable Condition of its ClusterOperator to false if any operator it manages includes a maxOpenShiftVersion bundle property that specifies a cluster version less than or equal to the current cluster version
      • The Upgradeable condition is set to true once all managed operators can be upgraded

              njhale Nicholas Hale (Inactive)
              agreene1991 Alexander Greene (Inactive)
              None
              Jian Zhang Jian Zhang
              None
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: