通过 REST 调用启动 Argo 工作流

afr*_*111 4 workflow kubernetes argoproj argo-workflows

我正在探索 Argo 来协调处理大数据。我希望通过 REST 调用启动一个工作流,该工作流在具有所需处理资源的许多机器之间划分大型数据集。从架构的角度来看,我将如何实现这一点?是否有 REST api 或一些我可以使用的 Node.js 库?

Mic*_*haw 5

Argo 2.5引入了自己的 API

目前有官方支持的GolangJava客户端。还有一个社区支持的Python客户端。更新将在此处提供:https : //github.com/argoproj-labs/argo-client-gen

Argo 提供 Swagger API 规范,因此为其他语言生成客户端应该相当容易。


VAS*_*VAS 4

根据 Argo文档

Argo 被实现为 kubernetes 控制器和工作流自定义资源。Argo 本身不运行 API 服务器,并且通过所有 CRD,它通过引入新的API 组/版本( argorproj.io/v1alpha1 ) 和种类( Workflow ) 来扩展 Kubernetes API 服务器。当 CRD 在集群中注册时,可以通过在 kubernetes API 服务器中公开新端点来访问这些资源。
例如,要列出默认命名空间中的工作流,客户端将发出请求 HTTP GET

https://<k8s-api-server>/apis/argoproj.io/v1alpha1/namespaces/default/workflows
Run Code Online (Sandbox Code Playgroud)

您可以通过此链接找到 Golang、Python、Java、Ruby、OpenAPI 的示例。

因此,您可以生成描述 Argo Workflow 资源的 YAML 文件并将其发送到 Kubernetes API,如示例中所述。

我希望它有帮助。