可独立运行的 KubeVela 声明式工作流引擎

大家好,又见面了,我是 GitHub 精选君!

今天要给大家推荐一个 GitHub 开源项目 kubevela/workflow,该项目在 GitHub 有 100 Star,用一句话介绍该项目就是:“Declarative Workflow of KubeVela which can run as standalone.”,可独立运行的 KubeVela 声明式工作流引擎。

kubevela/workflow 是一个开源的 Kubernetes 工作流编排工具。它可以帮助用户在 Kubernetes 集群中管理和调度工作流。该项目提供了一组灵活的 API 和命令行工具,可以轻松地编排、部署和管理工作流。

它还提供了一个可视化的 Web 界面,可以帮助用户直观地了解工作流的运行状态和历史记录。

kubevela/workflow 可以通过 kubectl 插件的形式集成到 Kubernetes 集群中,并支持多种工作流语言,如 YAML、JSON、HCL 和 JSONnet。

另外你可以直接使用 kubevela/workflow 或者通过 SDK 的方式按 IaC 的方式进行使用。以下是更详细的功能介绍:

以下是该项目 Star 趋势图(代表项目的活跃程度):

如何安装使用

kubevela/workflow 可以通过两种方式安装:

1、KubeVela 插件

如果你已经安装了 KubeVela,可以直接通过 addon 安装

vela addon enable vela-workflow

2、使用 Helm 安装:

helm repo add kubevela https://kubevela.github.io/charts
helm repo update
helm install --create-namespace -n vela-system vela-workflow kubevela/vela-workflow

使用示例 DEMO

以下是一个使用 kubevela/workflow 创建一个简单工作流的示例代码:

apiVersion: core.oam.dev/v1alpha1
kind: WorkflowRun
metadata:
  name: build-push-image
  namespace: default
spec:
  workflowSpec:
   steps:
   # or use kubectl create secret generic git-token --from-literal='GIT_TOKEN=<your-token>'
    - name: create-git-secret
      type: export2secret
      properties:
        secretName: git-secret
        data:
          token: <git token>
    # or use kubectl create secret docker-registry docker-regcred \
    # --docker-server=https://index.docker.io/v1/ \
    # --docker-username=<your-username> \
    # --docker-password=<your-password> 
    - 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:
        # use your kaniko executor image like below, if not set, it will use default image oamdev/kaniko-executor:v1.9.1
        # kanikoExecutor: gcr.io/kaniko-project/executor:latest
        # you can use context with git and branch or directly specify the context, please refer to https://github.com/GoogleContainerTools/kaniko#kaniko-build-contexts
        context:
          git: github.com/FogDong/simple-web-demo
          branch: main
        image: fogdong/simple-web-demo:v1
        # specify your dockerfile, if not set, it will use default dockerfile ./Dockerfile
        # dockerfile: ./Dockerfile
        credentials:
          image:
            name: image-secret
        # buildArgs:
        #   - key="value"
        # platform: linux/arm
    - name: apply-deploy
      type: apply-deployment
      properties:
        image: fogdong/simple-web-demo:v1

以上代码定义了多个工作流步骤,包括导入秘钥(包括 Git、镜像仓库)、build-push、apply-deploy。

可以使用 kubectl apply 命令将该工作流部署到 Kubernetes 集群中:

$ kubectl apply -f workflow.yaml

然后使用 kubectl get 命令查看工作流的状态:

$ kubectl get wf

您也可以使用 kubectl logs 命令查看工作流的日志:

$ kubectl logs -f <workflow-name> -n <namespace>

请注意,您需要替换 为实际的值。

更多项目详情请查看如下链接。

开源项目地址:https://github.com/kubevela/workflow

开源项目作者:kubevela

以下是参与项目建设的所有成员:

关注我们,一起探索有意思的开源项目。


更多精彩请扫码关注如下公众号。

Written on January 29, 2023