Uploaded image for project: 'OpenShift Container Platform (OCP) Strategy'
  1. OpenShift Container Platform (OCP) Strategy
  2. OCPSTRAT-2669

TP: native mechanisms to designate override versions for registry+v1 bundles

XMLWordPrintable

    • Product / Portfolio Work
    • OCPSTRAT-288Improve the operator catalog user experience
    • 0% To Do, 100% In Progress, 0% Done
    • False
    • Hide

      None

      Show
      None
    • False
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Feature Overview (aka. Goal Summary)  

      FBC registry+v1 bundles have never supported use-cases associated with re-publishing an identical-version bundle, for e.g. CVEs, accidents, and have relied on machinery in pipelines to override users' expectations, with a number of caveats. 

      By providing a format-native schema for determining preference among bundles with the same nominal version, we provide surprise-free abilities to perform retrograde updates to fulfill a number of use-cases.

      Goals (aka. expected user outcomes)

      Operator authors will be able to re-publish a bundle with a higher `release` attribute than predecessors, and it will be preferred on-cluster over similarly-versioned bundles while providing migration paths for customer with existing installs of the bundle with lesser release versions.

      Requirements (aka. Acceptance Criteria):

       

      Deployment considerations List applicable specific needs (N/A = not applicable)
      Self-managed, managed, or both n/a
      Classic (standalone cluster) n/a
      Hosted control planes production/consumption tooling versions will need to be aligned to use new capability
      Multi node, Compact (three node), or Single node (SNO), or all "
      Connected / Restricted Network "
      Architectures, e.g. x86_x64, ARM (aarch64), IBM Power (ppc64le), and IBM Z (s390x) n/a
      Operator compatibility production tooling must be updated to use new capability
      Backport needed (list applicable versions) n/a
      UI need (e.g. OpenShift Console, dynamic plugin, OCM) console would need to update to enable pinning at release versions
      Other (please specify) n/a

      Use Cases (Optional):

      • operator bundle authors (and automated systems fulfilling this persona) must be capable of expressing a re-release relation to existing, published bundle versions in ClusterServiceVersions to enable the ability for authors to be able to create and publish re-released registry+v1 bundle manifests.
      • operator bundle authors (and automated systems fulfilling this persona) must be capable of expressing and validating operator upgrade graphs containing re-release version representations, including
        • re-release naming constraints to ensure superseding relationship is transparent
        • adoption and conversion of existing content using the existing freshmaker `olm.substitutesFor` annotation-based API and version expression paradigms
      • operator bundle authors (...) must have simplified approaches to avoid upgrade graph confusion by adhering to re-release upgrade graph best practices.
        • (in the form of a catalog template)
      • opm tooling must be capable of providing a stable ordering of multiple bundle versions for a package where re-release version information may or may not be present, as well as exporting the ordering functions as part of a library for other tooling to utilize.
        • (level TBD, but might be at declcfg.Bundle or model.Bundle levels)
      • olmv1 successor identification must utilize a stable ordering of multiple bundle versions for a package where re-release version information may or may not be present, and prefer the highest re-released bundle with identical version as that selected (as maximal extent; as pinned version; other?).  Functionality must be feature-gated.
      • cluster-admins (olmv1) must be capable of selecting re-release-version-specific bundle versions.  Functionality may be feature-gated.
        • ClusterExtension API must be capable of accepting re-release-version-specific pinning.
        • ClusterExtension API must fail deployment with a clear diagnostic indicator if a re-release-version-specific pin is specified which results in no bundles found (TBD whether this needs to differentiate from existing "no matching bundles found" messaging).
      • olmv0 must be capable of utilizing a stable ordering of multiple bundle versions for a package where re-release version information may or may not be present which favors re-released bundles, wherever bundle ordering outside the version graph is utilized. There are no feature-gates in v0. 

      Questions to Answer (Optional):

      Include a list of refinement / architectural questions that may need to be answered before coding can begin.  Initial completion during Refinement status.

      <your text here>

      Out of Scope

      • unrelated updates to ClusterServiceVersion or the registry+v0 spec
      • introduction of new FBC schema
      • updates to the olmv0 GRPC API (all graph updates will be performed on the production side such that they are correct when presented via the GRPC API)
      • introduction of a feature-gating mechanism to OLMv0

      Background

      https://docs.google.com/document/d/1tX0fXYuflTpTal6z0TbNkrQ7SAkYIKxQj4cPjlFAh4Q/

      Customer Considerations

      n/a

      Documentation Considerations

      Documentation updates will need to be made for receiving OCP versions in the area of

      • "what is a release version"
      • interaction with previous freshmaker feature
      • tooling descriptions (template, opm render/migrate support)
      • ClusterExtension API changes
      • ClusterExtension release-version pinning implications and howto
      • ClusterServiceVersion API documentation

      Interoperability Considerations

      • ClusterServiceVersion changes should be ignored in any case where the on-cluster processes lag behind the production versions where this feature is introduced.  For example, if a package introduces a new CSV with a release version which is intended for consumption in OCP 4.16..4.21, then OCP versions older than this feature will ignore the unknown field.
      • ROSA/HCP configurations where the default catalogs available to the managed cluster straddle the feature delivery timing (in either direction) will ignore the unknown field. 

       

              rh-ee-jkeister Jordan Keister
              rh-ee-jkeister Jordan Keister
              None
              Matthew Werner
              Joe Lanford Joe Lanford
              Xia Zhao Xia Zhao
              Michael Peter Michael Peter
              Eric Rich Eric Rich
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: