See Diffing documentation for reasons resources can be OutOfSync, and ways to configure Argo CD to ignore fields when differences are expected.
Argo CD provides health for several standard Kubernetes types. The Ingress
and StatefulSet
types have known issues which might cause health check
to return Progressing
state instead of Healthy
.
-
Ingress
is considered healthy ifstatus.loadBalancer.ingress
list is non-empty, with at least one value forhostname
orIP
. Some ingress controllers (contour, traefik) don't updatestatus.loadBalancer.ingress
field which causesIngress
to stuck inProgressing
state forever. -
StatufulSet
is considered healthy if value ofstatus.updatedReplicas
field matches tospec.replicas
field. Due to Kubernetes bug kubernetes/kubernetes#68573 thestatus.updatedReplicas
is not populated. So unless you run Kubernetes version which include the fix kubernetes/kubernetes#67570StatefulSet
might stay inProgressing
state.
As workaround Argo CD allows providing health check customization which overrides default behavior.
Edit the argocd-secret
secret and update the admin.password
field with a new bcrypt hash. You
can use a site like https://www.browserling.com/tools/bcrypt to generate a new hash. Another option
is to delete both the admin.password
and admin.passwordMtime
keys and restart argocd-server.