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

Red Hat CRDs health check and diff configs for Argo CD

XMLWordPrintable

    • Strategic Product Work
    • False
    • Hide

      None

      Show
      None
    • False
    • OCPSTRAT-1599Increase OpenShift compatibility with GitOps
    • 100% To Do, 0% In Progress, 0% Done
    • 0

      Feature Overview (aka. Goal Summary)  

      Argo CD has built-in support for assessing the health of most Kubernetes resources such as Deployment, Service, etc. OpenShift and layered products extensively use CRDs  and while Argo CD allows defining custom health checks and diff rules for these resources, it is the admin responsibility to define appropriate health checks and diff customization for each CRD. This raises a couple of problems for customers:

      • Knowledge gap: defining appropriate health checks for CRDs requires intimate knowledge of its respective operator and this knowledge exists within the engineering team owning the operator rather than the user deploying an instance of Argo CD.
      • Admin and tenant scope: custom health checks and resource customizations are defined centrally in Argo CD by admin. Therefore it requires admins to know beforehand the list of custom resources that tenants will be deploying and makes tenants dependent on admin for frequently updating these configs afterwards. This is particularly a challenge for the most command pattern at Red Hat customers where the platform teams provide Argo CD as a service to the tenants.
      • Repeated diff configs: while diff customizations can be managed by Argo CD tenants specifically for their applications, every single tenant and application requires to add the same diff customizations repeatedly.
      • Red Hat portfolio integration: customers are increasingly adopting GitOps workflows and expect OpenShift GitOps to be integrated with the rest of Red Hat portfolio and contain accurate health checks and diff settings for Red Hat CRDs out-of-the-box.

      Goals (aka. expected user outcomes)

      • OpenShift GitOps to container accurate health-checks and diff customizations for OpenShift core and layered products.
      • Develop an extensible framework for Red Hat teams to own the health-check and diff customization of the CRDs that they own
      • Enable Argo CD to import the Red Hat CRDs health check and diff customization automatically and without user intervention in connected clusters
      • Enable Argo CD to import the Red Hat CRDs health check and diff customization with minimal intervention in disconnected clusters
      • The lifecycle of the CRDs health assessment and diff customizations is decoupled from the lifecycle of OpenShift GitOps and Argo CD

      Requirements (aka. Acceptance Criteria):

      Deployment considerations List applicable specific needs (N/A = not applicable)
      Self-managed, managed, or both X
      Classic (standalone cluster) X
      Hosted control planes X
      Multi node, Compact (three node), or Single node (SNO), or all X
      Connected / Restricted Network X
      Architectures, e.g. x86_x64, ARM (aarch64), IBM Power (ppc64le), and IBM Z (s390x) X
      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

      Argo CD provides health assessment for Kubernetes resources it syncs to the cluster, which is then surfaced to the overall Application health status as a whole and is displayed in the Argo CD dashboard with a green check icon. The health assessment allows operators to determine the health of the applications deployed and if post-deployments actions need to be taken such as rolling back to a previous version. As a result, providing accurate health assessments in Argo CD is crucial to operators in order to perform safe deployments and recover from failed deployments rapidly.

      Furthermore, Argo CD allows customizing diffing for resources in order to address OutOfSync issues that are due to reasons that are outside the control of the team deploying the applications. This is particularly useful when resources are not fully owned by the Git repo and operators or mutating webhooks modify part of the object on the cluster, creating a diff that does not require a sync from the Git repository. 

      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
              rh-ee-ssadeghi Siamak Sadeghianfar
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: