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



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

如果我想在更新cron工作流的频率时保留所有历史工作流,例如每周一而不是每天运行,该怎么办?建议用什么方法进行更新?

添加到Michael的答案中:

CronWorkflows是它们生成的所有Workflows所有者,因此在删除父CronWorkflow时如何删除它们各自的Workflows取决于Kubernetes的垃圾回收策略。当CronWorkflow的子Workflows被删除时,Argo不会删除,Kuebrnetes会删除。您可以查看Kubernetes文档,了解有关如何管理它的更多选项。

(编辑:添加更多信息(

例如,要删除CronWorkflow,同时保留其子级Workflows不变,可以运行:

kubectl delete cwf my-cwf --cascade=false

来源:我开发了CronWorkflow功能。

如果您想将工作流数据保留一段时间,您应该使用Argo的工作流归档工具将它们持久化到数据库中。

只是为了证实你的问题,我用他们的";你好世界";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工作流确实删除了它启动的helloworld工作流。我特别有信心,因为我还有其他工作流已经在我的Minikube集群上放置了好几天而没有被删除。

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

如果您使用的是Kustoize或Helm之类的东西,那么您的更改可能会删除/重新创建cron工作流,而不是简单地修补它们。你必须检查那些项目的文档。

我同意,文件应该更清楚。我建议打开他们argo cron delete页面的PR。

最新更新