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 для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
images - настройки Docker-образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Общий тег для всех образов Argo Workflows |
|
|
Политика загрузки образов для всех контейнеров |
|
|
Секреты для загрузки образов из приватного реестра |
|
crds - настройки Custom Resource Definitions#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Установка и обновление CRD |
|
|
Сохранение CRD при удалении чарта |
|
|
Аннотации для всех CRD |
|
createAggregateRoles - создание агрегированных ролей#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание кластерных ролей, расширяющих существующие |
|
nameOverride - переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Строка для частичного переопределения шаблона |
|
fullnameOverride - полное переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Строка для полного переопределения шаблона |
|
namespaceOverride - переопределение namespace#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение namespace |
|
commonLabels - общие метки#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для установки на все ресурсы |
|
kubeVersionOverride - переопределение версии Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение версии Kubernetes, используемой для оценки определенных манифестов |
|
apiVersionOverrides - переопределение версий API#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Строка для переопределения |
|
|
Строка для переопределения |
|
|
Строка для переопределения |
|
singleNamespace - режим работы в одном namespace#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Ограничение работы Argo только в одном namespace путем применения |
|
workflow - настройки workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Устарело; используйте |
|
|
Указывает, должен ли быть создан сервисный аккаунт |
|
|
Метки, применяемые к созданному сервисному аккаунту |
|
|
Аннотации, применяемые к созданному сервисному аккаунту |
|
|
Сервисный аккаунт, который используется для запуска workflow |
|
|
Секреты для загрузки образов из приватного реестра |
|
|
Добавляет |
|
|
Разрешает права для Argo Agent. Требуется только при использовании |
|
|
Разрешает права для pod Argo Artifact GC. Требуется только при использовании сборки мусора артефактов |
|
|
Дополнительные сервисные аккаунты для добавления в |
|
|
Дополнительные правила для сервисного аккаунта, который запускает workflow |
|
controller - настройки контроллера workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр для контроллера |
|
|
Репозиторий для контроллера |
|
|
Тег образа для контроллера workflow |
|
|
Указывает количество workflow, которые могут выполняться одновременно |
|
|
Глобально ограничивает скорость создания pods |
|
|
Добавляет |
|
|
Позволяет контроллеру получать, перечислять и отслеживать определенные секреты k8s |
|
|
Позволяет контроллеру получать, перечислять и отслеживать все секреты k8s |
|
|
Позволяет контроллеру создавать и обновлять |
|
|
Создать |
|
|
Имя |
|
|
Аннотации |
|
|
Ограничивает максимальное количество незавершенных workflow в namespace |
|
|
Решает текущую, редкую ошибку AWS EKS |
|
|
Необязательная карта аннотаций для применения к |
|
|
Необязательная карта аннотаций для применения к pods контроллера |
|
|
Необязательные метки для добавления к pod контроллера |
|
|
|
|
|
Включает сервер метрик Prometheus |
|
|
Путь, где генерируются метрики. Должен начинаться с |
|
|
Частота, с которой Prometheus собирает метрики |
|
|
Порт, где генерируются метрики |
|
|
Как часто пользовательские метрики очищаются из памяти |
|
|
Флаг, указывающий Prometheus игнорировать ошибки генерации метрик |
|
|
Флаг для использования самоподписанного сертификата для TLS |
|
|
Имя порта метрик контейнера |
|
|
Порт метрик сервиса |
|
|
Имя порта метрик сервиса |
|
|
Флаг для включения headless-сервиса |
|
|
Когда |
|
|
Конфигурации повторной разметки |
|
|
Конфигурации повторной разметки метрик |
|
|
|
|
|
Файловая система контейнера только для чтения |
|
|
Запуск как непривилегированный пользователь |
|
|
Разрешение повышения привилегий |
|
|
Удаление всех возможностей |
|
|
Включить архив Workflow для хранения статуса workflow. Доступны Postgres и MySQL (>= |
|
|
Значения по умолчанию, применяемые ко всем Workflow от этого контроллера |
|
|
Количество worker nodes workflow |
|
|
Количество worker nodes TTL workflow |
|
|
Количество worker nodes очистки pods |
|
|
Количество worker nodes cron workflow |
|
|
Ограничивает Workflow, которые будет обрабатывать контроллер |
|
|
Включает сервер телеметрии Prometheus |
|
|
Путь телеметрии |
|
|
Частота, с которой Prometheus собирает данные телеметрии |
|
|
Порт контейнера телеметрии |
|
|
Как часто пользовательские метрики очищаются из памяти |
|
|
Флаг, указывающий Prometheus игнорировать ошибки генерации метрик |
|
|
Флаг для использования самоподписанного сертификата для TLS |
|
|
Порт сервиса телеметрии |
|
|
Имя порта сервиса телеметрии |
|
|
Включить |
|
|
Метки |
|
|
Пространство имен |
|
|
Создать сервисный аккаунт для контроллера |
|
|
Имя сервисного аккаунта |
|
|
Метки, применяемые к созданному сервисному аккаунту |
|
|
Аннотации, применяемые к созданному сервисному аккаунту |
|
|
Имя строки контроллера workflow |
|
|
Указать все namespaces, где этот экземпляр контроллера workflow будет управлять workflow |
|
|
Настраивает контроллер для фильтрации отправок workflow только тех, которые имеют соответствующий атрибут |
|
|
Использовать |
|
|
Использовать пользовательский |
|
|
Установить уровень логирования (один из: |
|
|
Установить уровень логирования glog |
|
|
Установить формат логирования (один из: |
|
|
Тип сервиса контроллера |
|
|
Аннотации для применения к сервису контроллера |
|
|
Необязательные метки для добавления к сервису контроллера |
|
|
Класс реализации балансировщика нагрузки |
|
|
Исходные диапазоны для разрешения доступа к сервису. Применяется только к типу сервиса |
|
|
Ограничения и запросы ресурсов для контроллера |
|
|
Порт для проверки работоспособности |
|
|
Путь для проверки работоспособности |
|
|
Порог отказов для проверки |
|
|
Начальная задержка для проверки |
|
|
Период проверки |
|
|
Тайм-аут проверки |
|
|
Дополнительные переменные окружения для контейнера контроллера |
|
|
Дополнительные аргументы для добавления к контроллеру |
|
|
Дополнительные монтирования томов к основному контейнеру контроллера |
|
|
Дополнительные тома к pod контроллера |
|
|
Количество pod контроллера для запуска |
|
|
Количество ревизий для сохранения |
|
|
Настроить Pod Disruption Budget для pod контроллера |
|
|
Селектор узлов |
|
|
Толерантности для использования с пометками узлов |
|
|
Назначить пользовательские правила аффинности |
|
|
Назначить пользовательские правила |
|
|
Использовать |
|
|
Настроить Argo Server для отображения пользовательских ссылок |
|
|
Настроить Argo Server для отображения пользовательских колонок |
|
|
Установить цвет фона панели навигации UI |
|
|
Создать |
|
|
Дополнительные сервисные аккаунты для добавления в |
|
|
Дополнительные контейнеры для добавления к |
|
|
Включает добавление init-контейнеров к |
|
|
Удержание Workflow по количеству workflow |
|
|
Включить генерацию событий при завершении узлов |
|
|
Включить генерацию событий при изменении статуса workflow |
|
|
Настроить, когда контроллер workflow работает в другом кластере k8s с рабочими нагрузками workflow |
|
|
Указывает продолжительность в секундах перед принудительным завершением завершающегося pod |
|
|
Продолжительность в секундах перед удалением pod в очереди GC |
|
mainContainer - настройки основного контейнера workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
|
|
|
Ограничения и запросы ресурсов для основного контейнера Workflow |
|
|
Добавляет переменные окружения для основного контейнера Workflow |
|
|
Добавляет ссылочные переменные окружения для основного контейнера Workflow |
|
|
Устанавливает контекст безопасности для основного контейнера Workflow |
|
executor - настройки исполнителя workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр для исполнителей Workflow |
|
|
Репозиторий для исполнителей Workflow |
|
|
Тег образа для исполнителя workflow |
|
|
Политика загрузки образа для исполнителей Workflow |
|
|
Ограничения и запросы ресурсов для исполнителей Workflow |
|
|
Передает аргументы процессам исполнителя |
|
|
Добавляет переменные окружения для исполнителя |
|
|
Устанавливает контекст безопасности для контейнера исполнителя |
|
server - настройки сервера Argo#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Развернуть сервер Argo |
|
|
Значение для base href в |
|
|
Реестр для сервера |
|
|
Репозиторий для сервера |
|
|
Тег образа для сервера Argo Workflows |
|
|
Необязательная карта аннотаций для применения к |
|
|
Необязательная карта аннотаций для применения к pods UI |
|
|
Необязательные метки для добавления к pods UI |
|
|
|
|
|
Добавляет |
|
|
Файловая система контейнера только для чтения |
|
|
Запуск как непривилегированный пользователь |
|
|
Разрешение повышения привилегий |
|
|
Удаление всех возможностей |
|
|
Имя сервера |
|
|
Тип сервиса для pods сервера |
|
|
Порт сервиса для сервера |
|
|
Порт узла сервиса |
|
|
Имя порта сервиса |
|
|
Сопоставление между IP и именами хостов, которые будут внедрены как записи в файлы hosts pod |
|
|
Создать сервисный аккаунт для сервера |
|
|
Имя сервисного аккаунта |
|
|
Метки, применяемые к созданному сервисному аккаунту |
|
|
Аннотации, применяемые к созданному сервисному аккаунту |
|
|
Аннотации для применения к сервису UI |
|
|
Необязательные метки для добавления к сервису UI |
|
|
Класс реализации балансировщика нагрузки |
|
|
Статический IP-адрес для назначения сервису типа |
|
|
Исходные диапазоны для разрешения доступа к сервису. Применяется только к типу сервиса |
|
|
Ограничения и запросы ресурсов для сервера |
|
|
Количество pods сервера для запуска |
|
|
Количество ревизий для сохранения |
|
|
Включить горизонтальное автоскалирование pods для сервера Argo |
|
|
Минимальное количество реплик для HPA сервера Argo |
|
|
Максимальное количество реплик для HPA сервера Argo |
|
|
Средний процент использования CPU для HPA сервера Argo |
|
|
Средний процент использования памяти для HPA сервера Argo |
|
|
Настраивает поведение масштабирования цели в обоих направлениях Up и Down |
|
|
Настроить Pod Disruption Budget для pods сервера |
|
|
Селектор узлов |
|
|
Tolerations для использования с пометками узлов |
|
|
Назначить пользовательские правила аффинности |
|
|
Назначить пользовательские правила |
|
|
Использовать |
|
|
Запустить сервер Argo в безопасном режиме. Настройте это значение вместо |
|
|
Дополнительные переменные окружения для контейнера сервера Argo |
|
|
Устарело; используйте |
|
|
Список поддерживаемых режимов аутентификации. Доступные значения: |
|
|
Дополнительные аргументы для предоставления бинарному файлу сервера Argo |
|
|
Установить уровень логирования (один из: |
|
|
Установить уровень логирования glog |
|
|
Установить формат логирования (один из: |
|
|
Том для монтирования в pods для временных файлов |
|
|
Дополнительные монтирования томов к основному контейнеру сервера |
|
|
Дополнительные тома к pod сервера |
|
|
Включить ресурс |
|
|
Дополнительные аннотации |
|
|
Дополнительные метки |
|
|
Определяет, какой ingress-контроллер будет реализовывать ресурс |
|
|
Список хостов |
|
|
Список путей |
|
|
Тип пути |
|
|
Дополнительные пути |
|
|
Конфигурация TLS для |
|
|
Включить ресурс |
|
|
Спецификация |
|
|
Включить ресурс |
|
|
Домены для Google Managed Certificate |
|
|
Включить ресурс |
|
|
Спецификация |
|
|
Создать |
|
|
Дать серверу права на редактирование |
|
|
Создать конфигурацию SSO. Если установлено |
|
|
Корневой URL провайдера идентификации OIDC |
|
|
Имя секрета для получения ID клиента приложения OIDC |
|
|
Ключ секрета для получения ID клиента приложения OIDC |
|
|
Имя секрета для получения секрета клиента приложения OIDC |
|
|
Ключ секрета для получения секрета клиента приложения OIDC |
|
|
URL-перенаправления OIDC. Должен быть в форме |
|
|
Добавляет политику |
|
|
Белый список для разрешения серверу получать секреты |
|
|
Области, запрашиваемые у провайдера SSO ID |
|
|
Определить, как долго логин действителен (в часах) |
|
|
Альтернативные корневые URL, которые могут быть включены для некоторых провайдеров OIDC |
|
|
Переопределить имя утверждения для групп OIDC |
|
|
Указать конечную точку пользовательской информации, содержащую утверждение групп |
|
|
Пропустить проверку TLS для HTTP-клиента |
|
|
Фильтровать группы, возвращаемые провайдером OIDC |
|
|
Дополнительные контейнеры для добавления к |
|
|
Включает добавление init-контейнеров к |
|
|
Указать хуки жизненного цикла |
|
|
|
|
|
Включить проверку работоспособности Kubernetes для сервера |
|
|
HTTP-порт для проверки работоспособности |
|
|
HTTP-путь для проверки работоспособности |
|
|
Минимальное количество последовательных сбоев для проверки |
|
|
Количество секунд после запуска контейнера перед инициацией проверки |
|
|
Как часто (в секундах) выполнять проверку |
|
|
Количество секунд, после которых проверка истекает |
|
|
Минимальное количество последовательных успехов для проверки |
|
extraObjects - дополнительные манифесты K8s#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Массив дополнительных манифестов K8s для развертывания |
|
useStaticCredentials - использование статических учетных данных#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Использовать статические учетные данные для S3 (например, при неиспользовании AWS IRSA) |
|
artifactRepository - репозиторий артефактов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Архивировать логи основного контейнера как артефакт |
|
|
Хранить артефакт в S3-совместимом хранилище объектов |
|
|
Хранить артефакт в хранилище объектов GCS |
|
|
Хранить артефакт в Azure Blob Storage |
|
customArtifactRepository - пользовательский репозиторий артефактов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Раздел пользовательского репозитория артефактов. Использование пользовательского репозитория артефактов, который не является одним из текущих базовых (s3, gcs, azure) |
|
artifactRepositoryRef - ссылка на репозиторий артефактов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Раздел ссылки на репозиторий артефактов. Каждый ключ карты - это имя |
|
emissary - настройки emissary#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Команда/аргументы для каждого образа в workflow, необходимые, когда команда не указана и используется исполнитель |
|