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
step-group etc, or customize your own
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:
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.
State of Application and Workflow
|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
outputsto pass data between steps.
- View If Conditions to learn how to use
ifto determine whether the step should be executed.
- View Timeout Steps to learn how to set
- View Debug Workflow to learn how to debug workflow in the real environment.