Argo 工作流程:在特定时间安排一次

问题描述 投票:0回答:1

我想触发 Argo 工作流程在特定时间开始运行。我目前正在使用工作流程模板和其余 API 来

submit
具有此模板的工作流程。有没有办法告诉Argo在特定时间启动工作流程。

我知道 cron-workflow 和 cron-workflow-template 的存在。但我无法弄清楚如何使用工作流程或 cron-workflow 来实现我想要的。

要进行任何调度,我必须使用 cron-workflow 吗?或者有没有办法通过在submitOptions中传递计划时间或通过其余API以其他方式延迟触发常规工作流程?

如果我必须使用 cron 工作流程,我应该将计划值设置为多少?我不希望它自动或定期运行,但仅在我需要时在特定时间运行。有没有办法使用 cronWorkflowTemplate 和其他 API 来实现?

我将不胜感激任何帮助/指示。

cron argo-workflows argo-cron-workflows
1个回答
0
投票

可能不是您正在寻找的答案,但如果您能够更改您的 WorkflowTemplate,您可以使第一步成为立即的 suspend 步骤,并提供一个值作为输入(由您在决定时)您想要提交工作流程,但不是现在)。例如,您的工作流程可能如下所示:

apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: my-workflow-template
spec:
  entrypoint: my-wf
  arguments:
    parameters:
    - name: wait-time-sec
      value: "0" # override me
  templates:
  - name: my-wf
    inputs:
      parameters:
      - name: wait-time-sec
    steps:
    - - name: wait
        template: wait-template
        arguments:
          parameters:
          - name: wait-time-sec
            value: "{{inputs.parameters.wait-time-sec}}"
    - - name: rest of original workflow steps...

  - name: wait-template
    inputs:
      parameters:
      - name: wait-time-sec
    suspend:
      duration: "{{inputs.parameters.wait-time-sec}}"
  ...

要提交的时候,传入参数

wait-time-sec
即可。当然,如果您希望有一个特定的时间,您要么必须计算提交之前需要多少秒,要么在
wait
步骤之前编写一个简单的脚本来为您进行计算,并输入一个日期时间并输出秒数以供
wait
步骤使用。

© www.soinside.com 2019 - 2024. All rights reserved.