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

Generic propagation of HostedCluster scheduling rules to OCP operator deployments

XMLWordPrintable

    • BU Product Work
    • False
    • Hide

      None

      Show
      None
    • False
    • 100% To Do, 0% In Progress, 0% Done
    • 4
    • 0

      Feature Overview (aka. Goal Summary)  

      We need a way to generically ensure HostedCluster placement rules are placed on all the HCP components without baking in knowledge of the HostedCluster into multiple operators. 

      Below is a more detailed explanation of why this is important.

      The HostedCluster influences the placement of where the control plane component pods are scheduled within the management cluster. Since most components are deployed directly by the CPO (a hypershift component), it is fairly simple to inject the HostedCluster placement rules into those components.

       

      However, there are other opreators (like the cluster-storage-operator) which influence the placement of additional components within the control plane's namespace that are not directly laid down by the CPO. This means the knowledge of the placement rules that the HostedCluster defines have to propagate to components beyond the components owned by the hypershift repo. 

      The result has been error prone. When changes happen to the HostedCluster scheduling, sometimes those changes don't accurately propagate to other components because the knowledge of what components are impacted by the change to the hypershift repo are not obvious.

       

      For example, when the Tolerations feature was added to the HostedCluster, it wasn't obvious that the change impacted multiple other repos, such as the network operator, storage operator, csi operators, etc... Today, all of those operators independently have to inspect the HostedCluster object and understand how to interpret the HostedCluster object. This has lead to inconsistent results

      Goals (aka. expected user outcomes)

      Introduce a generic way of influencing the placement of HCP components that does not require components outside of the Hypershift repo to interpret the HostedCluster object directly. 

      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.

      <enter general Feature acceptance here>

       

      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

      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>

              Unassigned Unassigned
              rhn-engineering-dvossel David Vossel
              Matthew Werner Matthew Werner
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: