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 2023-07-28T09:33:26+08: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
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 |
---|
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 |
---|
data | | map[string]_ | false | |
ref | | ref | false | |
ref (apply-app)
Name | Description | Type | Required | Default |
---|
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
Specification (apply-component)
Name | Description | Type | Required | Default |
---|
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 |
---|
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:
value:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: myclaim
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
storageClassName: standard
cluster: <your cluster name>
- name: apply-server
type: apply-component
properties:
component: express-server
Specification (apply-object)
Name | Description | Type | Required | Default |
---|
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 |
Description
Apply terraform configuration in the step.
Scope
This step type is valid in both Application and WorkflowRun.
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: apply-terraform-resource
namespace: default
spec:
components: []
workflow:
steps:
- name: provider
type: apply-terraform-provider
properties:
type: alibaba
name: my-alibaba-provider
accessKey: <accessKey>
secretKey: <secretKey>
region: cn-hangzhou
- name: configuration
type: apply-terraform-config
properties:
source:
path: alibaba/cs/dedicated-kubernetes
remote: https://github.com/FogDong/terraform-modules
providerRef:
name: my-alibaba-provider
writeConnectionSecretToRef:
name: my-terraform-secret
namespace: vela-system
variable:
name: regular-check-ack
new_nat_gateway: true
vpc_name: "tf-k8s-vpc-regular-check"
vpc_cidr: "10.0.0.0/8"
vswitch_name_prefix: "tf-k8s-vsw-regualr-check"
vswitch_cidrs: [ "10.1.0.0/16", "10.2.0.0/16", "10.3.0.0/16" ]
k8s_name_prefix: "tf-k8s-regular-check"
k8s_version: 1.24.6-aliyun.1
k8s_pod_cidr: "192.168.5.0/24"
k8s_service_cidr: "192.168.2.0/24"
k8s_worker_number: 2
cpu_core_count: 4
memory_size: 8
tags:
created_by: "Terraform-of-KubeVela"
created_from: "module-tf-alicloud-ecs-instance"
Name | Description | Type | Required | Default |
---|
source | specify the source of the terraform configuration. | type-option-1 or type-option-2 | true | |
deleteResource | whether to delete resource. | bool | false | true |
variable | the variable in the configuration. | map[string]_ | true | |
writeConnectionSecretToRef | this specifies the namespace and name of a secret to which any connection details for this managed resource should be written. | writeConnectionSecretToRef | false | |
providerRef | providerRef specifies the reference to Provider. | providerRef | false | |
region | region is cloud provider's region. It will override the region in the region field of providerRef. | string | false | |
jobEnv | the envs for job. | map[string]_ | false | |
forceDelete | forceDelete will force delete Configuration no matter which state it is or whether it has provisioned some resources. | bool | false | false |
Name | Description | Type | Required | Default |
---|
hcl | directly specify the hcl of the terraform configuration. | string | true | |
Name | Description | Type | Required | Default |
---|
name | | string | true | |
namespace | | | | true | |
Name | Description | Type | Required | Default |
---|
name | | string | true | |
namespace | | | | true | |
Description
Apply terraform provider config.
Scope
This step type is valid in both Application and WorkflowRun.
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: apply-terraform-provider
namespace: default
spec:
components: []
workflow:
steps:
- name: provider
type: apply-terraform-provider
properties:
type: alibaba
name: my-alibaba-provider
accessKey: <accessKey>
secretKey: <secretKey>
region: cn-hangzhou
Name | Description | Type | Required | Default |
---|
type | | string | true | |
accessKey | | string | true | |
secretKey | | string | true | |
name | | string | false | alibaba-provider |
region | | string | true | |
Name | Description | Type | Required | Default |
---|
token | | string | false | empty |
type | | string | true | |
accessKey | | string | true | |
secretKey | | string | true | |
name | | string | false | aws-provider |
region | | string | true | |
Name | Description | Type | Required | Default |
---|
subscriptionID | | string | true | |
tenantID | | string | true | |
clientID | | string | true | |
clientSecret | | string | true | |
name | | string | false | azure-provider |
Name | Description | Type | Required | Default |
---|
type | | string | true | |
accessKey | | string | true | |
secretKey | | string | true | |
name | | string | false | baidu-provider |
region | | string | true | |
Name | Description | Type | Required | Default |
---|
type | | string | true | |
apiKey | | string | false | empty |
name | | string | false | ec-provider |
Name | Description | Type | Required | Default |
---|
credentials | | string | true | |
region | | string | true | |
project | | string | true | |
type | | string | true | |
name | | string | false | gcp-provider |
Name | Description | Type | Required | Default |
---|
secretID | | string | true | |
secretKey | | string | true | |
region | | string | true | |
type | | string | true | |
name | | string | false | tencent-provider |
Name | Description | Type | Required | Default |
---|
publicKey | | string | true | |
privateKey | | string | true | |
projectID | | string | true | |
region | | string | true | |
type | | string | true | |
name | | string | false | ucloud-provider |
Build-Push-Image
Description
Build and push image from git url.
Scope
This step type is valid in both Application and WorkflowRun.
Examples (build-push-image)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: build-push-image
namespace: default
spec:
components:
- name: my-web
type: webservice
properties:
image: fogdong/simple-web-demo:v1
ports:
- port: 80
expose: true
workflow:
steps:
- name: create-git-secret
type: export2secret
properties:
secretName: git-secret
data:
token: <git token>
- name: create-image-secret
type: export2secret
properties:
secretName: image-secret
kind: docker-registry
dockerRegistry:
username: <docker username>
password: <docker password>
- name: build-push
type: build-push-image
properties:
context:
git: github.com/FogDong/simple-web-demo
branch: main
image: fogdong/simple-web-demo:v1
credentials:
image:
name: image-secret
- name: apply-comp
type: apply-component
properties:
component: my-web
Specification (build-push-image)
Name | Description | Type | Required | Default |
---|
kanikoExecutor | Specify the kaniko executor image, default to oamdev/kaniko-executor:v1.9.1. | string | false | oamdev/kaniko-executor:v1.9.1 |
context | Specify the context to build image, you can use context with git and branch or directly specify the context, please refer to https://github.com/GoogleContainerTools/kaniko#kaniko-build-contexts. | string | true | |
dockerfile | Specify the dockerfile. | string | false | ./Dockerfile |
image | Specify the image. | string | true | |
platform | Specify the platform to build. | string | false | |
buildArgs | Specify the build args. | []string | false | |
credentials | Specify the credentials to access git and image registry. | credentials | false | |
verbosity | Specify the verbosity level. | "info" or "panic" or "fatal" or "error" or "warn" or "debug" or "trace" | false | info |
credentials (build-push-image)
Name | Description | Type | Required | Default |
---|
git | Specify the credentials to access git. | git | false | |
image | Specify the credentials to access image registry. | image | false | |
git (build-push-image)
Name | Description | Type | Required | Default |
---|
name | Specify the secret name. | string | true | |
key | Specify the secret key. | string | true | |
image (build-push-image)
Name | Description | Type | Required | Default |
---|
name | Specify the secret name. | string | true | |
key | Specify the secret key. | string | false | .dockerconfigjson |
Chat-Gpt
Description
Send request to chat-gpt.
Scope
This step type is valid in both Application and WorkflowRun.
Examples (chat-gpt)
apiVersion: core.oam.dev/v1alpha1
kind: WorkflowRun
metadata:
name: chat-gpt
namespace: default
spec:
workflowSpec:
steps:
- name: apply
type: apply-deployment
timeout: 3s
outputs:
- name: resource
valueFrom: output.value
properties:
image: invalid
- name: chat-diagnose
if: status.apply.failed
type: chat-gpt
inputs:
- from: resource
parameterKey: prompt.content
properties:
token:
value: <your token>
prompt:
type: diagnose
- name: chat-audit
if: status.apply.succeeded
type: chat-gpt
inputs:
- from: resource
parameterKey: prompt.content
properties:
token:
secretRef:
name: chat-gpt-token-secret
key: token
prompt:
type: audit
lang: Chinese
Specification (chat-gpt)
Name | Description | Type | Required | Default |
---|
token | | type-option-1 or type-option-2 | true | |
model | the model name. | string | false | gpt-3.5-turbo |
prompt | the prompt to use. | prompt | true | |
timeout | | string | false | 30s |
type-option-1 (chat-gpt)
Name | Description | Type | Required | Default |
---|
value | the token value. | string | true | |
type-option-2 (chat-gpt)
Name | Description | Type | Required | Default |
---|
secretRef | | secretRef | true | |
secretRef (chat-gpt)
Name | Description | Type | Required | Default |
---|
name | name is the name of the secret. | string | true | |
key | key is the token key in the secret. | string | true | |
prompt (chat-gpt)
Name | Description | Type | Required | Default |
---|
type | | "custom" or "diagnose" or "audit" or "quality-gate" | false | custom |
lang | | "English" or "Chinese" | false | English |
content | | string | true | |
Check-Metrics
Description
Verify application's metrics.
Scope
This step type is valid in both Application and WorkflowRun.
Examples (check-metrics)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: canary-demo
annotations:
app.oam.dev/publishVersion: v2
spec:
components:
- name: canary-demo
type: webservice
properties:
image: wangyikewyk/canarydemo:v2
ports:
- port: 8090
traits:
- type: scaler
properties:
replicas: 5
- type: gateway
properties:
domain: canary-demo.com
http:
"/version": 8090
workflow:
steps:
- name: 200-status-percent-2-phase
type: check-metrics
timeout: 3m
properties:
query: sum(irate(nginx_ingress_controller_requests{host="canary-demo.com",status="200"}[5m]))/sum(irate(nginx_ingress_controller_requests{host="canary-demo.com"}[2m]))
promAddress: "http://prometheus-server.o11y-system.svc:9090"
condition: ">=0.95"
duration: 2m
Specification (check-metrics)
Name | Description | Type | Required | Default |
---|
query | Query is a raw prometheus query to perform. | string | true | |
metricEndpoint | The HTTP address and port of the prometheus server. | string | false | |
condition | Condition is an expression which determines if a measurement is considered successful. eg: >=0.95. | string | true | |
duration | Duration defines the duration of time required for this step to be considered successful. | string | false | 5m |
failDuration | FailDuration is the duration of time that, if the check fails, will result in the step being marked as failed. | string | false | 2m |
Clean-Jobs
Description
clean applied jobs in the cluster.
Scope
This step type is valid in both Application and WorkflowRun.
Examples (clean-jobs)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: clean-jobs
namespace: default
spec:
components: []
workflow:
steps:
- name: clean-cli-jobs
type: clean-jobs
properties:
labelselector:
"my-label": my-value
Specification (clean-jobs)
Name | Description | Type | Required | Default |
---|
labelselector | | map[string]_ | false | |
namespace | | | | true | |
Collect-Service-Endpoints
Description
Collect service endpoints for the application.
Scope
This step type is valid in both Application and WorkflowRun.
Examples (collect-service-endpoints)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: app-collect-service-endpoint-and-export
spec:
components:
- type: webservice
name: busybox
properties:
image: busybox
imagePullPolicy: IfNotPresent
cmd:
- sleep
- '1000000'
traits:
- type: expose
properties:
port: [8080]
type: ClusterIP
policies:
- type: topology
name: local
properties:
clusters: ["local"]
- type: topology
name: all
properties:
clusters: ["local", "cluster-worker"]
workflow:
steps:
- type: deploy
name: deploy
properties:
policies: ["local"]
- type: collect-service-endpoints
name: collect-service-endpoints
outputs:
- name: host
valueFrom: value.endpoint.host
- type: export-data
name: export-data
properties:
topology: all
inputs:
- from: host
parameterKey: data.host
Specification (collect-service-endpoints)
This capability has no arguments.
Create-Config
Description
Create or update a config.
Scope
This step type is valid in both Application and WorkflowRun.
Examples (create-config)
kind: Application
apiVersion: core.oam.dev/v1beta1
metadata:
name: test-config
namespace: "config-e2e-test"
spec:
components: []
workflow:
steps:
- name: write-config
type: create-config
properties:
name: test
config:
key1: value1
key2: 2
key3: true
key4:
key5: value5
- name: read-config
type: read-config
properties:
name: test
outputs:
- fromKey: config
name: read-config
- name: delete-config
type: delete-config
properties:
name: test
Specification (create-config)
Name | Description | Type | Required | Default |
---|
name | Specify the name of the config. | string | true | |
namespace | Specify the namespace of the config. | string | false | |
template | Specify the template of the config. | string | false | |
config | Specify the content of the config. | map[string]_ | true | |
Delete-Config
Description
Delete a config.
Scope
This step type is valid in both Application and WorkflowRun.
Examples (delete-config)
kind: Application
apiVersion: core.oam.dev/v1beta1
metadata:
name: test-config
namespace: "config-e2e-test"
spec:
components: []
workflow:
steps:
- name: write-config
type: create-config
properties:
name: test
config:
key1: value1
key2: 2
key3: true
key4:
key5: value5
- name: delete-config
type: delete-config
properties:
name: test
Specification (delete-config)