【问题标题】:argo workflow retryStrategy overrideargo 工作流 retryStrategy 覆盖
【发布时间】:2021-07-14 01:33:20
【问题描述】:

有没有办法覆盖 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"

【问题讨论】:

    标签: argo-workflows


    【解决方案1】:

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

    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

    【讨论】:

    • Michael Crenshaw,我在你发帖前后也试过这个,但它不起作用。向我抛出此错误:失败:无效规范:无法识别的类型:int32 ====== 我正在使用以下 argo 版本:argoproj/workflow-controller:v2.9.3 argoproj/argocli:v2.9.3 ====== 是这个例子对你有用吗?你觉得 argo 版本兼容性有什么问题吗?
    • @AkashAgrawal 我尝试使用 2.12.11。我会用 2.9.3 再试一次。 retry 当时可能是一个整数字段。随着时间的推移,他们不得不将整数字段转换为字符串,以便对其进行模板化。
    • @AkashAgrawal 更新了关于版本兼容性的评论。
    • 非常感谢@Michael Crenshaw!我将尝试使用最新的 argo 版本运行示例。
    猜你喜欢
    • 2021-12-09
    • 2022-08-16
    • 2022-07-07
    • 1970-01-01
    • 2020-08-29
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    相关资源
    最近更新 更多