Skip to main content
版本:v1.6

内置工作流步骤列表

本文档将按字典序展示所有内置工作流步骤的参数列表。

本文档由脚本自动生成,请勿手动修改,上次更新于 2022-12-06T16:17:10+08:00。

Apply-Component

描述

Apply a specific component and its corresponding traits in 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
# cluster: <your cluster name>

参数说明 (apply-component)

名称描述类型是否必须默认值
componentSpecify the component name to apply。stringtrue
clusterSpecify the cluster。stringfalseempty

Apply-Object

描述

在工作流中部署 Kubernetes 资源对象。

示例 (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

参数说明 (apply-object)

名称描述类型是否必须默认值
valueKubernetes 资源对象参数。map[string]_true
cluster需要部署的集群名称。如果不指定,则为当前集群。stringfalseempty

Collect-Service-Endpoints

描述

Collect service endpoints for the application。

示例 (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。

示例 (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)

名称描述类型是否必须默认值
nameSpecify the name of the config。stringtrue
namespaceSpecify the namespace of the config。stringfalse
templateSpecify the template of the config。stringfalse
configSpecify the content of the config。map[string]_true

Delete-Config

描述

Delete a config。

示例 (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)

名称描述类型是否必须默认值
nameSpecify the name of the config。stringtrue
namespaceSpecify the namespace of the config。stringfalse

Depends-On-App

描述

等待指定的 Application 完成。

示例 (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 名称。stringtrue
namespace需要等待的 Application 所在的命名空间。stringtrue

Deploy

描述

功能丰富且统一的用于多集群部署的步骤,可以指定多集群差异化配置策略。

示例 (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:
# require manual approval before running this step
auto: false
policies: ["topology-hangzhou-clusters"]

参数说明 (deploy)

名称描述类型是否必须默认值
auto默认为 true。如果为 false,工作流将在执行该步骤前自动暂停。。boolfalsetrue
policies指定本次部署要使用的策略。如果不指定策略,将自动部署到管控集群。[]stringfalse
parallelism指定本次部署的并发度。intfalse5
ignoreTerraformComponent部署时忽略 Terraform 的组件,默认忽略,Terraform 仅需要在管控集群操作云资源,不需要管控信息下发到多集群。boolfalsetrue

Deploy-Cloud-Resource

描述

将云资源生成的秘钥部署到多集群。

示例 (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:
# 部署 RDS 给杭州集群
- name: hangzhou
placement:
clusterSelector:
name: cluster-hangzhou
patch:
components:
- name: db
type: alibaba-rds
properties:
# region: hangzhou
instance_name: hangzhou_db
# 部署 RDS 给香港集群
- name: hongkong
placement:
clusterSelector:
name: cluster-hongkong
namespaceSelector:
name: hk-project-1
patch:
components:
- name: db
type: alibaba-rds
properties:
# region: hongkong
instance_name: hongkong_db
writeConnectionSecretToRef:
name: hk-project-rds-credential

workflow:
steps:
# 部署 RDS 给杭州区用
- name: deploy-hangzhou-rds
type: deploy-cloud-resource
properties:
env: hangzhou
# 将给杭州区用的 RDS 共享给北京区
- name: share-hangzhou-rds-to-beijing
type: share-cloud-resource
properties:
env: hangzhou
placements:
- cluster: cluster-beijing
# 部署 RDS 给香港区用
- name: deploy-hongkong-rds
type: deploy-cloud-resource
properties:
env: hongkong
# 将给香港区用的 RDS 共享给香港区其他项目用
- 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)

名称描述类型是否必须默认值
policyDeclare the name of the env-binding policy, if empty, the first env-binding policy will be used。stringfalseempty
env指定多集群策略中定义的环境名称。stringtrue

Export-Data

描述

Export data to clusters specified by topology。

示例 (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)

名称描述类型是否必须默认值
nameSpecify the name of the export destination。stringfalse
namespaceSpecify the namespace of the export destination。stringfalse
kindSpecify the kind of the export destination。"ConfigMap" or "Secret"falseConfigMap
dataSpecify the data to export。structtrue
topologySpecify the topology to export。stringfalse

Export-Service

描述

Export service to clusters specified by topology。

示例 (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)

名称描述类型是否必须默认值
nameSpecify the name of the export destination。stringfalse
namespaceSpecify the namespace of the export destination。stringfalse
ipSpecify the ip to be export。stringtrue
portSpecify the port to be used in service。inttrue
targetPortSpecify the port to be export。inttrue
topologySpecify the topology to export。stringfalse

Export2config

描述

在工作流中导出数据到 Kubernetes ConfigMap 对象。

示例 (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)

名称描述类型是否必须默认值
configNameConfigMap 的名称。stringtrue
namespaceConfigMap 的 namespace,默认为当前应用的 namespace。stringfalse
data需要导出到 ConfigMap 中的数据,是一个 key-value 的 map。structtrue
cluster要导出到的集群名称。stringfalseempty

Export2secret

描述

在工作流中导出数据到 Kubernetes Secret 对象。

示例 (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)

名称描述类型是否必须默认值
secretNameSecret 的名称。stringtrue
namespacesecret 的 namespace,默认为当前应用的 namespace。stringfalse
type指定导出的 secret 类型。stringfalse
data需要导出到 Secret 中的数据。structtrue
cluster要导出到的集群名称。stringfalseempty

Generate-Jdbc-Connection

描述

Generate a JDBC connection based on Component of alibaba-rds。

示例 (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)

名称描述类型是否必须默认值
nameSpecify the name of the secret generated by database component。stringtrue
namespaceSpecify the namespace of the secret generated by database component。stringfalse

List-Config

描述

List the configs。

示例 (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
# 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

参数说明 (list-config)

名称描述类型是否必须默认值
templateSpecify the template of the config。stringtrue
namespaceSpecify the namespace of the config。stringfalse

Notification

描述

向指定的 Webhook 发送信息,支持邮件、钉钉、Slack 和飞书。

示例 (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:
# the DingTalk webhook address, please refer to: https://developers.dingtalk.com/document/robots/custom-robot-access
url:
value: <url>
message:
msgtype: text
text:
content: Workflow starting...
- name: application
type: apply-application
- name: slack-message
type: notification
properties:
slack:
# the Slack webhook address, please refer to: https://api.slack.com/messaging/webhooks
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:
# secretRef:
# name: <secret-name>
# key: <secret-key>
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发送飞书信息。larkfalse
dingding发送钉钉信息。dingdingfalse
slack发送 Slack 信息。slackfalse
email发送邮件通知。emailfalse

lark (notification)

名称描述类型是否必须默认值
urlSpecify the the lark url, you can either sepcify it in value or use secretRef。type-option-1 or type-option-2true
messageSpecify the message that you want to sent, refer to Lark messagingmessagetrue
type-option-1 (notification)
名称描述类型是否必须默认值
valuethe url address content in string。stringtrue
type-option-2 (notification)
名称描述类型是否必须默认值
secretRefsecretReftrue
secretRef (notification)
名称描述类型是否必须默认值
nameKubernetes Secret 名称。stringtrue
keyKubernetes Secret 中的 key。stringtrue
message (notification)
名称描述类型是否必须默认值
msg_typemsg_type can be text, post, image, interactive, share_chat, share_user, audio, media, file, sticker。stringtrue
contentcontent should be json encode string。stringtrue

dingding (notification)

名称描述类型是否必须默认值
urlSpecify the the dingding url, you can either sepcify it in value or use secretRef。type-option-1 or type-option-2true
messageSpecify the message that you want to sent, refer to dingtalk messagingmessagetrue
type-option-1 (notification)
名称描述类型是否必须默认值
valuethe url address content in string。stringtrue
type-option-2 (notification)
名称描述类型是否必须默认值
secretRefsecretReftrue
secretRef (notification)
名称描述类型是否必须默认值
nameKubernetes Secret 名称。stringtrue
keyKubernetes Secret 中的 key。stringtrue
message (notification)
名称描述类型是否必须默认值
textSpecify the message content of dingtalk notification。nullfalse
msgtypemsgType can be text, link, mardown, actionCard, feedCard。"text" or "link" or "markdown" or "actionCard" or "feedCard"falsetext
linknullfalse
markdownnullfalse
atnullfalse
actionCardnullfalse
feedCardnullfalse

slack (notification)

名称描述类型是否必须默认值
urlSlack 的 Webhook 地址,可以选择直接在 value 填写或从 secretRef 中获取。type-option-1 or type-option-2true
messageSpecify the message that you want to sent, refer to slack messagingmessagetrue
type-option-1 (notification)
名称描述类型是否必须默认值
valuethe url address content in string。stringtrue
type-option-2 (notification)
名称描述类型是否必须默认值
secretRefsecretReftrue
secretRef (notification)
名称描述类型是否必须默认值
nameKubernetes Secret 名称。stringtrue
keyKubernetes Secret 中的 key。stringtrue
message (notification)
名称描述类型是否必须默认值
textSpecify the message text for slack notification。stringtrue
blocksnullfalse
attachmentsnullfalse
thread_tsstringfalse
mrkdwnSpecify the message text format in markdown for slack notification。boolfalsetrue

email (notification)

名称描述类型是否必须默认值
from指定邮件发送人信息。fromtrue
to指定收件人信息。[]stringtrue
content指定邮件内容。contenttrue
from (notification)
名称描述类型是否必须默认值
address发件人邮件地址。stringtrue
aliasThe alias is the email alias to show after sending the email。stringfalse
passwordSpecify the password of the email, you can either sepcify it in value or use secretRef。type-option-1 or type-option-2true
hostSpecify the host of your email。stringtrue
portSpecify the port of the email host, default to 587。intfalse587
type-option-1 (notification)
名称描述类型是否必须默认值
valuethe password content in string。stringtrue
type-option-2 (notification)
名称描述类型是否必须默认值
secretRefsecretReftrue
secretRef (notification)
名称描述类型是否必须默认值
nameKubernetes Secret 名称。stringtrue
keyKubernetes Secret 中的 key。stringtrue
content (notification)
名称描述类型是否必须默认值
subject指定邮件标题。stringtrue
body指定邮件正文内容。stringtrue

描述

print message in workflow step status。

示例 (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)

名称描述类型是否必须默认值
messagestringtrue

Read-Config

描述

Read a config。

示例 (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)

名称描述类型是否必须默认值
nameSpecify the name of the config。stringtrue
namespaceSpecify the namespace of the config。stringfalse

Read-Object

描述

在工作流中读取 Kubernetes 资源对象。

示例 (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)

名称描述类型是否必须默认值
apiVersionSpecify the apiVersion of the object, defaults to 'core.oam.dev/v1beta1'。stringfalse
kindSpecify the kind of the object, defaults to Application。stringfalse
nameSpecify the name of the object。stringtrue
namespaceThe namespace of the resource you want to read。stringfalsedefault
cluster需要部署的集群名称。如果不指定,则为当前集群。stringfalseempty

Share-Cloud-Resource

描述

Sync secrets created by terraform component to runtime clusters so that runtime clusters can share the created cloud resource。

示例 (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:
# 部署 RDS 给杭州集群
- name: hangzhou
placement:
clusterSelector:
name: cluster-hangzhou
patch:
components:
- name: db
type: alibaba-rds
properties:
# region: hangzhou
instance_name: hangzhou_db
# 部署 RDS 给香港集群
- name: hongkong
placement:
clusterSelector:
name: cluster-hongkong
namespaceSelector:
name: hk-project-1
patch:
components:
- name: db
type: alibaba-rds
properties:
# region: hongkong
instance_name: hongkong_db
writeConnectionSecretToRef:
name: hk-project-rds-credential

workflow:
steps:
# 部署 RDS 给杭州区用
- name: deploy-hangzhou-rds
type: deploy-cloud-resource
properties:
env: hangzhou
# 将给杭州区用的 RDS 共享给北京区
- name: share-hangzhou-rds-to-beijing
type: share-cloud-resource
properties:
env: hangzhou
placements:
- cluster: cluster-beijing
# 部署 RDS 给香港区用
- name: deploy-hongkong-rds
type: deploy-cloud-resource
properties:
env: hongkong
# 将给香港区用的 RDS 共享给香港区其他项目用
- 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)

名称描述类型是否必须默认值
placementsDeclare the location to bind。[]placementstrue
policyDeclare the name of the env-binding policy, if empty, the first env-binding policy will be used。stringfalseempty
env指定多集群策略中定义的环境名称。stringtrue

placements (share-cloud-resource)

名称描述类型是否必须默认值
namespacestringfalse
clusterstringfalse

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。

示例 (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' 继续已暂停的工作流。

示例 (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>
# the Slack webhook address, please refer to: https://api.slack.com/messaging/webhooks
message:
text: Ready to apply the application, ask the administrator to approve and resume the workflow.
- name: manual-approval
type: suspend
# properties:
# duration: "30s"
- name: express-server
type: apply-component
properties:
component: express-server

参数说明 (suspend)

名称描述类型是否必须默认值
duration指定工作流暂停的时长,超过该时间后工作流将自动继续,如:"30s", "1min", "2m15s"。stringfalse

Webhook

描述

向指定 Webhook URL 发送请求,若不指定请求体,则默认发送当前 Application。

示例 (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-2true
data需要发送的内容。map[string]_false

type-option-1 (webhook)

名称描述类型是否必须默认值
valuestringtrue

type-option-2 (webhook)

名称描述类型是否必须默认值
secretRefsecretReftrue
secretRef (webhook)
名称描述类型是否必须默认值
nameKubernetes Secret 名称。stringtrue
keyKubernetes Secret 中的 key。stringtrue