Documentation
¶
Index ¶
- type Arguments
- type ClientOptions
- type Container
- type DAGTask
- type DAGTemplate
- type ListOptions
- type NodeStatus
- type ObjectMeta
- type ParallelSteps
- type Parameter
- type Phase
- type Script
- type Step
- type SubmitOptions
- type Template
- type Workflow
- type WorkflowClient
- func (wc *WorkflowClient) Close() error
- func (wc *WorkflowClient) DeleteWorkflow(ctx context.Context, name string, optsNamespace string) error
- func (wc *WorkflowClient) GetWorkflow(ctx context.Context, name string, optsNamespace string) (*Workflow, error)
- func (wc *WorkflowClient) GetWorkflowLogs(ctx context.Context, name string, optsNamespace string, podName string) (string, error)
- func (wc *WorkflowClient) ListWorkflows(ctx context.Context, opts *ListOptions) (*WorkflowList, error)
- func (wc *WorkflowClient) ResubmitWorkflow(ctx context.Context, name string, optsNamespace string) (*Workflow, error)
- func (wc *WorkflowClient) ResumeWorkflow(ctx context.Context, name string, optsNamespace string) error
- func (wc *WorkflowClient) RetryWorkflow(ctx context.Context, name string, optsNamespace string) (*Workflow, error)
- func (wc *WorkflowClient) StopWorkflow(ctx context.Context, name string, optsNamespace string, message string) error
- func (wc *WorkflowClient) SubmitWorkflow(ctx context.Context, wf *Workflow, opts *SubmitOptions) (*Workflow, error)
- func (wc *WorkflowClient) SuspendWorkflow(ctx context.Context, name string, optsNamespace string) error
- func (wc *WorkflowClient) TerminateWorkflow(ctx context.Context, name string, optsNamespace string) error
- type WorkflowList
- type WorkflowSpec
- type WorkflowStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Arguments ¶
type Arguments struct {
Parameters []Parameter `json:"parameters,omitempty"`
}
Arguments 表示 Workflow 或步骤参数。
type ClientOptions ¶
type ClientOptions struct {
// ServerURL 是 Argo Server API 地址,例如 "https://localhost:2746"。
ServerURL string
// Namespace 是执行 Workflow 操作的 Kubernetes 命名空间。
Namespace string
// Token 是用于认证的 Bearer token,不需要包含 Bearer 前缀。
Token string
// InsecureSkipVerify 控制是否跳过 TLS 证书校验,仅建议开发环境使用。
InsecureSkipVerify bool
}
ClientOptions 配置 Argo Workflows API 客户端。
type Container ¶
type Container struct {
Image string `json:"image,omitempty"`
Command []string `json:"command,omitempty"`
Args []string `json:"args,omitempty"`
}
Container 表示容器模板。
type DAGTask ¶
type DAGTask struct {
Name string `json:"name,omitempty"`
Template string `json:"template,omitempty"`
Arguments Arguments `json:"arguments,omitempty"`
Dependencies []string `json:"dependencies,omitempty"`
}
DAGTask 表示 DAG 模板中的任务。
type DAGTemplate ¶
type DAGTemplate struct {
Tasks []DAGTask `json:"tasks,omitempty"`
}
DAGTemplate 表示 DAG 模板。
type ListOptions ¶
type ListOptions struct {
// Namespace 是目标命名空间,会覆盖客户端默认命名空间。
Namespace string
// LabelSelector 按 Kubernetes label 过滤 Workflow。
LabelSelector string
// FieldSelector 按 Kubernetes field 过滤 Workflow。
FieldSelector string
// Limit 限制返回结果数量。
Limit int64
// Offset 是分页偏移量。
Offset int64
}
ListOptions 表示查询 Workflow 列表时的过滤与分页参数。
type NodeStatus ¶
type NodeStatus struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
TemplateName string `json:"templateName,omitempty"`
Phase Phase `json:"phase,omitempty"`
StartedAt *time.Time `json:"startedAt,omitempty"`
FinishedAt *time.Time `json:"finishedAt,omitempty"`
Message string `json:"message,omitempty"`
}
NodeStatus 表示 Workflow 中节点的状态。
type ObjectMeta ¶
type ObjectMeta struct {
Name string `json:"name,omitempty"`
GenerateName string `json:"generateName,omitempty"`
Namespace string `json:"namespace,omitempty"`
UID string `json:"uid,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
Annotations map[string]string `json:"annotations,omitempty"`
CreationTimestamp *time.Time `json:"creationTimestamp,omitempty"`
}
ObjectMeta 表示 Kubernetes 对象元数据。
type ParallelSteps ¶
type ParallelSteps []Step
ParallelSteps 表示同一阶段内可并行执行的一组 steps。 Argo 原生 JSON 结构要求 steps 是二维数组:外层表示顺序阶段,内层表示并行步骤。
type Script ¶
type Script struct {
Image string `json:"image,omitempty"`
Command []string `json:"command,omitempty"`
Source string `json:"source,omitempty"`
}
Script 表示脚本模板。
type Step ¶
type Step struct {
Name string `json:"name,omitempty"`
Template string `json:"template,omitempty"`
Arguments Arguments `json:"arguments,omitempty"`
}
Step 表示 steps 模板中的单个步骤。
type SubmitOptions ¶
type SubmitOptions struct {
// Namespace 是目标命名空间,会覆盖客户端默认命名空间。
Namespace string
// ServerDryRun 要求服务端只校验请求,不实际创建 Workflow。
ServerDryRun bool
// Parameters 是 "key=value" 格式的 Workflow 参数。
Parameters []string
}
SubmitOptions 表示提交 Workflow 时的可选参数。
type Template ¶
type Template struct {
Name string `json:"name,omitempty"`
Container *Container `json:"container,omitempty"`
Script *Script `json:"script,omitempty"`
DAG *DAGTemplate `json:"dag,omitempty"`
Steps []ParallelSteps `json:"steps,omitempty"`
}
Template 表示 Workflow 模板。
type Workflow ¶
type Workflow struct {
APIVersion string `json:"apiVersion,omitempty"`
Kind string `json:"kind,omitempty"`
Metadata ObjectMeta `json:"metadata,omitempty"`
Spec WorkflowSpec `json:"spec,omitempty"`
Status *WorkflowStatus `json:"status,omitempty"`
}
Workflow 表示 Argo Workflow 资源。
type WorkflowClient ¶
type WorkflowClient struct {
// contains filtered or unexported fields
}
WorkflowClient 通过 REST API 提供 Argo Workflows 高层操作能力。
func NewClient ¶
func NewClient(opts ClientOptions) (*WorkflowClient, error)
NewClient 创建并初始化 Argo Workflows 客户端。
func (*WorkflowClient) DeleteWorkflow ¶
func (wc *WorkflowClient) DeleteWorkflow(ctx context.Context, name string, optsNamespace string) error
DeleteWorkflow 删除指定 Workflow。
func (*WorkflowClient) GetWorkflow ¶
func (wc *WorkflowClient) GetWorkflow(ctx context.Context, name string, optsNamespace string) (*Workflow, error)
GetWorkflow 根据名称获取 Workflow。
func (*WorkflowClient) GetWorkflowLogs ¶
func (wc *WorkflowClient) GetWorkflowLogs(ctx context.Context, name string, optsNamespace string, podName string) (string, error)
GetWorkflowLogs 获取工作流或指定 Pod 的日志。
func (*WorkflowClient) ListWorkflows ¶
func (wc *WorkflowClient) ListWorkflows(ctx context.Context, opts *ListOptions) (*WorkflowList, error)
ListWorkflows 列出指定命名空间内的 Workflow。
func (*WorkflowClient) ResubmitWorkflow ¶
func (wc *WorkflowClient) ResubmitWorkflow(ctx context.Context, name string, optsNamespace string) (*Workflow, error)
ResubmitWorkflow 基于已有 Workflow 重新提交一次执行。
func (*WorkflowClient) ResumeWorkflow ¶
func (wc *WorkflowClient) ResumeWorkflow(ctx context.Context, name string, optsNamespace string) error
ResumeWorkflow 恢复已挂起的 Workflow。
func (*WorkflowClient) RetryWorkflow ¶
func (wc *WorkflowClient) RetryWorkflow(ctx context.Context, name string, optsNamespace string) (*Workflow, error)
RetryWorkflow 重试失败的 Workflow。
func (*WorkflowClient) StopWorkflow ¶
func (wc *WorkflowClient) StopWorkflow(ctx context.Context, name string, optsNamespace string, message string) error
StopWorkflow 停止 Workflow,并可附带停止原因。
func (*WorkflowClient) SubmitWorkflow ¶
func (wc *WorkflowClient) SubmitWorkflow(ctx context.Context, wf *Workflow, opts *SubmitOptions) (*Workflow, error)
SubmitWorkflow 提交新的 Argo Workflow。 opts.Parameters 会追加到 workflow.spec.arguments.parameters,不会修改调用方传入的 Workflow。
func (*WorkflowClient) SuspendWorkflow ¶
func (wc *WorkflowClient) SuspendWorkflow(ctx context.Context, name string, optsNamespace string) error
SuspendWorkflow 挂起正在运行的 Workflow。
func (*WorkflowClient) TerminateWorkflow ¶
func (wc *WorkflowClient) TerminateWorkflow(ctx context.Context, name string, optsNamespace string) error
TerminateWorkflow 终止正在运行的 Workflow。
type WorkflowList ¶
type WorkflowList struct {
Items []Workflow `json:"items,omitempty"`
}
WorkflowList 表示 Workflow 列表。
type WorkflowSpec ¶
type WorkflowSpec struct {
Entrypoint string `json:"entrypoint,omitempty"`
Templates []Template `json:"templates,omitempty"`
Arguments Arguments `json:"arguments,omitempty"`
ServiceAccountName string `json:"serviceAccountName,omitempty"`
}
WorkflowSpec 表示 Workflow 规格。
type WorkflowStatus ¶
type WorkflowStatus struct {
Phase Phase `json:"phase,omitempty"`
StartedAt *time.Time `json:"startedAt,omitempty"`
FinishedAt *time.Time `json:"finishedAt,omitempty"`
Message string `json:"message,omitempty"`
Nodes map[string]NodeStatus `json:"nodes,omitempty"`
}
WorkflowStatus 表示 Workflow 状态。