本文档将按字典序展示所有内置工作流步骤的参数列表。
本文档由脚本自动生成,请勿手动修改,上次更新于 2023-01-16T19:19:03+08:00。
Addon-Operation
Enable a KubeVela addon。
适用范围
该步骤类型只适用于 WorkflowRun。
示例 (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."
参数说明 (addon-operation)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
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.6.4 |
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
Apply application from data or ref to the cluster。
适用范围
该步骤类型只适用于 WorkflowRun。
示例 (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
参数说明 (apply-app)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
data | | map[string]_ | false | |
ref | | ref | false | |
ref (apply-app)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | | string | true | |
namespace | | | | true | |
type | | string | false | configMap |
key | | string | false | application |
Apply-Component
Apply a specific component and its corresponding traits in application。
适用范围
该步骤类型只适用于 Application。
示例 (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
参数说明 (apply-component)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
component | Specify the component name to apply。 | string | true | |
cluster | Specify the cluster。 | string | false | empty |
Apply-Deployment
Apply deployment with specified image and cmd。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (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
参数说明 (apply-deployment)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
image | | string | true | |
cmd | | []string | false | |
Apply-Object
在工作流中部署 Kubernetes 资源对象。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (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-serve
参数说明 (apply-object)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
value | Kubernetes 资源对象参数。 | map[string]_ | true | |
cluster | 需要部署的集群名称。如果不指定,则为当前集群。 | string | false | empty |
Apply terraform configuration in the step。
适用范围
该步骤类型适用于 Application 和 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"
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
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 | | bool | false | false |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
hcl | directly specify the hcl of the terraform configuration。 | string | true | |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | | string | true | |
namespace | | | | true | |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | | string | true | |
namespace | | | | true | |
Apply terraform provider config。
适用范围
该步骤类型适用于 Application 和 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
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
type | | string | true | |
accessKey | | string | true | |
secretKey | | string | true | |
name | | string | false | alibaba-provider |
region | | string | true | |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
token | | string | false | empty |
type | | string | true | |
accessKey | | string | true | |
secretKey | | string | true | |
name | | string | false | aws-provider |
region | | string | true | |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
subscriptionID | | string | true | |
tenantID | | string | true | |
clientID | | string | true | |
clientSecret | | string | true | |
name | | string | false | azure-provider |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
type | | string | true | |
accessKey | | string | true | |
secretKey | | string | true | |
name | | string | false | baidu-provider |
region | | string | true | |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
type | | string | true | |
apiKey | | string | false | empty |
name | | string | true | |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
credentials | | string | true | |
region | | string | true | |
project | | string | true | |
type | | string | true | |
name | | string | false | gcp-provider |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
secretID | | string | true | |
secretKey | | string | true | |
region | | string | true | |
type | | string | true | |
name | | string | false | tencent-provider |
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
publicKey | | string | true | |
privateKey | | string | true | |
projectID | | string | true | |
region | | string | true | |
type | | string | true | |
name | | string | false | ucloud-provider |
Build-Push-Image
Build and push image from git url。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (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
参数说明 (build-push-image)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
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)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
git | Specify the credentials to access git。 | git | false | |
image | Specify the credentials to access image registry。 | image | false | |
git (build-push-image)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Specify the secret name。 | string | true | |
key | Specify the secret key。 | string | true | |
image (build-push-image)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Specify the secret name。 | string | true | |
key | Specify the secret key。 | string | false | .dockerconfigjson |
Clean-Jobs
clean applied jobs in the cluster。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (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
参数说明 (clean-jobs)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
labelselector | | map[string]_ | false | |
namespace | | | | true | |
Collect-Service-Endpoints
Collect service endpoints for the application。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (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
参数说明 (collect-service-endpoints)
This capability has no arguments.
Create-Config
Create or update a config。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (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
参数说明 (create-config)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
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
Delete a config。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (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
参数说明 (delete-config)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Specify the name of the config。 | string | true | |
namespace | Specify the namespace of the config。 | string | false | |
Depends-On-App
等待指定的 Application 完成。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (depends-on-app)
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: depends-on-app
properties:
name: another-app
namespace: default
depends-on-app
will check if the cluster has the application with name
and namespace
given in properties.
If the application exists, it will hang the next step until the application is running.
If the application does not exist, KubeVela will check the ConfigMap with the same name, and read the config of the Application and apply to cluster.
The ConfigMap is like below: the name
and namespace
of the ConfigMap is the same in properties.
In data, the key
must be specified by application
, and the value
is the yaml of the deployed application yaml.
apiVersion: v1
kind: ConfigMap
metadata:
name: myapp
namespace: vela-system
data:
application:
<app yaml file>
参数说明 (depends-on-app)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | 需要等待的 Application 名称。 | string | true | |
namespace | 需要等待的 Application 所在的命名空间。 | string | true | |
Deploy
功能丰富且统一的用于多集群部署的步骤,可以指定多集群差异化配置策略。
适用范围
该步骤类型只适用于 Application。
示例 (deploy)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: deploy-workflowstep
namespace: examples
spec:
components:
- name: nginx-deploy-workflowstep
type: webservice
properties:
image: nginx
policies:
- name: topology-hangzhou-clusters
type: topology
properties:
clusterLabelSelector:
region: hangzhou
- name: topology-local
type: topology
properties:
clusters: ["local"]
namespace: examples-alternative
workflow:
steps:
- type: deploy
name: deploy-local
properties:
policies: ["topology-local"]
- type: deploy
name: deploy-hangzhou
properties:
auto: false
policies: ["topology-hangzhou-clusters"]
参数说明 (deploy)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
auto | 默认为 true。如果为 false,工作流将在执行该步骤前自动暂停。。 | bool | false | true |
policies | 指定本次部署要使用的策略。如果不指定策略,将自动部署到管控集群。 | []string | false | |
parallelism | 指定本次部署的并发度。 | int | false | 5 |
ignoreTerraformComponent | 部署时忽略 Terraform 的组件,默认忽略,Terraform 仅需要在管控集群操作云资源,不需要管控信息下发到多集群。 | bool | false | true |
Deploy-Cloud-Resource
将云资源生成的秘钥部署到多集群。
适用范围
该步骤类型只适用于 Application。
示例 (deploy-cloud-resource)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: rds-app
namespace: project-1
spec:
components:
- name: db
type: alibaba-rds
properties:
instance_name: db
account_name: kubevela
password: my-password
writeConnectionSecretToRef:
name: project-1-rds-conn-credential
policies:
- name: env-policy
type: env-binding
properties:
envs:
- name: hangzhou
placement:
clusterSelector:
name: cluster-hangzhou
patch:
components:
- name: db
type: alibaba-rds
properties:
instance_name: hangzhou_db
- name: hongkong
placement:
clusterSelector:
name: cluster-hongkong
namespaceSelector:
name: hk-project-1
patch:
components:
- name: db
type: alibaba-rds
properties:
instance_name: hongkong_db
writeConnectionSecretToRef:
name: hk-project-rds-credential
workflow:
steps:
- name: deploy-hangzhou-rds
type: deploy-cloud-resource
properties:
env: hangzhou
- name: share-hangzhou-rds-to-beijing
type: share-cloud-resource
properties:
env: hangzhou
placements:
- cluster: cluster-beijing
- name: deploy-hongkong-rds
type: deploy-cloud-resource
properties:
env: hongkong
- name: share-hongkong-rds-to-other-namespace
type: share-cloud-resource
properties:
env: hongkong
placements:
- cluster: cluster-hongkong
namespace: hk-project-2
- cluster: cluster-hongkong
namespace: hk-project-3
参数说明 (deploy-cloud-resource)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
policy | Declare the name of the env-binding policy, if empty, the first env-binding policy will be used。 | string | false | empty |
env | 指定多集群策略中定义的环境名称。 | string | true | |
Export-Data
Export data to clusters specified by topology。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (export-data)
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
参数说明 (export-data)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Specify the name of the export destination。 | string | false | |
namespace | Specify the namespace of the export destination。 | string | false | |
kind | Specify the kind of the export destination。 | "ConfigMap" or "Secret" | false | ConfigMap |
data | Specify the data to export。 | struct | true | |
topology | Specify the topology to export。 | string | false | |
Export-Service
Export service to clusters specified by topology。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (export-service)
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: LoadBalancer
policies:
- type: topology
name: local
properties:
clusters: ["local"]
- type: topology
name: worker
properties:
clusters: ["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
- name: port
valueFrom: value.endpoint.port
- type: export-service
name: export-service
properties:
name: busybox
topology: worker
inputs:
- from: host
parameterKey: ip
- from: port
parameterKey: port
参数说明 (export-service)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Specify the name of the export destination。 | string | false | |
namespace | Specify the namespace of the export destination。 | string | false | |
ip | Specify the ip to be export。 | string | true | |
port | Specify the port to be used in service。 | int | true | |
targetPort | Specify the port to be export。 | int | true | |
topology | Specify the topology to export。 | string | false | |
Export2config
在工作流中导出数据到 Kubernetes ConfigMap 对象。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (export2config)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: export2config
namespace: default
spec:
components:
- name: export2config-demo-server
type: webservice
properties:
image: oamdev/hello-world
port: 8000
workflow:
steps:
- name: apply-server
type: apply-component
outputs:
- name: status
valueFrom: output.status.conditions[0].message
properties:
component: export2config-demo-server
- name: export-config
type: export2config
inputs:
- from: status
parameterKey: data.serverstatus
properties:
configName: my-configmap
data:
testkey: |
testvalue
value-line-2
参数说明 (export2config)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
configName | ConfigMap 的名称。 | string | true | |
namespace | ConfigMap 的 namespace,默认为当前应用的 namespace。 | string | false | |
data | 需要导出到 ConfigMap 中的数据,是一个 key-value 的 map。 | struct | true | |
cluster | 要导出到的集群名称。 | string | false | empty |
Export2secret
在工作流中导出数据到 Kubernetes Secret 对象。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (export2secret)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: export-secret
namespace: default
spec:
components:
- name: express-server-sec
type: webservice
properties:
image: oamdev/hello-world
port: 8000
workflow:
steps:
- name: apply-server
type: apply-component
outputs:
- name: status
valueFrom: output.status.conditions[0].message
properties:
component: express-server-sec
- name: export-secret
type: export2secret
inputs:
- from: status
parameterKey: data.serverstatus
properties:
secretName: my-secret
data:
testkey: |
testvalue
value-line-2
参数说明 (export2secret)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
secretName | Secret 的名称。 | string | true | |
namespace | secret 的 namespace,默认为当前应用的 namespace。 | string | false | |
type | 指定导出的 secret 类型。 | string | false | |
data | 需要导出到 Secret 中的数据。 | struct | true | |
cluster | 要导出到的集群名称。 | string | false | empty |
kind | Specify the kind of the secret。 | "generic" or "docker-registry" | false | generic |
dockerRegistry | Specify the docker data。 | dockerRegistry | false | |
dockerRegistry (export2secret)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
username | Specify the username of the docker registry。 | string | true | |
password | Specify the password of the docker registry。 | string | true | |
server | Specify the server of the docker registry。 | string | false | https://index.docker.io/v1/ |
Generate-Jdbc-Connection
Generate a JDBC connection based on Component of alibaba-rds。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (generate-jdbc-connection)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: jdbc
spec:
components:
- name: db
type: alibaba-rds
properties:
instance_name: favorite-links
database_name: db1
account_name: oamtest
password: U34rfwefwefffaked
security_ips: [ "0.0.0.0/0" ]
privilege: ReadWrite
writeConnectionSecretToRef:
name: db-conn
- name: express-server
type: webservice
properties:
image: crccheck/hello-world
port: 8000
workflow:
steps:
- name: jdbc
type: generate-jdbc-connection
outputs:
- name: jdbc
valueFrom: jdbc
properties:
name: db-conn
namespace: default
- name: apply
type: apply-component
inputs:
- from: jdbc
parameterKey: env
properties:
component: express-server
参数说明 (generate-jdbc-connection)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Specify the name of the secret generated by database component。 | string | true | |
namespace | Specify the namespace of the secret generated by database component。 | string | false | |
List-Config
List the configs。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (list-config)
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
参数说明 (list-config)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
template | Specify the template of the config。 | string | true | |
namespace | Specify the namespace of the config。 | string | false | |
Notification
向指定的 Webhook 发送信息,支持邮件、钉钉、Slack 和飞书。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (notification)
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: dingtalk-message
type: notification
properties:
dingding:
url:
value: <url>
message:
msgtype: text
text:
content: Workflow starting...
- name: application
type: apply-application
- name: slack-message
type: notification
properties:
slack:
url:
secretRef:
name: <secret-key>
key: <secret-value>
message:
text: Workflow ended.
lark:
url:
value: <lark-url>
message:
msg_type: "text"
content: "{\"text\":\" Hello KubeVela\"}"
email:
from:
address: <sender-email-address>
alias: <sender-alias>
password:
value: <sender-password>
host: <email host like smtp.gmail.com>
port: <email port, optional, default to 587>
to:
- kubevela1@gmail.com
- kubevela2@gmail.com
content:
subject: test-subject
body: test-body
Expected outcome
We can see that before and after the deployment of the application, the messages can be seen in the corresponding group chat.
参数说明 (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
lark | 发送飞书信息。 | lark | false | |
dingding | 发送钉钉信息。 | dingding | false | |
slack | 发送 Slack 信息。 | slack | false | |
email | 发送邮件通知。 | email | false | |
lark (notification)
type-option-1 (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
value | the url address content in string。 | string | true | |
type-option-2 (notification)
secretRef (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Kubernetes Secret 名称。 | string | true | |
key | Kubernetes Secret 中的 key。 | string | true | |
message (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
msg_type | msg_type can be text, post, image, interactive, share_chat, share_user, audio, media, file, sticker。 | string | true | |
content | content should be json encode string。 | string | true | |
dingding (notification)
type-option-1 (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
value | the url address content in string。 | string | true | |
type-option-2 (notification)
secretRef (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Kubernetes Secret 名称。 | string | true | |
key | Kubernetes Secret 中的 key。 | string | true | |
message (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
text | Specify the message content of dingtalk notification。 | null | false | |
msgtype | msgType can be text, link, mardown, actionCard, feedCard。 | "text" or "link" or "markdown" or "actionCard" or "feedCard" | false | text |
link | | null | false | |
markdown | | null | false | |
at | | null | false | |
actionCard | | null | false | |
feedCard | | null | false | |
slack (notification)
type-option-1 (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
value | the url address content in string。 | string | true | |
type-option-2 (notification)
secretRef (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Kubernetes Secret 名称。 | string | true | |
key | Kubernetes Secret 中的 key。 | string | true | |
message (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
text | Specify the message text for slack notification。 | string | true | |
blocks | | null | false | |
attachments | | null | false | |
thread_ts | | string | false | |
mrkdwn | Specify the message text format in markdown for slack notification。 | bool | false | true |
email (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
from | 指定邮件发送人信息。 | from | true | |
to | 指定收件人信息。 | []string | true | |
content | 指定邮件内容。 | content | true | |
from (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
address | 发件人邮件地址。 | string | true | |
alias | The alias is the email alias to show after sending the email。 | string | false | |
password | Specify the password of the email, you can either sepcify it in value or use secretRef。 | type-option-1 or type-option-2 | true | |
host | Specify the host of your email。 | string | true | |
port | Specify the port of the email host, default to 587。 | int | false | 587 |
type-option-1 (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
value | the password content in string。 | string | true | |
type-option-2 (notification)
secretRef (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Kubernetes Secret 名称。 | string | true | |
key | Kubernetes Secret 中的 key。 | string | true | |
content (notification)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
subject | 指定邮件标题。 | string | true | |
body | 指定邮件正文内容。 | string | true | |
Print-Message-In-Status
print message in workflow step status。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (print-message-in-status)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: print-message-in-status
namespace: default
spec:
components:
- name: express-server
type: webservice
properties:
image: oamdev/hello-world
port: 8000
workflow:
steps:
- name: express-server
type: apply-component
properties:
component: express-server
- name: message
type: print-message-in-status
properties:
message: "All addons have been enabled successfully, you can use 'vela addon list' to check them."
参数说明 (print-message-in-status)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
message | | string | true | |
Read-App
Read application from the cluster。
适用范围
该步骤类型只适用于 WorkflowRun。
示例 (read-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
参数说明 (read-app)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | | string | true | |
namespace | | | | true | |
Read-Config
Read a config。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (read-config)
kind: Application
apiVersion: core.oam.dev/v1beta1
metadata:
name: test-config
namespace: "config-e2e-test"
spec:
components: []
workflow:
steps:
- name: read-config
type: read-config
properties:
name: test
outputs:
- fromKey: config
name: read-config
参数说明 (read-config)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Specify the name of the config。 | string | true | |
namespace | Specify the namespace of the config。 | string | false | |
Read-Object
在工作流中读取 Kubernetes 资源对象。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (read-object)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: read-object
namespace: default
spec:
components:
- name: express-server
type: webservice
properties:
image: oamdev/hello-world
port: 8000
workflow:
steps:
- name: read-object
type: read-object
outputs:
- name: cpu
valueFrom: output.value.data["cpu"]
- name: memory
valueFrom: output.value.data["memory"]
properties:
apiVersion: v1
kind: ConfigMap
name: my-cm-name
cluster: <your cluster name
- name: apply
type: apply-component
inputs:
- from: cpu
parameterKey: cpu
- from: memory
parameterKey: memory
properties:
component: express-server
参数说明 (read-object)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
apiVersion | Specify the apiVersion of the object, defaults to 'core.oam.dev/v1beta1'。 | string | false | |
kind | Specify the kind of the object, defaults to Application。 | string | false | |
name | Specify the name of the object。 | string | true | |
namespace | The namespace of the resource you want to read。 | string | false | default |
cluster | 需要部署的集群名称。如果不指定,则为当前集群。 | string | false | empty |
Request
Send request to the url。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (request)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: request-http
namespace: default
spec:
components: []
workflow:
steps:
- name: request
type: request
properties:
url: https://api.github.com/repos/kubevela/workflow
outputs:
- name: stars
valueFrom: |
import "strconv"
"Current star count: " + strconv.FormatInt(response["stargazers_count"], 10)
- name: notification
type: notification
inputs:
- from: stars
parameterKey: slack.message.text
properties:
slack:
url:
value: <your slack url>
- name: failed-notification
type: notification
if: status.request.failed
properties:
slack:
url:
value: <your slack url>
message:
text: "Failed to request github"
参数说明 (request)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
url | | string | true | |
method | | "GET" or "POST" or "PUT" or "DELETE" | false | GET |
body | | map[string]_ | false | |
header | | map[string]string | false | |
Share-Cloud-Resource
Sync secrets created by terraform component to runtime clusters so that runtime clusters can share the created cloud resource。
适用范围
该步骤类型只适用于 Application。
示例 (share-cloud-resource)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: rds-app
namespace: project-1
spec:
components:
- name: db
type: alibaba-rds
properties:
instance_name: db
account_name: kubevela
password: my-password
writeConnectionSecretToRef:
name: project-1-rds-conn-credential
policies:
- name: env-policy
type: env-binding
properties:
envs:
- name: hangzhou
placement:
clusterSelector:
name: cluster-hangzhou
patch:
components:
- name: db
type: alibaba-rds
properties:
instance_name: hangzhou_db
- name: hongkong
placement:
clusterSelector:
name: cluster-hongkong
namespaceSelector:
name: hk-project-1
patch:
components:
- name: db
type: alibaba-rds
properties:
instance_name: hongkong_db
writeConnectionSecretToRef:
name: hk-project-rds-credential
workflow:
steps:
- name: deploy-hangzhou-rds
type: deploy-cloud-resource
properties:
env: hangzhou
- name: share-hangzhou-rds-to-beijing
type: share-cloud-resource
properties:
env: hangzhou
placements:
- cluster: cluster-beijing
- name: deploy-hongkong-rds
type: deploy-cloud-resource
properties:
env: hongkong
- name: share-hongkong-rds-to-other-namespace
type: share-cloud-resource
properties:
env: hongkong
placements:
- cluster: cluster-hongkong
namespace: hk-project-2
- cluster: cluster-hongkong
namespace: hk-project-3
参数说明 (share-cloud-resource)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
placements | Declare the location to bind。 | []placements | true | |
policy | Declare the name of the env-binding policy, if empty, the first env-binding policy will be used。 | string | false | empty |
env | 指定多集群策略中定义的环境名称。 | string | true | |
placements (share-cloud-resource)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
namespace | | string | false | |
cluster | | string | false | |
Step-Group
A special step that you can declare 'subSteps' in it, 'subSteps' is an array containing any step type whose valid parameters do not include the step-group
step type itself. The sub steps were executed in parallel。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (step-group)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: example
namespace: default
spec:
components:
- name: express-server
type: webservice
properties:
image: crccheck/hello-world
port: 8000
- name: express-server2
type: webservice
properties:
image: crccheck/hello-world
port: 8000
workflow:
steps:
- name: step
type: step-group
subSteps:
- name: apply-sub-step1
type: apply-component
properties:
component: express-server
- name: apply-sub-step2
type: apply-component
properties:
component: express-server2
参数说明 (step-group)
This capability has no arguments.
Suspend
暂停当前工作流,可以通过 'vela workflow resume' 继续已暂停的工作流。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (suspend)
The duration
parameter is supported in KubeVela v1.4 or higher.
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
workflow:
steps:
- name: slack-message
type: notification
properties:
slack:
url:
value: <your-slack-url>
message:
text: Ready to apply the application, ask the administrator to approve and resume the workflow.
- name: manual-approval
type: suspend
- name: express-server
type: apply-component
properties:
component: express-server
参数说明 (suspend)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
duration | 指定工作流暂停的时长,超过该时间后工作流将自动继续,如:"30s", "1min", "2m15s"。 | string | false | |
Vela-Cli
Run a vela command。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (vela-cli)
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: vela-cli
namespace: default
spec:
components: []
workflow:
steps:
- name: list-app
type: vela-cli
properties:
command:
- vela
- ls
参数说明 (vela-cli)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
addonName | Specify the name of the addon。 | string | true | |
command | Specify the vela command。 | []string | true | |
image | Specify the image。 | string | false | oamdev/vela-cli:v1.6.4 |
serviceAccountName | specify serviceAccountName want to use。 | string | false | kubevela-vela-core |
storage | | storage | false | |
storage (vela-cli)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
secret | Mount Secret type storage。 | []secret | false | |
hostPath | Declare host path type storage。 | []hostPath | false | |
secret (vela-cli)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | | string | true | |
mountPath | | string | true | |
subPath | | string | false | |
defaultMode | | int | false | 420 |
secretName | | string | true | |
items | | []items | false | |
items (vela-cli)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
key | | string | true | |
path | | string | true | |
mode | | int | false | 511 |
hostPath (vela-cli)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | | string | true | |
path | | string | true | |
mountPath | | string | true | |
type | | "Directory" or "DirectoryOrCreate" or "FileOrCreate" or "File" or "Socket" or "CharDevice" or "BlockDevice" | false | Directory |
Webhook
向指定 Webhook URL 发送请求,若不指定请求体,则默认发送当前 Application。
适用范围
该步骤类型适用于 Application 和 WorkflowRun。
示例 (webhook)
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
workflow:
steps:
- name: express-server
type: apply-application
- name: webhook
type: webhook
properties:
url:
value: <your webhook url>
参数说明 (webhook)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
url | 需要发送的 Webhook URL,可以选择直接在 value 填写或从 secretRef 中获取。 | type-option-1 or type-option-2 | true | |
data | 需要发送的内容。 | map[string]_ | false | |
type-option-1 (webhook)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
value | | string | true | |
type-option-2 (webhook)
secretRef (webhook)
名称 | 描述 | 类型 | 是否必须 | 默认值 |
---|
name | Kubernetes Secret 名称。 | string | true | |
key | Kubernetes Secret 中的 key。 | string | true | |