• Icon: Feature Feature
    • Resolution: Duplicate
    • Icon: Critical Critical
    • None
    • None
    • Operator Framework
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • OCPSTRAT-27Operators and Operator Lifecycle Management and Operator Hub
    • 50% To Do, 0% In Progress, 50% Done
    • 0
    • 0
    • Program Call

      Feature Overview (aka. Goal Summary)  

      OLM 1.0 ensures CustomResourceDefinition (CRD) upgrades are safe so that operators/extensions don’t break during an upgrade.

      Goals (aka. expected user outcomes)

      OLM needs to implement proper support for validating CRD upgrades; without it, OLM could upgrade to a revision of a CRD that is backward incompatible and result in:

      • CustomResources (CRs) that currently exist in the object store are no longer valid
        • Causes operator/extensions to fail reconciliation of existing CRs
      • Manual user intervention to update all existing CRs to the new version
      • operator/extensions, workloads, and tooling that depend on CRs mapping to a specific version of the CRD may break

      Requirements (aka. Acceptance Criteria):

      1. An upgrade must be prevented if the new CRD:
      • Removes any existing API version that is stored in the object store (etcd) as a stored version.
      • Makes breaking changes to data serialization of existing API versions:
      • No field’s type may be changed
      • No field may be dropped
      • New fields can not be marked as required
      • No enum values removed
      • Makes validation more restrictive
      1. When an upgrade is prevented, the status of the Operator is updated to inform users that an upgrade could not proceed due to CRD incompatibility

       

      Anyone reviewing this Feature needs to know which deployment configurations that the Feature will apply to (or not) once it's been completed.  Describe specific needs (or indicate N/A) for each of the following deployment scenarios. For specific configurations that are out-of-scope for a given release, ensure you provide the OCPSTRAT (for the future to be supported configuration) as well.

      Deployment considerations List applicable specific needs (N/A = not applicable)
      Self-managed, managed, or both  
      Classic (standalone cluster)  
      Hosted control planes  
      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)  
      Operator compatibility  
      Backport needed (list applicable versions)  
      UI need (e.g. OpenShift Console, dynamic plugin, OCM)  
      Other (please specify)  

      Use Cases (Optional):

      Include use case diagrams, main success scenarios, alternative flow scenarios.  Initial completion during Refinement status.

      <your text here>

      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

      High-level list of items that are out of scope.  Initial completion during Refinement status.

      <your text here>

      Background

      Upstream engineering brief: https://docs.google.com/document/d/1J5LP1l46AcLB2AlGoVXRWvHWA5XeZLkgSnQk8yb5brQ/edit?usp=sharing

      Customer Considerations

      Provide any additional customer-specific considerations that must be made when designing and delivering the Feature.  Initial completion during Refinement status.

      <your text here>

      Documentation Considerations

      Provide information that needs to be considered and planned so that documentation will meet customer needs.  If the feature extends existing functionality, provide a link to its current documentation. Initial completion during Refinement status.

      <your text here>

      Interoperability Considerations

      Which other projects, including ROSA/OSD/ARO, and versions in our portfolio does this feature impact?  What interoperability test scenarios should be factored by the layered products?  Initial completion during Refinement status.

      <your text here>

            Unassigned Unassigned
            rhn-coreos-tunwu Tony Wu
            Jian Zhang Jian Zhang
            Matthew Werner Matthew Werner
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: