Удаляет ли удаление рабочего процесса argo cron все запущенные им рабочие процессы argo

Похоже, что когда я удаляю рабочий процесс Argo cron с помощью argo cron delete, все предыдущие рабочие процессы (как завершенные, так и все еще работающие) также будут удалены на основе моих наблюдений. Я не совсем уверен, и я не нашел более подробного документа, чем https://argoproj.github.io/argo/cli/argo_cron_delete/.

Что, если я хочу сохранить все рабочие процессы истории, например, когда обновление частоты рабочего процесса cron, например бегать каждый понедельник, а не каждый день? Каким был бы рекомендуемый способ сделать такое обновление?


person zyxue    schedule 29.10.2020    source источник


Ответы (2)


Чтобы добавить к ответу Майкла:

CronWorkflows являются владельцами всех Workflows, которые они порождают, поэтому то, как их соответствующие Workflows удаляются при удалении родительского CronWorkflow, регулируется Политики сборки мусора Kubernetes. Argo не удаляет дочерний Workflows из CronWorkflow, когда последний удаляется, в отличие от Kuebrnetes. Вы можете посмотреть документацию Kubernetes, чтобы узнать больше о том, как это сделать.

(Изменить: добавление дополнительной информации)

Например, чтобы удалить CronWorkflow, оставив его дочерние элементы Workflows нетронутыми, вы можете запустить:

kubectl delete cwf my-cwf --cascade=false

Источник: Я разработал функцию CronWorkflow.

person Simon    schedule 29.10.2020

Если вы хотите сохранить данные рабочего процесса в течение некоторого времени, вам следует сохранить их в базе данных с помощью Argo инструмент архивирования рабочего процесса.

Чтобы подтвердить вашу проблему, я провел быстрый тест, используя их рабочий процесс cron hello-world:

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, возможно, ваши изменения могут удалить / воссоздать рабочие процессы cron, а не просто исправлять их. Вам нужно будет проверить документы этих проектов.

Согласен, документация должна быть более понятной. Я бы порекомендовал открыть PR для их >.

person Michael Crenshaw    schedule 29.10.2020