删除 argo cron 工作流是否也会删除所有由它启动的 argo 工作流

Does deleting an argo cron workflow delete all argo workflows started by it as well

当我用 argo cron delete 删除 Argo cron 工作流程时,所有以前的工作流程(已完成以及仍在 运行ning 的工作流程)也将根据我的删除观察。不过我不太确定,而且我还没有找到比 https://argoproj.github.io/argo/cli/argo_cron_delete/.

更详细的文档

如果我想保留所有历史工作流程,例如更新 cron 工作流程的频率,例如运行 每个星期一而不是每天?进行此类更新的推荐方法是什么?

如果您想将工作流数据保留一段时间,您应该使用 Argo 的 workflow archive 工具将它们保存到数据库中。

为了确认您的问题,我使用他们的“hello-world”cron 工作流程进行了快速测试:

apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow
metadata:
  name: hello-world
spec:
  schedule: "* * * * *"
  timezone: "America/Los_Angeles"   # Default to local machine timezone
  startingDeadlineSeconds: 0
  concurrencyPolicy: "Replace"      # Default to "Allow"
  successfulJobsHistoryLimit: 4     # Default 3
  failedJobsHistoryLimit: 4         # Default 1
  suspend: false                    # Set to "true" to suspend scheduling
  workflowSpec:
    entrypoint: whalesay
    templates:
      - name: whalesay
        container:
          image: docker/whalesay:latest

删除 cron 工作流确实删除了由它启动的 hello-world 工作流。我特别有信心,因为我还有其他工作流在我的 Minikube 集群上放置了好几天都没有被删除。

如果不想使用工作流存档,可以使用kubectl edit cronworkflow <workflow name>。我刚刚测试过,更新后不会删除子工作流。

如果您使用的是 Kustomize 或 Helm 之类的东西,您的更改可能 delete/recreate cron 工作流程而不是简单地修补它们。您必须检查这些项目的文档。

我同意,文档应该更清楚。我建议针对他们的 argo cron delete page.

打开一个 PR

添加到 Michael 的回答中:

CronWorkflows 是它们生成的所有 Workflows 所有者 ,因此当父级 [=14] 时,它们各自的 Workflows 是如何被删除的=] 被删除受 Kubernetes' Garbage Collection policies 约束。当 CronWorkflow 被删除时,Argo 不会删除 Workflows 的子 Workflows,而 Kuebrnetes 会。您可以查看 Kubernetes 文档,了解有关如何管理它的更多选项。

(编辑:添加更多信息)

例如,要删除 CronWorkflow 而保留其子项 Workflows 完整,您可以 运行:

kubectl delete cwf my-cwf --cascade=false

资料来源:我开发了 CronWorkflow 功能。