Argo-rollouts#
Argo-rollouts — Kubernetes-контроллер и набор CRD, предоставляющий продвинутые возможности для реализации постепенной доставки (progressive delivery) приложений в кластере. Он позволяет более гибко управлять процессом развертывания, обеспечивая безопасное и контролируемое обновление сервисов.
Основные задачи и возможности
Поддержка стратегий развертывания: Позволяет использовать такие методы как
canary(канареечный),blue-green(сине-зеленое) развертывание, а также A/B тестирование и эксперименты с трафиком.Канареечный анализ и автоматизация: Поддерживает автоматический анализ состояния новых версий приложений на основе метрик (например, из Prometheus), позволяя либо продолжить, либо откатить обновление в случае проблем.
Гибкая маршрутизация трафика: Интегрируется с Istio, Linkerd, Kong и другими service mesh или ingress-решениями для постепенного переключения трафика между версиями приложения.
Интеграция с GitOps-подходом: Может использоваться вместе с Argocd, что позволяет объединить управление конфигурацией и стратегией развертывания в едином декларативном процессе.
Визуализация и мониторинг: Предоставляет удобный веб-интерфейс для отслеживания статуса развертывания, анализа ошибок и выполнения.
Примечание
Argo-rollouts является инструментом по умолчанию в составе «Devops» и устанавливается с ним автоматически.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем argo-rollouts и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
installCRDs – установка и обновление Custom Resource Definition
containerSecurityContext – параметры контекста безопасности контейнера
installCRDs – установка и обновление Custom Resource Definition#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Установка и обновление CRD при установке или обновлении чарта |
|
keepCRDs – сохранение CRD при удалении#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Сохранение CRD при удалении Helm-релиза |
|
clusterInstall – режим установки контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
При значении |
|
createClusterAggregateRoles – создание агрегированных ролей#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание агрегированных |
|
nameOverride – переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение базового имени ресурсов чарта |
|
fullnameOverride – полное переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полное переопределение имени для всех создаваемых ресурсов |
|
namespaceOverride – переопределение пространства имен#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение пространства имен |
|
apiVersionOverrides – переопределение версий API#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение |
|
kubeVersionOverride – переопределение версии Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение версии Kubernetes, используемой при вычислении условных манифестов чарта |
|
extraObjects – дополнительные объекты Helm-чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Добавление дополнительных динамических объектов в Helm-чарте. |
|
controller – настройки контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Значение метки |
|
|
Дополнительные аннотации для |
|
|
Дополнительные метки для |
|
|
Дополнительные аннотации для pod контроллера |
|
|
Дополнительные метки для pod контроллера |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Настройки правила привязки ( |
|
|
Уровень логирования контроллера. |
|
|
Уровень |
|
|
Формат логов контроллера. |
|
|
Ограничения топологии для равномерного распределения pod по зонам доступности и узлам. |
|
|
Время, отведенное на корректное завершение работы pod |
|
|
Параметры |
|
|
Имя |
|
|
Количество реплик pod; при значении |
|
|
Реестр контейнерного образа контроллера |
|
|
Репозиторий контейнерного образа контроллера |
|
|
Тег образа контейнера контроллера |
|
|
Политика загрузки контейнерного образа контроллера |
|
|
Проверка AWS-целевой группы перед прохождением шагов (требует прав AWS) |
|
|
Версия API |
|
|
Ключ тега ALB для идентификатора ресурса (например, |
|
|
Поддержка уведомлений в режиме самообслуживания, позволяющая контроллеру получать конфигурацию уведомлений из пространства имен развертывания |
|
|
Включение |
|
|
Дополнительные аргументы командной строки для контроллера развертываний |
|
|
Дополнительные переменные окружения для контроллера развертываний. |
|
|
Дополнительные контейнеры для pod контроллера |
|
|
Список init-контейнеров, запускаемых перед основными. |
|
|
Запросы и ограничения ресурсов для pod. |
|
|
Создание |
|
|
Порт контейнера для экспорта метрик |
|
|
Порт контейнера для |
|
|
Создание |
|
|
Имя порта для |
|
|
Порт |
|
|
Аннотации |
|
|
Метки |
|
|
Создание |
|
|
Пространство имен |
|
|
Дополнительные метки для |
|
|
Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик в |
|
|
Правила фильтрации и преобразования меток, применяемые к собранным метрикам в |
|
|
TLS-конфигурация |
|
|
Путь HTTP для проверки работоспособности контейнера контроллера |
|
|
Порт HTTP для проверки работоспособности контейнера контроллера |
|
|
Задержка перед первой проверкой работоспособности контейнера контроллера в секундах |
|
|
Период проверки работоспособности контейнера контроллера в секундах |
|
|
Количество неудачных попыток проверки работоспособности контейнера контроллера |
|
|
Количество успешных проверок для подтверждения работоспособности контейнера контроллера |
|
|
Тайм-аут проверки работоспособности контейнера контроллера |
|
|
Путь HTTP для проверки готовности контейнера контроллера |
|
|
Порт HTTP для проверки готовности контейнера контроллера |
|
|
Задержка перед первой проверкой готовности контейнера контроллера в секундах |
|
|
Период проверки готовности контейнера контроллера в секундах |
|
|
Количество неудачных попыток до перевода контейнера контроллера в статус |
|
|
Количество успешных попыток для подтверждения готовности контейнера контроллера |
|
|
Тайм-аут проверки готовности контейнера контроллера в секундах |
|
|
Создание |
|
|
Метки для |
|
|
Аннотации для |
|
|
Минимальное количество или процент pod, которые должны оставаться доступными |
|
|
Максимальное количество или процент pod, которые могут быть недоступны одновременно |
|
|
Дополнительные тома ( |
|
|
Дополнительные точки монтирования томов ( |
|
|
Плагины сторонних провайдеров метрик для контроллера. |
|
|
Сторонние плагины для настройки шагов в canary-стратегиях развертывания. |
|
|
Настройка плагинов маршрутизации стороннего трафика для контроллера. |
|
|
Автоматическое создание |
|
serviceAccount – настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание нового |
|
|
Дополнительные аннотации для |
|
|
Имя |
|
crdAnnotations – аннотации для CRD#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации, добавляемые ко всем CRD |
|
podAnnotations – аннотации pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для всех развертываемых pod |
|
podSecurityContext – параметры контекста безопасности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запуск pod от имени пользователя без административных полномочий |
|
containerSecurityContext – параметры контекста безопасности контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Разрешение повышения привилегий в контейнере |
|
|
Список |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
Профиль |
|
serviceAnnotations – аннотации Service#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные аннотации для |
|
podLabels – метки pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для pod |
|
imagePullSecrets – Secret для загрузки образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список |
|
providerRBAC – RBAC-правила для провайдеров#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение добавления специфических RBAC-правил для провайдера в |
|
|
Добавление RBAC-правил для провайдера Istio |
|
|
Добавление RBAC-правил для провайдера SMI |
|
|
Добавление RBAC-правил для провайдера Ambassador |
|
|
Добавление RBAC-правил для AWS |
|
|
Добавление RBAC-правил для AWS |
|
|
Добавление RBAC-правил для провайдера Traefik |
|
|
Добавление RBAC-правил для провайдера Apisix |
|
|
Добавление RBAC-правил для провайдера Contour |
|
|
Добавление RBAC-правил для провайдера Gloo Platform |
|
|
Добавление RBAC-правил для провайдера Gateway API |
|
|
Дополнительные RBAC-правила для прочих провайдеров |
|
dashboard – настройки дашборда сервера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение развертывания дашборда сервера |
|
|
Перевод дашборда в режим «только для чтения» |
|
|
Значение метки |
|
|
Дополнительные аннотации для |
|
|
Дополнительные метки для |
|
|
Дополнительные аннотации для pod дашборда |
|
|
Дополнительные метки для pod дашборда |
|
|
Метки узлов для размещения pod дашборда |
|
|
|
|
|
Правила для размещения pod дашборда |
|
|
Уровень логирования дашборда. |
|
|
Уровень |
|
|
Ограничения топологии для равномерного распределения pod по зонам доступности и узлам. |
|
|
Имя |
|
|
Создание |
|
|
Количество реплик pod дашборда |
|
|
Реестр контейнерного образа дашборда |
|
|
Репозиторий контейнерного образа дашборда |
|
|
Тег образа контейнера дашборда. Если параметр не задан, используется чарт |
|
|
Политика загрузки контейнерного образа дашборда |
|
|
Корневой путь дашборда (например, |
|
|
Дополнительные аргументы командной строки для дашборда |
|
|
Дополнительные переменные окружения для дашборда. |
|
|
Запросы и ограничения ресурсов для pod. |
|
|
Запуск pod дашборда от имени пользователя без административных полномочий |
|
|
Контекст безопасности контейнера дашборда |
|
|
Тип |
|
|
Класс балансировщика нагрузки для |
|
|
Статический IP-адрес для |
|
|
Список CIDR-диапазонов, которым разрешен доступ к |
|
|
Список внешних IP-адресов |
|
|
Дополнительные аннотации для |
|
|
Дополнительные метки для |
|
|
Имя порта |
|
|
Порт |
|
|
Целевой порт контейнера для |
|
|
Фиксированный |
|
|
Создание нового |
|
|
Дополнительные аннотации для |
|
|
Имя |
|
|
Метки для |
|
|
Аннотации для |
|
|
Создание |
|
|
Минимальное количество или процент pod дашборда, которые должны оставаться доступными |
|
|
Максимальное количество или процент pod дашборда, которые могут быть недоступны одновременно |
|
|
Включение |
|
|
Аннотации для |
|
|
Дополнительные метки для метаданных |
|
|
Класс |
|
|
Основной хост для ресурсов |
|
|
Список путей |
|
|
Тип пути |
|
|
Дополнительные пути для |
|
|
Включение TLS-конфигурации для |
|
|
Включение ресурса |
|
|
Дополнительные метки для |
|
|
Дополнительные аннотации для |
|
|
Ссылки на родительские Gateway для |
|
|
Список имен хостов для |
|
|
Правила |
|
|
Дополнительные тома ( |
|
|
Дополнительные точки монтирования томов ( |
|
notifications – настройки уведомлений#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Создание |
|
|
Пары «ключ-значение» для вставки в |
|
|
Дополнительные аннотации для |
|
|
Настройка служб уведомлений. |
|
|
Шаблоны уведомлений. |
|
|
Триггеры, определяющие условия отправки уведомлений. |
|
|
Подписки на триггеры общим способом для всех развертываний. |
|