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

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

如何解决删除argo cron工作流程是否也会删除它启动的所有argo工作流程

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

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

解决方法

要添加到迈克尔的答案中:

CronWorkflows是它们产生的所有Workflows的所有者,因此删除父Workflows时如何删除各自的CronWorkflowKubernetes' Garbage Collection policies控制。当Workflows的子CronWorkflow被删除时,Argo不会删除它,而Kuebrnetes会删除。您可以查看Kubernetes文档以获取有关如何管理此文件的更多选项。

(编辑:添加更多信息)

例如,要删除一个CronWorkflow,同时保留其子Workflows,则可以运行:

kubectl delete cwf my-cwf --cascade=false

来源:我开发了CronWorkflow功能。

,

如果要保留一段时间的工作流数据,则应使用Argo的workflow archive工具将其保存到数据库中。

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

import xml.etree.ElementTree as ET
for fname in os.listdir('C:/Testpath/xml'):
    if fname.endswith('.xml'):
        with open fname as f:
            tr = ET.parse(f)
            for e in tr.iter():
                if 'Example' in fname:
                    print(fname)

删除cron工作流确实确实删除了它启动的hello-world工作流。我特别有信心,因为我的Minikube群集上已有数天的工作流程,而这些工作流程却没有被删除。

如果您不想使用工作流程存档,则可以使用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 。我刚刚进行了测试,并且此更新不会删除子工作流程。

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

我同意,文档应该更加清晰。我建议针对他们的argo cron delete page打开PR。

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