Uploaded image for project: 'OpenShift Storage'
  1. OpenShift Storage
  2. STOR-1057

Refactor code of ClusterStorageOperator for Hypershift

    XMLWordPrintable

Details

    • TechDebt: refactor code for HyperShift in storage operators
    • 6
    • False
    • None
    • False
    • Green
    • To Do
    • OCPSTRAT-519 - Unify and Instrument Hosted Control Planes Storage Operators
    • OCPSTRAT-519Unify and Instrument Hosted Control Planes Storage Operators
    • 100
    • 100% 100%
    • If Release Note Needed, Set a Value
    • Set a Value

    Description

      Epic Goal*

      In 4.12 we tried several approaches how to write an operator that works both in standalone OCP and in HyperShift's control plane running in the management cluster.

      These operators need to be changed:

      • csi-snapshot-controller-operator
      • cluster-storage-operator
      • aws-ebs-csi-driver-operator

      We need to unify the operators  to use similar approach, so the code in our operators look the same.

      In addition, we need to update the operators to:

      • Expose metrics from control-plane components (esp. csi-snapshot-controller and aws-ebs-csi-driver-controller pods.
      • Use proper RBACs in the guest cluster, so csi-snapshot-controller and aws-ebs-csi-driver-controller does not run as cluster-admin
        • Note that all components already have proper RBACs in the mgmt. cluster.
      • Scale csi-snapshot-controller and aws-ebs-csi-driver-controller pods according to HostedControlPlane's AvailabilityPolicy
      • Add proper node selector + pod affinity to all Pods in the mgmt cluster according to https://hypershift-docs.netlify.app/how-to/distribute-hosted-cluster-workloads/

      Why is this important? (mandatory)

      It will simplify our operators - we will have the same pattern in all of them.

       

      Scenarios (mandatory) 

      Provide details for user scenarios including actions to be performed, platform specifications, and user personas.  

      1. OCP users (both standalone and hypershift) should not see any change.
      2. Code in the operators looks the same.

       
      Dependencies (internal and external) (mandatory)

      What items must be delivered by other teams/groups to enable delivery of this epic. 

      Contributing Teams(and contacts) (mandatory) 

      Our expectation is that teams would modify the list below to fit the epic. Some epics may not need all the default groups but what is included here should accurately reflect who will be involved in delivering the epic.

      • Development -  yes
      • Documentation - No
      • QE -  Regression tests only
      • PX - No
      • Others -

      Acceptance Criteria (optional)

      OCP regression tests work, both on standalone OCP and HyperShift.

      Drawbacks or Risk (optional)

      We could introduce regressions

      Done - Checklist (mandatory)

      The following points apply to all epics and are what the OpenShift team believes are the minimum set of criteria that epics should meet for us to consider them potentially shippable. We request that epic owners modify this list to reflect the work to be completed in order to produce something that is potentially shippable.

      • CI Testing -  Basic e2e automationTests are merged and completing successfully
      • QE - Test scenarios are written and executed successfully.
      • Engineering Stories Merged
      • All associated work items with the Epic are closed
      • Epic status should be “Release Pending” 

      Attachments

        Issue Links

          Activity

            People

              hekumar@redhat.com Hemant Kumar
              rhn-engineering-jsafrane Jan Safranek
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 3 weeks
                  3w
                  Remaining:
                  0m
                  Logged:
                  Time Not Required
                  Not Specified