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 со всей OpenAPI-схемой, при отключении используются сокращенные CRD с |
|
|
Аннотации для всех CRD |
|
createAggregateRoles - создание агрегированных ролей#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание кластерных ролей, расширяющих существующие |
|
nameOverride - переопределение имени ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Строка для частичного переопределения шаблона |
|
fullnameOverride - полное переопределение имени ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Строка для полного переопределения шаблона |
|
namespaceOverride - переопределение пространства имен#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение пространства имен развертывания ресурсов |
|
commonLabels - общие метки ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для установки на все ресурсы |
|
kubeVersionOverride - переопределение версии Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение версии Kubernetes, используемой для оценки определенных манифестов |
|
apiVersionOverrides - переопределение версий API#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Строка для переопределения |
|
|
Строка для переопределения |
|
|
Строка для переопределения |
|
singleNamespace - режим работы в одном пространстве имен#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Ограничение работы Argo только в одном пространстве имен путем применения |
|
workflow - настройки workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Устарело; используйте |
|
|
Указывает, должен ли быть создан сервисный аккаунт |
|
|
Метки, применяемые к созданному сервисному аккаунту |
|
|
Аннотации, применяемые к созданному сервисному аккаунту |
|
|
Сервисный аккаунт, который используется для запуска workflow |
|
|
Секреты для загрузки образов из приватного реестра |
|
|
Добавляет |
|
|
Разрешает права для Argo Agent. Требуется только при использовании |
|
|
Разрешает права для pod очистки Argo Artifact. Требуется только при использовании сборки мусора артефактов |
|
|
Дополнительные сервисные аккаунты для добавления в |
|
|
Дополнительные правила для сервисного аккаунта, который запускает workflow |
|
controller - настройки контроллера workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр для контроллера |
|
|
Репозиторий для контроллера |
|
|
Тег образа для контроллера workflow |
|
|
Указывает количество workflow, которые могут выполняться одновременно |
|
|
Глобально ограничивает скорость создания pod, чтобы не перегружать Kubernetes API-сервер |
|
|
Добавляет |
|
|
Позволяет контроллеру получать, перечислять и отслеживать определенные секреты Kubernetes |
|
|
Позволяет контроллеру получать, перечислять и отслеживать все секреты Kubernetes |
|
|
Позволяет контроллеру создавать и обновлять |
|
|
Создает |
|
|
Имя |
|
|
Аннотации |
|
|
Ограничивает максимальное количество незавершенных workflow в пространстве имен |
|
|
Задает начальную задержку для обхода ошибки AWS EKS |
|
|
Необязательная карта аннотаций для применения к |
|
|
Необязательная карта аннотаций для применения к pod контроллера |
|
|
Необязательные метки для добавления к pod контроллера |
|
|
|
|
|
Включает сервер метрик Prometheus |
|
|
Путь, по которому публикуются метрики, должен начинаться с символа |
|
|
Интервал опроса метрик Prometheus |
|
|
Порт контейнера, на котором публикуются метрики |
|
|
Период очистки пользовательских метрик из памяти |
|
|
Флаг, указывающий Prometheus игнорировать ошибки генерации метрик |
|
|
Флаг для использования самоподписанного сертификата для TLS |
|
|
Имя порта метрик контейнера |
|
|
Порт метрик сервиса |
|
|
Имя порта метрик сервиса |
|
|
Схема подключения |
|
|
Флаг для включения headless-сервиса |
|
|
Когда |
|
|
Конфигурации повторной разметки |
|
|
Конфигурации повторной разметки метрик |
|
|
|
|
|
Модификаторы метрик, создаваемых workflow контроллера |
|
|
Файловая система контейнера только для чтения |
|
|
Запуск от имени непривилегированного пользователя |
|
|
Запрещение повышения привилегий |
|
|
Удаление всех возможностей |
|
|
Включить архив workflow для хранения статуса. Доступны Postgres и MySQL (>= |
|
|
Значения по умолчанию, применяемые ко всем workflow от этого контроллера, если они не переопределены на уровне workflow |
|
|
Количество рабочих узлов workflow |
|
|
Количество рабочих узлов TTL workflow |
|
|
Количество рабочих узлов очистки pod |
|
|
Количество рабочих узлов cron workflow |
|
|
Ограничивает workflow, которые будет обрабатывать контроллер |
|
|
Включает сервер телеметрии Prometheus |
|
|
Путь телеметрии |
|
|
Частота, с которой Prometheus собирает данные телеметрии |
|
|
Порт контейнера телеметрии |
|
|
Период очистки пользовательских метрик из памяти |
|
|
Флаг, указывающий Prometheus игнорировать ошибки генерации метрик |
|
|
Флаг для использования самоподписанного сертификата для TLS |
|
|
Порт сервиса телеметрии |
|
|
Имя порта сервиса телеметрии |
|
|
Схема, используемая |
|
|
Включает |
|
|
Метки |
|
|
Пространство имен |
|
|
Создание сервисного аккаунта для контроллера |
|
|
Имя сервисного аккаунта |
|
|
Метки, применяемые к созданному сервисному аккаунту |
|
|
Аннотации, применяемые к созданному сервисному аккаунту |
|
|
Имя строки контроллера workflow |
|
|
Указать все пространства имен, где этот экземпляр контроллера будет управлять workflow |
|
|
Настраивает контроллер на обработку только тех workflow, которые имеют соответствующий атрибут |
|
|
Использование |
|
|
Использование пользовательский |
|
|
Установка уровня логирования (допустимые значения: |
|
|
Установка уровня логирования |
|
|
Установка формата логирования (допустимые значения: |
|
|
Тип сервиса контроллера |
|
|
Аннотации для применения к сервису контроллера |
|
|
Дополнительные метки сервиса контроллера |
|
|
Класс реализации балансировщика нагрузки |
|
|
Исходные диапазоны для разрешения доступа к сервису. Применяется только к типу сервиса |
|
|
Ограничения и запросы ресурсов для контроллера |
|
|
Порт для проверки работоспособности |
|
|
Путь для проверки работоспособности |
|
|
Количество неуспешных проверок до признания контроллера недоступным |
|
|
Начальная задержка для проверки |
|
|
Период проверки |
|
|
Время ожидания проверки |
|
|
Дополнительные переменные окружения для контейнера контроллера |
|
|
Дополнительные аргументы для добавления к контроллеру |
|
|
Дополнительные монтирования томов к основному контейнеру контроллера |
|
|
Дополнительные тома к pod контроллера |
|
|
Количество pod контроллера для запуска |
|
|
Количество сохраняемых ревизий |
|
|
Включает создание |
|
|
Селектор узлов для размещения контроллера только на Linux-узлах |
|
|
Tolerations для pod контроллера |
|
|
Affinity-правила для pod контроллера |
|
|
Назначение пользовательских правил |
|
|
Использование |
|
|
Настройка Argo Server для отображения пользовательских ссылок |
|
|
Настройка Argo Server для отображения пользовательских колонок |
|
|
Установка цвета фона панели навигации UI |
|
|
Создание |
|
|
Дополнительные сервисные аккаунты для добавления в |
|
|
Дополнительные контейнеры для добавления в Deployment контроллера |
|
|
Init-контейнеры, добавляемые в Deployment контроллера |
|
|
Политика удержания workflow по количеству workflow |
|
|
Включает генерацию событий при завершении узлов |
|
|
Включает генерацию событий при изменении статуса workflow |
|
|
Настройка, когда контроллер workflow работает в другом кластере с рабочими нагрузками workflow |
|
|
Количество секунд до принудительного завершения завершающегося pod. Нулевое значение означает немедленное завершение |
|
|
Задержка перед удалением pod из очереди сборки мусора. Пустое значение использует значение по умолчанию Argo Workflows |
|
|
Включает использование базы данных для |
|
mainContainer - настройки основного контейнера workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Политика загрузки образов для основного контейнера workflow. По умолчанию используется |
|
|
Ограничения и запросы ресурсов для основного контейнера workflow |
|
|
Переменные окружения для основного контейнера workflow |
|
|
Ссылочные источники переменных окружения для основного контейнера workflow |
|
|
Контекст безопасности для основного контейнера workflow |
|
executor - настройки исполнителя workflow#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр для исполнителей workflow |
|
|
Репозиторий для исполнителей workflow |
|
|
Тег образа для исполнителя workflow |
|
|
Политика загрузки образа для исполнителей workflow |
|
|
Передает аргументы процессам исполнителя |
|
|
Аргументы, передаваемые процессам исполнителя |
|
|
Переменные окружения для исполнителя |
|
|
Контекст безопасности контейнера исполнителя |
|
server - настройки сервера Argo#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает развертывание сервера Argo |
|
|
Значение базового URL-пути, относительно которого будут разрешаться все относительные ссылки, скрипты, стили и маршруты в файле |
|
|
Реестр для сервера |
|
|
Репозиторий для сервера |
|
|
Тег образа для сервера Argo Workflows. По умолчанию используется |
|
|
Аннотации |
|
|
Аннотации pod UI |
|
|
Дополнительные метки pod UI |
|
|
|
|
|
Добавление |
|
|
Включает режим |
|
|
Запуск от имени непривилегированного пользователя |
|
|
Запрет повышения привилегий в контейнере |
|
|
Удаление всех возможностей server |
|
|
Имя сервера |
|
|
Тип сервиса для pod сервера |
|
|
Порт сервиса для сервера |
|
|
Целевой порт сервиса для сервера |
|
|
Порт узла сервиса |
|
|
Имя порта сервиса |
|
|
Сопоставление между IP и именами хостов, которые будут внедрены как записи в файлы |
|
|
Создание сервисного аккаунта для сервера |
|
|
Имя сервисного аккаунта |
|
|
Метки, применяемые к созданному сервисному аккаунту |
|
|
Аннотации, применяемые к созданному сервисному аккаунту |
|
|
Аннотации для применения к сервису UI |
|
|
Дополнительные метки сервиса UI |
|
|
Класс реализации балансировщика нагрузки |
|
|
Статический IP-адрес для назначения сервису типа |
|
|
Исходные диапазоны для разрешения доступа к сервису. Применяется только к типу сервиса |
|
|
Ограничения и запросы ресурсов для сервера |
|
|
Количество pod сервера для запуска |
|
|
Количество сохраняемых ревизий |
|
|
Включить горизонтальное автоматическое масштабирование (HPA) pod для сервера Argo |
|
|
Минимальное количество реплик для HPA сервера Argo |
|
|
Максимальное количество реплик для HPA сервера Argo |
|
|
Средний процент использования CPU для HPA сервера Argo |
|
|
Средний процент использования памяти для HPA сервера Argo |
|
|
Настраивает поведение масштабирования цели в обоих направлениях |
|
|
Включает |
|
|
Селектор узлов для размещения сервера только на Linux-узлах |
|
|
Tolerations для pod сервера |
|
|
Affinity-правила для pod сервера |
|
|
Назначение пользовательских правил |
|
|
Использование |
|
|
Запуск сервера Argo в безопасном режиме. Настройте это значение вместо |
|
|
Дополнительные переменные окружения для контейнера сервера Argo |
|
|
Устарело; используйте |
|
|
Список поддерживаемых режимов аутентификации. Доступные значения: |
|
|
Дополнительные аргументы для предоставления бинарному файлу сервера Argo |
|
|
Установить уровень логирования (допустимые значения: |
|
|
Установить уровень логирования glog |
|
|
Установить формат логирования (допустимые значения: |
|
|
Том для монтирования в pod временных файлов |
|
|
Дополнительные монтирования томов к основному контейнеру сервера |
|
|
Дополнительные тома к pod сервера |
|
|
Включает отображение ссылки на сервер в консоли |
|
|
Включает создание ресурса |
|
|
Дополнительные аннотации |
|
|
Дополнительные метки |
|
|
Определяет, какой ingress-контроллер будет реализовывать ресурс |
|
|
Список хостов Ingress |
|
|
Список путей |
|
|
Тип пути |
|
|
Дополнительные пути |
|
|
TLS-конфигурация |
|
|
Создает |
|
|
Спецификация |
|
|
Создает |
|
|
Домены для Google Managed Certificate |
|
|
Создает |
|
|
Спецификация |
|
|
Включает создание |
|
|
Дополнительные метки |
|
|
Дополнительные аннотации |
|
|
Ссылка в Gateway API на существующий объект шлюза, к которому относится |
|
|
Список |
|
|
Правила |
|
|
Включение создания |
|
|
Дополнительные метки |
|
|
Дополнительные аннотации |
|
|
Ссылки на target-ресурсы |
|
|
Настройки проверки TLS для |
|
|
Создание ClusterRole и |
|
|
Разрешает серверу редактировать |
|
|
Создать конфигурацию SSO. Если установлено |
|
|
Корневой URL провайдера идентификации |
|
|
Имя секрета для получения ID клиента приложения OIDC |
|
|
Ключ секрета для получения ID клиента приложения OIDC |
|
|
Имя секрета для получения секрета клиента приложения OIDC |
|
|
Ключ секрета для получения секрета клиента приложения OIDC |
|
|
URL-перенаправления OIDC. Должен быть в форме |
|
|
Добавляет политику |
|
|
Ограничивает набор секретов, которые сервер может читать для авторизации |
|
|
Области, запрашиваемые у провайдера SSO ID |
|
|
Определить, как долго логин действителен (в часах). Пустое значение использует значение по умолчанию - |
|
|
Альтернативные корневые URL, которые могут быть включены для некоторых провайдеров OIDC |
|
|
Переопределяет имя утверждения для групп OIDC |
|
|
Путь к конечной точке пользовательской информации, содержащей утверждение групп |
|
|
Отключает проверку TLS для HTTP-клиента |
|
|
Фильтрация групп, возвращаемых провайдером OIDC |
|
|
Дополнительные контейнеры, добавляемые в |
|
|
Init-контейнеры, добавляемые в |
|
|
Указание хуков жизненного цикла |
|
|
Время ожидания завершения контейнера сервера перед принудительной остановкой |
|
|
Включает проверку работоспособности Kubernetes для сервера |
|
|
HTTP-порт для проверки работоспособности |
|
|
HTTP-путь для проверки работоспособности |
|
|
Минимальное количество последовательных сбоев для проверки |
|
|
Количество секунд после запуска контейнера перед инициацией проверки |
|
|
Частота (в секундах) между проверками сервера |
|
|
Количество секунд, после которых проверка истекает |
|
|
Минимальное количество последовательных успешных проверок после ошибки |
|
extraObjects - дополнительные манифесты Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Массив дополнительных манифестов Kubernetes для развертывания |
|
useStaticCredentials - использование статических учетных данных#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает использование статических учетных данных для S3 (например, при неиспользовании AWS IRSA) |
|
artifactRepository - репозиторий артефактов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Архивирует логи основного контейнера как артефакт |
|
|
Настройки хранения артефакта в S3-совместимом хранилище объектов |
|
|
Настройки хранения артефакта в хранилище объектов GCS |
|
|
Настройки хранения артефакта в Azure Blob Storage |
|
customArtifactRepository - пользовательский репозиторий артефактов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Раздел пользовательского репозитория артефактов. Использование пользовательского репозитория артефактов, который не является одним из текущих базовых (s3, gcs, azure) |
|
artifactRepositoryRef - ссылка на репозиторий артефактов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Раздел ссылки на репозиторий артефактов. Каждый ключ карты - это имя |
|
emissary - настройки emissary#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Команда/аргументы для каждого образа в workflow, необходимые, когда команда не указана и используется исполнитель |
|