Version: v1.8
Overview
Workflows, as part of the Application, can glue together additional delivery processes and specify arbitrary delivery environments. In short, Workflow
provides customized control flow and flexibility based on the original delivery model of Kubernetes(Apply). For example, Workflow
can be used to implement complex operations such as pause, manual approval, if conditions, waiting status, data flow, multi-environment gray release, A/B testing, etc.
A workflow consists of multiple steps, and typical workflow steps include step groups (containing a series of sub-steps), human review, multi-cluster publishing, notifications, etc. You can view all built-in workflow steps provided by default in KubeVela in built-in workflow steps. If the built-in workflow steps don’t meet your needs, you can also custom workflow steps.
Workflow
consists of steps, you can either use KubeVela’s built-in workflow steps like suspend
, notification
, deploy
, step-group
etc, or customize your own WorkflowStepDefinition.
In fact, if you only use components in the Application and do not declare a workflow, KubeVela will automatically create a default workflow for deploying the components when running the Application.
In VelaUX, you can feel the workflow more intuitively. As shown in the figure: The following is a workflow where the first step succeeds and the second fails:
In the workflow, all the steps will be executed sequentially and the next step will be executed after the previous one succeeded. If a step is of type step-group
, it can contain a series of sub-steps, all of which are executed together when the step group is executed.
In KubeVela 1.5.0+, you can explicitly specify the execution mode of steps, such as:
workflow:
mode:
steps: StepByStep
subSteps: DAG
There’re two modes of execution: StepByStep and DAG.
If you do not explicitly declare the execution mode, by default steps are executed sequentially in StepByStep and subSteps are executed in parallel in DAG.
Application | Workflow | Description |
---|---|---|
runningWorkflow | executing | When the workflow is executing, the status of the application is runningWorkflow |
workflowSuspending | suspending | When the workflow is suspended, the status of the application is workflowSuspending |
workflowTerminated | terminated | When the workflow is terminated, the status of the application is workflowTerminated |
workflowFailed | failed | When a step in the workflow fails and the workflow is completed, the status of the application is workflowFailed |
running | succeeded | When all steps in the workflow are executed successfully, the status of the application is running |
Workflow has powerful process control capabilities, including:
- View Workflow Operations to learn how to operate the workflow.
- View Suspend and Resume Workflow to learn how to suspend and resume a workflow.
- View Sub Steps to learn how to use sub-steps in the workflow.
- View Dependency to learn how to specify dependencies for workflow steps.
- View Pass data between steps to learn how to use
inputs
,outputs
to pass data between steps. - View If Conditions to learn how to use
if
to determine whether the step should be executed. - View Timeout Steps to learn how to set
timeout
for steps. - View Debug Workflow to learn how to debug workflow in the real environment.
Last updated on May 6, 2023 by Tianxin Dong