Version: v1.1

工作流步骤

本文档将详细介绍 KubeVela 内置的各个工作流步骤。您可以通过自由的组合它们来设计完整的交付工作流。

apply-application

简介

部署当前 Application 中的所有组件和运维特征。

参数

无需指定参数,主要用于应用部署前后增加自定义步骤。

示例

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: first-vela-workflow
  5. namespace: default
  6. spec:
  7. components:
  8. - name: express-server
  9. type: webservice
  10. properties:
  11. image: crccheck/hello-world
  12. port: 8000
  13. traits:
  14. - type: ingress
  15. properties:
  16. domain: testsvc.example.com
  17. http:
  18. /: 8000
  19. workflow:
  20. steps:
  21. - name: express-server
  22. type: apply-application

depends-on-app

简介

等待指定的 Application 完成。

参数

参数名类型说明
namestring需要等待的 Application 名称
namespacestring需要等待的 Application 所在的命名空间

示例

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: first-vela-workflow
  5. namespace: default
  6. spec:
  7. components:
  8. - name: express-server
  9. type: webservice
  10. properties:
  11. image: crccheck/hello-world
  12. port: 8000
  13. traits:
  14. - type: ingress
  15. properties:
  16. domain: testsvc.example.com
  17. http:
  18. /: 8000
  19. workflow:
  20. steps:
  21. - name: express-server
  22. type: depends-on-app
  23. properties:
  24. name: another-app
  25. namespace: default

deploy2env

简介

将 Application 在不同的环境和策略中部署。

参数

参数名类型说明
policystring需要关联的策略名
envstring需要关联的环境名

示例

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: multi-env-demo
  5. namespace: default
  6. spec:
  7. components:
  8. - name: nginx-server
  9. type: webservice
  10. properties:
  11. image: nginx:1.21
  12. port: 80
  13. policies:
  14. - name: env
  15. type: env-binding
  16. properties:
  17. created: false
  18. envs:
  19. - name: test
  20. patch:
  21. components:
  22. - name: nginx-server
  23. type: webservice
  24. properties:
  25. image: nginx:1.20
  26. port: 80
  27. placement:
  28. namespaceSelector:
  29. name: test
  30. - name: prod
  31. patch:
  32. components:
  33. - name: nginx-server
  34. type: webservice
  35. properties:
  36. image: nginx:1.20
  37. port: 80
  38. placement:
  39. namespaceSelector:
  40. name: prod
  41. workflow:
  42. steps:
  43. - name: deploy-test-server
  44. type: deploy2env
  45. properties:
  46. policy: env
  47. env: test
  48. - name: deploy-prod-server
  49. type: deploy2env
  50. properties:
  51. policy: env
  52. env: prod

webhook-notification

简介

向指定的 Webhook 发送信息。

参数

参数名类型说明
slackObject可选值,如果需要发送 Slack 信息,则需填写其 url 及 message
slack.urlString必填值,Slack 的 Webhook 地址
slack.messageObject必填值,需要发送的 Slack 信息,请符合 Slack 信息规范
dingdingObject可选值,如果需要发送钉钉信息,则需填写其 url 及 message
dingding.urlString必填值,钉钉的 Webhook 地址
dingding.messageObject必填值,需要发送的钉钉信息,请符合 钉钉信息规范

示例

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: first-vela-workflow
  5. namespace: default
  6. spec:
  7. components:
  8. - name: express-server
  9. type: webservice
  10. properties:
  11. image: crccheck/hello-world
  12. port: 8000
  13. traits:
  14. - type: ingress
  15. properties:
  16. domain: testsvc.example.com
  17. http:
  18. /: 8000
  19. workflow:
  20. steps:
  21. - name: dingtalk-message
  22. type: webhook-notification
  23. properties:
  24. dingding:
  25. # 钉钉 Webhook 地址,请查看:https://developers.dingtalk.com/document/robots/custom-robot-access
  26. url: xxx
  27. message:
  28. msgtype: text
  29. text:
  30. context: 开始运行工作流
  31. - name: application
  32. type: apply-application
  33. - name: slack-message
  34. type: webhook-notification
  35. properties:
  36. slack:
  37. # Slack Webhook 地址,请查看:https://api.slack.com/messaging/webhooks
  38. url: xxx
  39. message:
  40. text: 工作流运行完成

suspend

简介

暂停当前工作流,可以通过 vela workflow resume appname 继续已暂停的工作流。

有关于 vela workflow 命令的介绍,可以详见 vela cli

参数

参数名类型说明
---

示例

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: first-vela-workflow
  5. namespace: default
  6. spec:
  7. components:
  8. - name: express-server
  9. type: webservice
  10. properties:
  11. image: crccheck/hello-world
  12. port: 8000
  13. traits:
  14. - type: ingress
  15. properties:
  16. domain: testsvc.example.com
  17. http:
  18. /: 8000
  19. workflow:
  20. steps:
  21. - name: slack-message
  22. type: webhook-notification
  23. properties:
  24. slack:
  25. # Slack Webhook 地址,请查看:https://api.slack.com/messaging/webhooks
  26. url: xxx
  27. message:
  28. text: 准备开始部署应用,请管理员审批并继续工作流
  29. - name: manual-approval
  30. type: suspend
  31. - name: express-server
  32. type: apply-application