Argo-workflows#
Argo Workflows — это container-native-движок для оркестрации параллельных задач в Kubernetes. Он реализован как пользовательское расширение Kubernetes (CRD) и позволяет запускать сложные многошаговые процессы в виде графов зависимостей.
Основные задачи и возможности
Оркестрация параллельных задач: Позволяет определять и управлять последовательностью выполнения контейнерных задач, включая параллельный и условный запуск.
Работа с DAG (Directed Acyclic Graph): Поддерживает определение зависимостей между задачами в виде направленного ациклического графа, что удобно для сложных вычислительных процессов и CI/CD процессов.
Интеграция с Kubernetes API: Управление и запуск workflow осуществляется через стандартные механизмы Kubernetes, такие как
kubectlили UI-панели.Поддержка разных типов шагов: В одном workflow можно комбинировать вызовы контейнеров, скриптов, шаблонов, условий, pod workflows и другие элементы.
Визуализация и мониторинг выполнения: Предоставляет веб-интерфейс для просмотра состояния и прогресса выполнения задач в реальном времени.
Использование в CI/CD и ML-задачах: Широко применяется не только для автоматизации развертывания, но и в машинном обучении, ETL-процессах, тестировании и других сценариях с множеством зависимых этапов.
Примечание
Argo-workflows является инструментом по умолчанию в составе «Devops» и устанавливается с ним автоматически. UI Argo-workflows автоматически интегрирован с инструментом Dex и пользователь kubeadmin является администратором.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем argo-workflows и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
crds – настройки установки и обновления Custom Resource Definitions (CRD)
useStaticCredentials – использование статических учетных данных
customArtifactRepository – пользовательский репозиторий артефактов
images – параметры контейнерного образа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Общий тег для всех образов Argo Workflows, по умолчанию используется версия чарта |
|
|
Политика загрузки образа контейнера для пода |
|
|
|
|
crds – настройки установки и обновления Custom Resource Definitions (CRD)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Установка и обновление CRD |
|
|
Сохранение CRD при удалении чарта |
|
|
Использование полных CRD с полной OpenAPI-схемой, при отключении используются сокращенные CRD с |
|
|
Аннотации для CRD |
|
createAggregateRoles – создание агрегированных ролей#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
nameOverride – переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение имени чарта |
|
fullnameOverride – полное переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полное переопределение имени чарта для всех создаваемых ресурсов |
|
namespaceOverride – переопределение пространства имен#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение пространства имен вместо значения по умолчанию |
|
commonLabels – общие метки для всех ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки, применяемые ко всем ресурсам |
|
kubeVersionOverride – переопределение версии Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение версии Kubernetes, используемой при вычислении условных манифестов чарта |
|
apiVersionOverrides – переопределение версий API#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Строка для переопределения |
|
|
Строка для переопределения |
|
|
Строка для переопределения |
|
singleNamespace – режим работы в одном пространстве имен#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Ограничение работы Argo только в одном пространстве имен путем применения |
|
workflow – настройки workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Пространство имен workflow. Устаревший параметр, используйте |
|
|
Создание |
|
|
Метки для созданного |
|
|
Аннотации для созданного |
|
|
Имя |
|
|
Секреты для загрузки образов из приватного реестра, формат аналогичен |
|
|
Добавление |
|
|
Разрешение прав для агента Argo, требуется только при использовании |
|
|
Разрешение прав для pod сборщика мусора артефактов Argo |
|
|
Дополнительные |
|
|
Дополнительные правила для |
|
controller – настройки контроллера workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр контейнерного образа контроллера |
|
|
Репозиторий контейнерного образа контроллера |
|
|
Тег контейнерного образа контроллера |
|
|
Количество workflow, которые могут выполняться одновременно |
|
|
Глобальное ограничение скорости создания pod для предотвращения перегрузки API-сервера Kubernetes. |
|
|
Добавление |
|
|
Разрешение контроллеру получать, перечислять и отслеживать определенные |
|
|
Разрешение контроллеру получать, перечислять и отслеживать все |
|
|
Разрешение контроллеру создавать и обновлять |
|
|
Создание |
|
|
Имя |
|
|
Аннотации |
|
|
Ограничение максимального количества незавершенных workflow в пространстве имен |
|
|
Начальная задержка для обхода известной ошибки AWS EKS |
|
|
Необязательная карта аннотаций для |
|
|
Аннотации для pod контроллера |
|
|
Метки для pod контроллера |
|
|
Параметры контекста безопасности pod |
|
|
Включение сервера метрик Prometheus |
|
|
Путь публикации метрик, должен начинаться с |
|
|
Интервал опроса метрик Prometheus |
|
|
Порт контейнера для публикации метрик |
|
|
Период очистки пользовательских метрик из памяти |
|
|
Флаг игнорирования ошибок генерации метрик Prometheus |
|
|
Флаг использования самоподписанного сертификата для TLS |
|
|
Имя порта метрик контейнера |
|
|
Порт метрик |
|
|
Имя порта метрик |
|
|
Схема подключения |
|
|
Включение Headless Service |
|
|
При значении |
|
|
Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик в |
|
|
Правила фильтрации и преобразования меток, применяемые к собранным метрикам в |
|
|
Метки |
|
|
Модификаторы метрик, создаваемых workflow-контроллером |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
Запрет повышения привилегий |
|
|
Список |
|
|
Включение workflow-архива для хранения статуса workflow; доступны PostgreSQL и MySQL. |
|
|
Значения по умолчанию для всех workflow от данного контроллера. |
|
|
Количество workflow-воркеров |
|
|
Количество воркеров TTL workflow |
|
|
Количество воркеров очистки pod |
|
|
Количество воркеров cron-workflow |
|
|
Ограничения workflow для контроллера. |
|
|
Включение сервера телеметрии Prometheus |
|
|
Путь телеметрии |
|
|
Интервал опроса телеметрии Prometheus |
|
|
Порт контейнера телеметрии |
|
|
Период очистки пользовательских метрик телеметрии из памяти |
|
|
Флаг игнорирования ошибок генерации метрик телеметрии Prometheus |
|
|
Флаг использования самоподписанного сертификата для TLS телеметрии |
|
|
Порт |
|
|
Имя порта |
|
|
Схема |
|
|
Включение |
|
|
Дополнительные метки |
|
|
Пространство имен |
|
|
Создание |
|
|
Имя |
|
|
Метки для созданного |
|
|
Аннотации для созданного |
|
|
Имя workflow-контроллера |
|
|
Список пространств имен для управления workflow; управляет созданием |
|
|
Фильтрация pod workflow контроллером по совпадению атрибута |
|
|
Использование имени релиза как |
|
|
Пользовательский |
|
|
Уровень логирования. |
|
|
Уровень логирования |
|
|
Формат логирования. |
|
|
Тип |
|
|
Аннотации для |
|
|
Дополнительные метки для |
|
|
Класс |
|
|
Диапазоны источников для доступа к |
|
|
Запросы и ограничения ресурсов для контейнера |
|
|
Порт проверки жизнеспособности |
|
|
Путь проверки жизнеспособности |
|
|
Количество последовательных неудач для признания проверки не пройденной |
|
|
Задержка в секундах перед первой проверкой |
|
|
Период выполнения проверки в секундах |
|
|
Тайм-аут проверки в секундах |
|
|
Список переменных окружения |
|
|
Аргументы командной строки для контейнера |
|
|
Точки монтирования Volume для pod |
|
|
Список volumes для pod |
|
|
Количество реплик pod |
|
|
Максимальное количество сохраняемых ресурсов для отката |
|
|
Включение |
|
|
Метки узла для планирования pod |
|
|
Толерантности для pod |
|
|
Правила affinity для pod |
|
|
Ограничения topological distribution для pod |
|
|
Имя |
|
|
Настройка пользовательских ссылок в сервере Argo |
|
|
Настройка пользовательских столбцов в сервере Argo |
|
|
Цвет навигационной панели интерфейса |
|
|
Создание |
|
|
Дополнительные |
|
|
Список дополнительных контейнеров для pod |
|
|
Список дополнительных init-контейнеров для pod |
|
|
Политика удержания workflow по количеству. |
|
|
Включение генерации |
|
|
Включение генерации |
|
|
Настройка связи контроллера с API-сервером Kubernetes из другого кластера через |
|
|
Задержка в секундах перед принудительным удалением завершенных pod сборщиком мусора Argo |
|
|
Задержка перед постановкой завершенного pod в очередь на удаление сборщиком мусора |
|
|
Включение синхронизации с использованием базы данных; доступны PostgreSQL и MySQL. |
|
mainContainer – настройки основного контейнера workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Политика загрузки образа для основного контейнера workflow, по умолчанию используется |
|
|
Запросы и ограничения ресурсов для контейнера |
|
|
Список переменных окружения для контейнера |
|
|
Список источников переменных окружения для контейнера |
|
|
Параметры контекста безопасности контейнера |
|
executor – настройки исполнителя workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр для workflow-исполнителей |
|
|
Репозиторий для workflow-исполнителей |
|
|
Тег образа workflow-исполнителей, по умолчанию используется |
|
|
Политика загрузки образа workflow-исполнителей, по умолчанию используется |
|
|
Запросы и ограничения ресурсов для контейнера |
|
|
Аргументы командной строки для контейнера |
|
|
Список переменных окружения для контейнера |
|
|
Параметры контекста безопасности контейнера |
|
server – настройки сервера Argo#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Развертывание сервера Argo |
|
|
Значение base href в |
|
|
Реестр контейнерного образа для сервера |
|
|
Репозиторий контейнерного образа для сервера |
|
|
Тег образа сервера Argo Workflows, по умолчанию используется |
|
|
Аннотации для |
|
|
Аннотации для pod сервера |
|
|
Метки для pod сервера |
|
|
Параметры контекста безопасности pod |
|
|
Добавление |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
Разрешение повышения привилегий |
|
|
Список |
|
|
Имя сервера |
|
|
Тип |
|
|
Порт |
|
|
Целевой порт |
|
|
Порт узла |
|
|
Имя порта |
|
|
Список псевдонимов хостов для добавления в |
|
|
Создание нового |
|
|
Имя |
|
|
Метки для созданного |
|
|
Дополнительные аннотации для |
|
|
Аннотации для |
|
|
Дополнительные метки для |
|
|
Класс |
|
|
Статический IP-адрес для |
|
|
Диапазоны источников для доступа к |
|
|
Запросы и ограничения ресурсов для контейнера |
|
|
Количество реплик pod |
|
|
Максимальное количество сохраняемых ресурсов для отката |
|
|
Включение Horizontal Pod Autoscaler (HPA) для сервера Argo |
|
|
Минимальное количество реплик HPA сервера Argo |
|
|
Максимальное количество реплик HPA сервера Argo |
|
|
Средняя загрузка CPU для HPA сервера Argo в процентах |
|
|
Средняя загрузка памяти для HPA сервера Argo в процентах |
|
|
Конфигурация поведения масштабирования HPA. |
|
|
Включение |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Настройки правила привязки ( |
|
|
Ограничения топологии для равномерного распределения pod по зонам доступности и узлам |
|
|
Имя |
|
|
Запуск сервера Argo в безопасном режиме |
|
|
Список переменных окружения |
|
|
Список методов аутентификации. Устаревший параметр, используйте |
|
|
Список методов аутентификации пользователей при доступе к Argo Workflows. |
|
|
Аргументы командной строки для контейнера |
|
|
Уровень логирования. |
|
|
Уровень логирования |
|
|
Формат логирования. |
|
|
|
|
|
Дополнительные точки монтирования томов ( |
|
|
Дополнительные тома ( |
|
|
Включение создания |
|
|
Включение |
|
|
Аннотации для |
|
|
Дополнительные метки для |
|
|
Класс |
|
|
Основной хост для ресурсов |
|
|
Список путей |
|
|
Тип пути |
|
|
Дополнительные пути |
|
|
Включение TLS-конфигурации для |
|
|
Включение |
|
|
Спецификация |
|
|
Включение |
|
|
Домены для |
|
|
Включение |
|
|
Спецификация |
|
|
Включение ресурса |
|
|
Дополнительные метки |
|
|
Дополнительные аннотации |
|
|
Ссылки на родительские Gateway для |
|
|
Список имен хостов для |
|
|
Правила |
|
|
Включение ресурса |
|
|
Дополнительные метки |
|
|
Дополнительные аннотации |
|
|
Целевые ссылки для |
|
|
TLS-валидация для |
|
|
Создание |
|
|
Разрешение серверу редактировать |
|
|
Включение аутентификации через SSO с использованием OIDC провайдера. При значении |
|
|
Корневой URL провайдера идентификации OIDC |
|
|
Имя |
|
|
Ключ |
|
|
Имя |
|
|
Ключ в |
|
|
URL перенаправления OIDC, должен иметь вид |
|
|
Включение авторизации на основе ролей (RBAC) для SSO-пользователей. |
|
|
Белый список для ограничения чтения |
|
|
Запрашиваемые области доступа от SSO ID провайдера |
|
|
Длительность сессии в часах |
|
|
Альтернативные корневые URL для OIDC провайдеров |
|
|
Переопределение имени claim для групп OIDC |
|
|
Путь эндпоинта пользовательской информации с claim групп (например, для Okta) |
|
|
Пропуск верификации TLS для HTTP-клиента |
|
|
Фильтрация групп, возвращаемых OIDC провайдером. |
|
|
Список дополнительных контейнеров для pod |
|
|
Список дополнительных init-контейнеров для pod |
|
|
Параметры |
|
|
Время, отведенное на корректное завершение работы pod |
|
|
Включение проверки работоспособности контейнера сервера |
|
|
Порт HTTP для проверки работоспособности контейнера |
|
|
Путь HTTP для проверки работоспособности контейнера |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Задержка в секундах перед первой проверкой работоспособности |
|
|
Интервал в секундах между проверками работоспособности |
|
|
Тайм-аут проверки работоспособности |
|
|
Количество успешных попыток для подтверждения работоспособности |
|
extraObjects – дополнительные объекты Helm-чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные ресурсы для развертывания вместе с Argo Workflows. |
|
useStaticCredentials – использование статических учетных данных#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Использование статических учетных данных для S3 |
|
artifactRepository – репозиторий артефактов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Архивация логов основного контейнера как артефакта |
|
|
Хранение артефактов в S3-совместимом объектном хранилище. |
|
|
Хранение артефактов в объектном хранилище GCS. |
|
|
Хранение артефактов в |
|
customArtifactRepository – пользовательский репозиторий артефактов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Пользовательский репозиторий артефактов, отличный от базовых (S3, GCS, Azure). |
|
artifactRepositoryRef – ссылка на репозиторий артефактов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Ссылка на |
|
emissary – настройки emissary executor#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Emissary задает команды по умолчанию для используемых в Workflow Docker-образов. |
|