微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

argo 工作流重试策略覆盖

如何解决argo 工作流重试策略覆盖

有什么方法可以覆盖 argo 中“WorkflowTemplate-retryStrategy”的值?

目前我们在 Argo WorkflowTemplate 中使用硬编码的 retryStrategy 如下(示例代码):

apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
Metadata:
  name: workflowtemplate-1
spec:
  entrypoint: task-template-1
  arguments:
    parameters:
    - name: "test"
      value: "testing"
  templates:
  - name: task-template-1
    retryStrategy:
      limit: 1
      retryPolicy: "Always"
    inputs:
        parameters:
          - name: "test"

有什么方法可以让我们将其作为工作流参数(或任何类似内容)的一部分进行覆盖? 喜欢下面代码中注释的“#”值:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
Metadata:
  name: sample-workflow
spec:
  workflowTemplateRef:
    name: workflowtemplate-1
  # retryStrategy:
  #   limit: 3
  #   retryPolicy: "Always"
  arguments:
    parameters:
  #  - name: "retry"
  #    value: "2"

解决方法

是的!只需为重试限制设置一个工作流参数即可。

apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: workflowtemplate-1
spec:
  entrypoint: task-template-1
  arguments:
    parameters:
      - name: "retry"
        value: "1"
  templates:
    - name: task-template-1
      retryStrategy:
        limit: "{{workflow.parameters.retry}}"
        retryPolicy: "Always"
      container:
        image: docker/whalesay:latest
        command: ["false"]

---

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: sample-workflow
spec:
  workflowTemplateRef:
    name: workflowtemplate-1
  arguments:
    parameters:
    - name: "retry"
      value: "2"

如果您提交示例工作流,您会看到它重试了两次,而不是默认的一次。

注意:模板 limit 字段是 introduced in 2.11.0-rc1

如果您坚持使用较早的版本,则有一个 workaround

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。