Запуск шагов в рабочем процессе argo с использованием событий argo
Мы создавали различные инструменты wf, и argo выделяется широким спектром функций, и он является родным для k8s, но у нас есть варианты использования длительных шагов, и мы хотим, чтобы система на основе событий запускала следующий шаг или повторяла предыдущий шаг на основе о событии (например, о статусе удаленного задания), возможно ли достичь этого с помощью argo-events?
3 ответа
Чтобы прояснить ваш вариант использования, у вас есть длительный (например, продолжать работу службы) шаг, который будет генерировать события для запуска того, какой шаг / рабочий процесс должен выполняться на основе события. Это правильно?
Для приведенного выше сценария использования вы можете использовать событие Argo для запуска рабочего процесса Argo из внешнего события, например (Github, S3, stream, SNS, событие календаря и т. Д.).
Вы можете разбить свои шаги на разные рабочие процессы argo. Затем используйте события argo, чтобы связать эти рабочие процессы вместе. Например: существует несколько способов настроить источник событий с помощью событий argo. Вы можете настроить gcp pubsub или тему kafka в качестве источника событий для каждого рабочего процесса. Затем вы можете создать конвейер или серию рабочих процессов, которые связаны через созданные выше источники событий.
kafka topic1 ===> WF1 --sends msg -> kafka topic2 ===> WF2 ... и так далее.
Сделав это, вы можете повторить любой рабочий процесс, просто отправив сообщение в соответствующую тему.
Да, вы можете определить ситуации «когда» и выполнить предыдущий шаг на основе некоторых результатов.
Например, в этом примере показано, как можно продолжать подбрасывать монету, пока она не упадет. Обратите внимание, когда это хвост, он снова вызывает шаблон «койнфлип» - что-то вроде концепции рекурсии.