argoproj / argo-cd

Declarative Continuous Deployment for Kubernetes
https://argo-cd.readthedocs.io
Apache License 2.0
18.04k stars 5.51k forks source link

Pluggable Health Checks & community health check catalog #5722

Open sbose78 opened 3 years ago

sbose78 commented 3 years ago

Summary

Introduce a HealthCheck CRD for defining healthchecks for non-standard Kubernetes types ( and overrides to standard Kubernetes types). This would make custom health checks pluggable and more manage-able for a specific deployment of ArgoCD

Motivation

Proposal

alexmt commented 3 years ago

We've faced several health check issues after upgrading to v2.0: After https://github.com/argoproj/argo-cd/issues/6039 and https://github.com/argoproj/argo-cd/issues/6035. The fix requires Argo CD release although health check is just a Lua script.

At the same time, I really don't want to make Argo CD similar to Istio and ask users to install dozens of CRDs. What do you think about the following compromise solution:

This way we can keep the number of required CRDs small. If later we learn that everyone install HealthCheck then we can merge it into Argo CD

What do you think @sbose78 ?

sbose78 commented 3 years ago

That sounds like a great approach!

jessesuen commented 3 years ago

@sbose78 we'd like to fold this into the Argo CD extensions proposal, which will replace current mechanism of health checks in the argocd configmap: https://github.com/argoproj/argo-cd/pull/6240

sbose78 commented 3 years ago

Thank you, I'll review it, Jesse!