Kubernetes steps timeouts and deadline parameters
This topic describes how Harness Timeout settings relate to the Kubernetes deadline parameter.
Every step in a Harness Kubernetes Deploy stage includes a Timeout setting. This setting determines how long Harness attempts to run the step before failing the step and initiating the step or stage Failure Strategy.
When setting step Timeout settings, it's important to know that Kubernetes has an optional deadline parameter that specifies the number of seconds you want Kubernetes to wait for your Deployment to progress before the system reports back that the Deployment has failed progressing.
The Kubernetes deadline parameter .spec.progressDeadlineSeconds
is an optional field that performs this function.
See Progress Deadline Seconds from Kubernetes.
Once the deadline has been exceeded, the Deployment controller adds a DeploymentCondition with the following attributes to the status of the resource (Deployment's .status.conditions
):
type: Progressing
status: "False"
reason: ProgressDeadlineExceeded
For example:
Status : demoservice2-deploy-app1 error: deployment "demoservice2-deploy-app1" exceeded its progress deadline
The Deployment controller will keep retrying the Deployment. This defaults to 600
.
If you are using the Kubernetes deadline parameter .spec.progressDeadlineSeconds
option, ensure that you identify whether a timeout is the result of that parameter or the Harness step Timeout setting.