5

I am exploring Argo to orchestrate processing big data. I wish to kick off a workflow via REST call that divides a large data set among a number of machines with desired resources for processing. From an architectural perspective, how would I accomplish this? Is there an REST api or maybe some libraries for Node.js that I can use?

4

2 回答 2

6

Argo 2.5引入了自己的 API

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

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

于 2020-02-28T15:51:39.160 回答
3

根据 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

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

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

我希望它有所帮助。

于 2019-03-06T14:36:40.527 回答