What is Progress Deadline config in Kubernetes and how it impacts Harness Deployments?

Harness uses Kubernetes readiness probes to check if the cluster/pods are in a ready state or not. The Kubernetes default for the readiness probe is 10 minutes. This means that even if the deployment is still happening, the readiness probe will mark it as failed after 10 minutes.

Error received at Harness end for failure related to Progress Deadline:

ERROR **: deployment "xxxxx-xx-prod-canary" exceeded its progress deadline**

For its part, Harness puts a configurable timeout on the entire deployment step (not just the waiting for ready state) and during the waiting for ready state, we call the readiness probe to monitor the deployment. The readiness probe, based on Kubernetes defaults, marks the deployment failed after 10 minutes. Harness sees the message from the readiness probe and reports the deployment as failed due to exceeded deadline.

As a solution, readiness probe default timeout can be extended in helm chart or k8s yaml by specifying the progressDeadlineSeconds value in seconds. The default is 600 seconds (10 minutes).

More details on it here: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

2 Likes