Built-in WorkflowStep Type
This documentation will walk through all the built-in workflow step types sorted alphabetically.
It was generated automatically by scripts, please don't update manually, last updated at 2026-04-16T11:50:12+01:00.
Addon-Operation
Description
Enable a KubeVela addon.
Scope
This step type is only valid in WorkflowRun.
Examples (addon-operation)
apiVersion: core.oam.dev/v1alpha1
kind: WorkflowRun
metadata:
name: observability
namespace: vela-system
spec:
context:
readConfig: true
mode:
workflowSpec:
steps:
- name: Enable Prism
type: addon-operation
properties:
addonName: vela-prism
- name: Enable o11y
type: addon-operation
properties:
addonName: o11y-definitions
operation: enable
args:
- --override-definitions
- name: Prepare Prometheus
type: step-group
subSteps:
- name: get-exist-prometheus
type: list-config
properties:
template: prometheus-server
outputs:
- name: prometheus
valueFrom: "output.configs"
- name: prometheus-server
inputs:
- from: prometheus
# TODO: Make it is not required
parameterKey: configs
if: "!context.readConfig || len(inputs.prometheus) == 0"
type: addon-operation
properties:
addonName: prometheus-server
operation: enable
args:
- memory=4096Mi
- serviceType=LoadBalancer
- name: Prepare Loki
type: addon-operation
properties:
addonName: loki
operation: enable
args:
- --version=v0.1.4
- agent=vector
- serviceType=LoadBalancer
- name: Prepare Grafana
type: step-group
subSteps:
- name: get-exist-grafana
type: list-config
properties:
template: grafana
outputs:
- name: grafana
valueFrom: "output.configs"
- name: Install Grafana & Init Dashboards
inputs:
- from: grafana
parameterKey: configs
if: "!context.readConfig || len(inputs.grafana) == 0"
type: addon-operation
properties:
addonName: grafana
operation: enable
args:
- serviceType=LoadBalancer
- name: Init Dashboards
inputs:
- from: grafana
parameterKey: configs
if: "len(inputs.grafana) != 0"
type: addon-operation
properties:
addonName: grafana
operation: enable
args:
- install=false
- name: Clean
type: clean-jobs
- name: print-message
type: print-message-in-status
properties:
message: "All addons have been enabled successfully, you can use 'vela addon list' to check them."
Specification (addon-operation)
| Name | Description | Type | Required | Default | Immutable |
|---|---|---|---|---|---|
| addonName | Specify the name of the addon. | string | true | ||
| args | Specify addon enable args. | []string | false | ||
| image | Specify the image. | string | false | oamdev/vela-cli:v1.7.2 | |
| operation | operation for the addon. | "enable" or "upgrade" or "disable" | false | enable | |
| serviceAccountName | specify serviceAccountName want to use. | string | false | kubevela-vela-core |
Apply-App
Description
Apply application from data or ref to the cluster.
Scope
This step type is only valid in WorkflowRun.
Examples (apply-app)
apiVersion: core.oam.dev/v1alpha1
kind: WorkflowRun
metadata:
name: apply-applications
namespace: default
annotations:
workflowrun.oam.dev/debug: "true"
spec:
workflowSpec:
steps:
- name: check-app-exist
type: read-app
properties:
name: webservice-app
- name: apply-app1
type: apply-app
if: status["check-app-exist"].message == "Application not found"
properties:
data:
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: webservice-app
spec:
components:
- name: express-server
type: webservice
properties:
image: crccheck/hello-world
ports:
- port: 8000
- name: suspend
type: suspend
timeout: 24h
- name: apply-app2
type: apply-app
properties:
ref:
name: my-app
key: application
type: configMap
---
apiVersion: v1
kind: ConfigMap
metadata:
name: my-app
namespace: default
data:
application: |
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: webservice-app2
spec:
components:
- name: express-server2
type: webservice
properties:
image: crccheck/hello-world
ports:
- port: 8000
Specification (apply-app)
| Name | Description | Type | Required | Default | Immutable |
|---|---|---|---|---|---|
| data | map[string]_ | false | |||
| ref | ref | false |
ref (apply-app)
| Name | Description | Type | Required | Default | Immutable |
|---|---|---|---|---|---|
| name | string | true | |||
| namespace | | | true | |||
| type | string | false | configMap | ||
| key | string | false | application |
Apply-Component
Description
Apply a specific component and its corresponding traits in application.
Scope
This step type is only valid in Application.
Examples (apply-component)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: first-vela-workflow
namespace: default
spec:
components:
- name: express-server
type: webservice
properties:
image: oamdev/hello-world
port: 8000
traits:
- type: ingress
properties:
domain: testsvc.example.com
http:
/: 8000
workflow:
steps:
- name: express-server
type: apply-component
properties:
component: express-server
# cluster: <your cluster name>
# namespace: <your namespace name>
Specification (apply-component)
| Name | Description | Type | Required | Default | Immutable |
|---|---|---|---|---|---|
| component | Specify the component name to apply. | string | true | ||
| cluster | Specify the cluster. | string | false | empty | |
| namespace | Specify the namespace. | string | false | empty |
Apply-Deployment
Description
Apply deployment with specified image and cmd.
Scope
This step type is valid in both Application and WorkflowRun.
Examples (apply-deployment)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: apply-deploy
namespace: default
spec:
components:
- name: express-server
type: webservice
properties:
image: oamdev/hello-world
port: 8000
workflow:
steps:
- name: apply-comp
type: apply-component
properties:
component: express-server
- name: apply-deploy
type: apply-deployment
properties:
image: nginx
Specification (apply-deployment)
| Name | Description | Type | Required | Default | Immutable |
|---|---|---|---|---|---|
| image | string | true | |||
| replicas | int | false | 1 | ||
| cluster | string | false | empty | ||
| cmd | []string | false |
Apply-Object
Description
Apply raw kubernetes objects for your workflow steps.
Scope
This step type is valid in both Application and WorkflowRun.
Examples (apply-object)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: server-with-pvc
namespace: default
spec:
components:
- name: express-server
type: webservice
properties:
image: oamdev/hello-world
port: 8000
volumes:
- name: "my-pvc"
type: "pvc"
mountPath: "/test"
claimName: "myclaim"
workflow:
steps:
- name: apply-pvc
type: apply-object
properties:
# Kubernetes native resources fields
value:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: myclaim
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
storageClassName: standard
# the cluster you want to apply the resource to, default is the current cluster
cluster: <your cluster name>
- name: apply-server
type: apply-component
properties:
component: express-serve
Specification (apply-object)
| Name | Description | Type | Required | Default | Immutable |
|---|---|---|---|---|---|
| value | Specify Kubernetes native resource object to be applied. | map[string]_ | true | ||
| cluster | The cluster you want to apply the resource to, default is the current control plane cluster. | string | false | empty |