96 lines
2.3 KiB
Markdown
96 lines
2.3 KiB
Markdown
---
|
|
title: Timeout of Step
|
|
---
|
|
|
|
:::note
|
|
You need to upgrade to version 1.5+ to use the timeout feature.
|
|
:::
|
|
|
|
This section introduces how to add timeout to workflow steps in KubeVela.
|
|
|
|
In KubeVela workflow, each step can specify a `timeout`, you can use `timeout` to specify the timeout time for the step.
|
|
|
|
`timeout` follows the `duration` format, e.g. `30s`, `1m`, etc. You can refer to Golang's [parseDuration](https://pkg.go.dev/time#ParseDuration).
|
|
|
|
If a step is not completed within the specified time, KubeVela will set the status of the step to `failed` and the `Reason` of the step will be set to `Timeout`.
|
|
|
|
Apply the following example:
|
|
|
|
```yaml
|
|
apiVersion: core.oam.dev/v1beta1
|
|
kind: Application
|
|
metadata:
|
|
name: timeout-example
|
|
namespace: default
|
|
spec:
|
|
components:
|
|
- name: comp1
|
|
type: webservice
|
|
properties:
|
|
image: crccheck/hello-world
|
|
port: 8000
|
|
- name: comp2
|
|
type: webservice
|
|
properties:
|
|
image: crccheck/hello-world
|
|
port: 8000
|
|
workflow:
|
|
steps:
|
|
- name: apply-comp1
|
|
type: apply-component
|
|
properties:
|
|
component: comp1
|
|
- name: suspend
|
|
type: suspend
|
|
timeout: 5s
|
|
- name: apply-comp2
|
|
type: apply-component
|
|
properties:
|
|
component: comp2
|
|
```
|
|
|
|
Use `vela status` to check the status of the Application:
|
|
|
|
```bash
|
|
$ vela status timeout-example
|
|
About:
|
|
|
|
Name: timeout-example
|
|
Namespace: default
|
|
Created at: 2022-06-25 00:51:43 +0800 CST
|
|
Status: workflowTerminated
|
|
|
|
Workflow:
|
|
|
|
mode: StepByStep
|
|
finished: true
|
|
Suspend: false
|
|
Terminated: true
|
|
Steps
|
|
- id:1f58n13qdp
|
|
name:apply-comp1
|
|
type:apply-component
|
|
phase:succeeded
|
|
message:
|
|
- id:1pfije4ugt
|
|
name:suspend
|
|
type:suspend
|
|
phase:failed
|
|
message:
|
|
- id:lqxyenjxj4
|
|
name:apply-comp2
|
|
type:apply-component
|
|
phase:skipped
|
|
message:
|
|
|
|
Services:
|
|
|
|
- Name: comp1
|
|
Cluster: local Namespace: default
|
|
Type: webservice
|
|
Healthy Ready:1/1
|
|
No trait applied
|
|
```
|
|
|
|
As you can see, when the first component is successfully deployed, the workflow is suspended on the second `suspend` step. The `suspend` step is set with a timeout of five seconds. If the workflow is not resumed within five seconds, the step will fail because of timeout. The third step is skipped because the previous `suspend` step failed.
|