-
Feature
-
Resolution: Unresolved
-
Major
-
None
-
None
-
Strategic Product Work
-
False
-
-
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>
- is documented by
-
RHDEVDOCS-6157 Docs for OCPSTRAT-1603 Red Hat CRDs health check and diff configs for Argo CD
- Open