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

FeatureGate based manifest inclusion for CVO

XMLWordPrintable

    • Product / Portfolio Work
    • None
    • False
    • Hide

      None

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

      Feature Overview (aka. Goal Summary)  

      An elevator pitch (value statement) that describes the Feature in a clear, concise way.  Complete during New status.

      CVO currently manages manifests being included in the payload based on whether or not they are in the currently enabled feature set.

      Feature sets contain many features and do not align well with the way that we promote features (individually with feature gates), making this an awkward mechanism to use for features that require conditional inclusion in the payload.

      Would like to see:

      • The ability to include a specific manifest only when a specific feature gate is enabled
      • The ability to include a specific manifest only when a specific feature gate is disabled

      By allowing both enabled and disabled semantics, this would allow, for example, two versions of a single manifest to be deployed, where one is the behaviour when the gate is enabled, and one when the gate is not.

      Imagine in a future world we use feature gates to remove features, the disabled version of the manifest could be a CVO tombstone, allowing CVO to clean up an operator once the feature is removed.

      Goals (aka. expected user outcomes)

      The observable functionality that the user now has as a result of receiving this feature. Include the anticipated primary user type/persona and which existing features, if any, will be expanded. Complete during New status.

      • Allow fine grained inclusion of manifests based on gates being enabled/disabled
      • Allow combinations of feature gates (E.g. AND and OR semantics)
      • Atomic enablement of features through the o/api repository

      Requirements (aka. Acceptance Criteria):

      A list of specific needs or objectives that a feature must deliver in order to be considered complete.  Be sure to include nonfunctional requirements such as security, reliability, performance, maintainability, scalability, usability, etc.  Initial completion during Refinement status.

      A new annotation can be applied to manifests that allows them to be excluded when a feature gate is disabled, or, excluded when a feature gate is enabled

       

      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.

      E.g. The Cluster CAPI operator will soon be deployed conditionally on certain platforms based on feature gates. We do not wish to deploy the operator on vSphere until the vSphere feature gate is ready to be promoted. By gating the manifests on the vSphere specific CAPI feature gate, we could prevent it from being deployed on vSphere until the gate is promoted, but allow it to be deployed on AWS when the AWS gate is promoted before the vSphere feature gate.

      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

      Provide any additional context is needed to frame the feature.  Initial completion during Refinement status.

      <your text here>

      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>

              rh-ee-smodeel Subin M
              joelspeed Joel Speed
              None
              None
              None
              None
              None
              None
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: