---
title: Suspend and Resume
---
This section introduces how to suspend and resume the workflow in KubeVela.
## Suspend the Workflow
In KubeVela, you can choose to use the `vela` command to manually suspend the execution of the workflow, or use a built-in special step type `suspend` to automatically suspend the workflow.
### Suspend Manually
If you have an application in `runningWorkflow` state, you want to stop the execution of the workflow, you can use `vela workflow suspend` to stop the workflow and use `vela workflow resume` to continue it.
* Suspend the application
```bash
vela workflow suspend my-app
```
:::tip
Nothing will happen if you suspend an application that has already finished running workflow, which is in `running` status.
:::
### Use Suspend Step
Apply the following example:
```yaml
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: suspend-demo
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: apply1
type: apply-component
properties:
component: comp1
- name: suspend
type: suspend
- name: apply2
type: apply-component
properties:
component: comp2
```
Use `vela status` to check the status of the Application:
```bash
vela status suspend-demo
```
expected output
```
About:
Name: suspend-demo
Namespace: default
Created at: 2022-06-27 17:36:58 +0800 CST
Status: workflowSuspending
Workflow:
mode: StepByStep
finished: false
Suspend: true
Terminated: false
Steps
- id:yj9h29uv6v
name:apply1
type:apply-component
phase:succeeded
- id:xvmda4he5e
name:suspend
type:suspend
phase:running
Services:
- Name: comp1
Cluster: local Namespace: default
Type: webservice
Healthy Ready:1/1
No trait applied
```
As you can see, when the first step is completed, the `suspend` step will be executed and this step will suspend the workflow.
## Resume the Workflow
### Resume Manually
Once the workflow is suspended, you can use the `vela workflow resume` command to manually resume the workflow.
Take the above suspended application as an example:
```bash
vela workflow resume suspend-demo
```
After successfully continuing the workflow, view the status of the app:
```bash
vela status suspend-demo
```
expected output
```
About:
Name: suspend-demo
Namespace: default
Created at: 2022-06-27 17:36:58 +0800 CST
Status: running
Workflow:
mode: StepByStep
finished: true
Suspend: false
Terminated: false
Steps
- id:yj9h29uv6v
name:apply1
type:apply-component
phase:succeeded
message:
- id:xvmda4he5e
name:suspend
type:suspend
phase:succeeded
message:
- id:66jonaxjef
name:apply2
type:apply-component
phase:succeeded
message:
Services:
- Name: comp2
Cluster: local Namespace: default
Type: webservice
Healthy Ready:1/1
No trait applied
- Name: comp1
Cluster: local Namespace: default
Type: webservice
Healthy Ready:1/1
No trait applied
```
As you can see, the workflow has continued to execute.
### Resume the Workflow Automatically
If you want the workflow to be continued automatically after a period of time has passed. Then, you can add a `duration` parameter to the `suspend` step. When the `duration` time elapses, the workflow will automatically continue execution.
Apply the following example:
```yaml
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: auto-resume
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: apply1
type: apply-component
properties:
component: comp1
- name: suspend
type: suspend
properties:
duration: 5s
- name: apply2
type: apply-component
properties:
component: comp2
```
Use `vela status` to check the status of the Application:
```bash
vela status auto-resume
```
expected output
```
About:
Name: auto-resume
Namespace: default
Created at: 2022-06-27 17:57:35 +0800 CST
Status: running
Workflow:
mode: StepByStep
finished: true
Suspend: false
Terminated: false
Steps
- id:q5jhm6mgwv
name:apply1
type:apply-component
phase:succeeded
message:
- id:3xgfcp3cuj
name:suspend
type:suspend
phase:succeeded
message:
- id:zjux8ud876
name:apply2
type:apply-component
phase:succeeded
message:
Services:
- Name: comp2
Cluster: local Namespace: default
Type: webservice
Healthy Ready:1/1
No trait applied
- Name: comp1
Cluster: local Namespace: default
Type: webservice
Healthy Ready:1/1
No trait applied
```
As you can see, the `suspend` step is automatically executed successfully after five seconds, and the workflow is executed successfully.