Argo CD Upgrade to v3.1.2 Causes OpenTelemetryCollector to Remain in Progressing State
Upgrading from Argo CD v3.0.x to v3.1.2 caused OpenTelemetryCollector resource status issue due to health check logic
When upgrading Argo CD from v3.0.x to v3.1.2, the deployment enters a continuous Progressing state and never reports Healthy, despite the application working normally.
This issue specifically affects resources using OpenTelemetryCollector in sidecar mode, due to changes introduced in Argo CD’s default health check logic.
Rolling back to v3.0.15 resolves the problem.
-
In v3.1.2, Argo CD introduced new health checks for OpenTelemetryCollector.
-
The health check expects the following field to be populated by the controller:
status.scale.statusReplicas -
In this case, the otel controller is not populating this field, especially when the mode is set to
sidecar. -
Since the required field is missing, Argo CD cannot determine that the resource is healthy.
To resolve this as a workaround, override the Argo CD default health check to force the resource into a healthy state.
Add the following to the Argo CD instance resource.customizations:
hs = {}hs.status = "Healthy"return hs
This bypasses the health evaluation for the affected resource.
Use this only as a temporary measure if immediate resolution is needed.
In the instance configuration (via UI or declaratively), under argocdConfigMap → resource.customizations:
resource.customizations: | "opentelemetry.io/OpenTelemetryCollector": health.lua: | hs = {} hs.status = "Healthy" return hs
References:
-
Argo CD v3.1.x Health Check Enhancements
-
OpenTelemetry Operator documentation