Argo-rollouts#
Argo-rollouts - это Kubernetes-контроллер и набор CRD, предоставляющий продвинутые возможности для реализации постепенной доставки (progressive delivery) приложений в кластере. Он позволяет более гибко управлять процессом развертывания, обеспечивая безопасное и контролируемое обновление сервисов.
Основные задачи и возможности
Поддержка стратегий развертывания:
Позволяет использовать такие методы как
canary(канареечный),blue-green(сине-зеленое) развертывание, а также A/B тестирование и эксперименты с трафиком.Канареечный анализ и автоматизация:
Поддерживает автоматический анализ состояния новых версий приложений на основе метрик (например, из Prometheus), позволяя либо продолжить, либо откатить обновление в случае проблем.
Гибкая маршрутизация трафика:
Интегрируется с Istio, Linkerd, Kong и другими service mesh или ingress-решениями для постепенного переключения трафика между версиями приложения.
Интеграция с GitOps-подходом:
Может использоваться вместе с Argocd, что позволяет объединить управление конфигурацией и стратегией развертывания в едином декларативном процессе.
Визуализация и мониторинг:
Предоставляет удобный веб-интерфейс для отслеживания статуса rollout, анализа ошибок и выполнения.
Примечание
Argo-rollouts является инструментом по умолчанию компонента Devops и устанавливается с ним автоматически.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем argo-rollouts и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
-
installCRDs - управление установкой Custom Resource Definitions
controller.metrics.serviceMonitor - настройки ServiceMonitor для Prometheus
controller.livenessProbe - проверка жизнеспособности контроллера
dashboard.podSecurityContext - контекст безопасности пода dashboard
dashboard.containerSecurityContext - контекст безопасности контейнера dashboard
installCRDs - управление установкой Custom Resource Definitions#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Определяет, устанавливать ли CRD (Custom Resource Definitions) при установке или обновлении чарта |
|
keepCRDs - сохранение CRD при удалении#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Сохранять ли CRD при удалении Helm-релиза |
|
clusterInstall - режим установки контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
При значении |
|
createClusterAggregateRoles - создание агрегированных ролей#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Флаг для создания агрегированных ролей кластера (требует cluster RBAC) |
|
nameOverride - переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Строка для частичного переопределения шаблона |
|
fullnameOverride - полное переопределение имени#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Строка для полного переопределения шаблона |
|
apiVersionOverrides - переопределение версий API#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение |
|
kubeVersionOverride - переопределение версии Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение версии Kubernetes для оценки определенных манифестов |
|
extraObjects - дополнительные манифесты#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные манифесты для развертывания в рамках чарта. Список объектов |
|
global - глобальные настройки#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для всех развернутых |
|
|
Метки для всех развернутых |
|
|
Количество старых |
|
controller - настройки контроллера Argo Rollouts#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Значение метки |
|
|
Аннотации для |
|
|
Метки для |
|
|
Аннотации для pods контроллера |
|
|
Метки для pods контроллера |
|
|
Селектор узлов для размещения pods контроллера |
|
|
Tolerations для работы с taint узлов |
|
|
Правила affinity для |
|
|
Правила |
|
|
Время ожидания завершения контейнера для lifecycle hook |
|
|
Lifecycle hooks для контроллера |
|
|
Класс приоритета для контроллера |
|
|
Количество pods контроллера |
|
|
Флаг создания |
|
|
Дополнительные аргументы командной строки для rollouts-controller |
|
|
Дополнительные переменные окружения для rollouts-controller |
|
|
Дополнительные контейнеры для |
|
|
Init-контейнеры для pod контроллера |
|
|
Лимиты и запросы ресурсов для pods контроллера |
|
|
Дополнительные |
|
|
Дополнительные |
|
|
Настройка плагинов метрик третьих сторон для контроллера |
|
|
Настройка плагинов маршрутизации трафика третьих сторон для контроллера |
|
controller.logging - настройки логирования контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Уровень логирования ( |
|
|
Уровень |
|
|
Формат логирования ( |
|
controller.image - настройки образа контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр для использования |
|
|
Репозиторий для использования |
|
|
Переопределение тега образа |
|
|
Политика загрузки образа |
|
controller.containerPorts - порты контейнера контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Порт контейнера для метрик |
|
|
Порт контейнера для проверки здоровья |
|
controller.metrics - настройки метрик контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Развертывание сервиса метрик |
|
|
Имя порта сервиса метрик |
|
|
Порт сервиса метрик |
|
|
Аннотации сервиса |
|
controller.metrics.serviceMonitor - настройки ServiceMonitor для Prometheus#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение |
|
|
Namespace для |
|
|
Дополнительные метки для |
|
|
Дополнительные аннотации для |
|
|
|
|
|
|
|
controller.livenessProbe - проверка жизнеспособности контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Путь для HTTP-проверки |
|
|
Порт для HTTP-проверки |
|
|
Начальная задержка перед первой проверкой |
|
|
Период между проверками |
|
|
Количество неудачных проверок перед restart |
|
|
Количество успешных проверок для healthy |
|
|
Время ожидания проверки |
|
controller.readinessProbe - проверка готовности контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Путь для HTTP-проверки |
|
|
Порт для HTTP-проверки |
|
|
Начальная задержка перед первой проверкой |
|
|
Период между проверками |
|
|
Количество неудачных проверок перед |
|
|
Количество успешных проверок для |
|
|
Время ожидания проверки |
|
controller.pdb - Pod Disruption Budget для контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для Pod Disruption Budget контроллера |
|
|
Аннотации для Pod Disruption Budget контроллера |
|
|
Развертывание Pod Disruption Budget |
|
|
Минимальное количество/процент pods, которые должны оставаться запланированными |
|
|
Максимальное количество/процент pods, которые могут быть недоступными |
|
serviceAccount - настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ли сервисный аккаунт |
|
|
Аннотации для сервисного аккаунта |
|
|
Имя сервисного аккаунта для использования |
|
crdAnnotations - аннотации для CRD#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для всех CRD |
|
podAnnotations - аннотации для подов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для всех развернутых pods |
|
podSecurityContext - контекст безопасности пода#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запуск с непривилегированным пользователем |
|
containerSecurityContext - контекст безопасности контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Разрешение escalation-привилегий |
|
|
Список |
|
|
Только чтение корневой файловой системы |
|
|
Тип профиля |
|
serviceAnnotations - аннотации сервиса#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для сервиса |
|
podLabels - метки pods#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для pods |
|
imagePullSecrets - секреты для загрузки образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Секреты с учетными данными для загрузки образов из частного реестра |
|
providerRBAC - RBAC-правила для провайдеров#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переключение добавления RBAC правил для конкретных провайдеров в |
|
|
Добавление RBAC правил для провайдера Istio |
|
|
Добавление RBAC правил для провайдера SMI |
|
|
Добавление RBAC правил для провайдера Ambassador |
|
|
Добавление RBAC правил для провайдера AWS Load Balancer Controller |
|
|
Добавление RBAC правил для провайдера AWS App Mesh |
|
|
Добавление RBAC правил для провайдера Traefik |
|
|
Добавление RBAC правил для провайдера Apisix |
|
|
Добавление RBAC правил для провайдера Contour |
|
|
Добавление RBAC правил для провайдера Gloo Platform |
|
|
Добавление RBAC правил для провайдера Gateway API |
|
|
Дополнительные RBAC-правила для других провайдеров |
|
dashboard - настройки dashboard сервера Argo Rollouts#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Развертывание dashboard сервера |
|
|
Установка cluster role в режим только для чтения |
|
|
Значение метки |
|
|
Аннотации для |
|
|
Метки для |
|
|
Аннотации для pods dashboard |
|
|
Метки для pods dashboard |
|
|
Селектор узлов для размещения pods dashboard |
|
|
Tolerations для работы с taint узлов |
|
|
Правила affinity для |
|
|
Правила |
|
|
Класс приоритета для dashboard сервера |
|
|
Флаг создания cluster role для dashboard (требует cluster RBAC) |
|
|
Количество pods dashboard |
|
|
Дополнительные аргументы командной строки для rollouts-dashboard |
|
|
Дополнительные переменные окружения для rollouts-dashboard |
|
|
Лимиты и запросы ресурсов для pods dashboard |
|
|
Дополнительные |
|
|
Дополнительные |
|
dashboard.logging - настройки логирования dashboard#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Уровень логирования ( |
|
|
Уровень |
|
dashboard.image - настройки образа dashboard#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр для использования |
|
|
Репозиторий для использования |
|
|
Переопределение тега образа |
|
|
Политика загрузки образа |
|
dashboard.podSecurityContext - контекст безопасности пода dashboard#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запуск с непривилегированным пользователем |
|
dashboard.containerSecurityContext - контекст безопасности контейнера dashboard#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Контекст безопасности на уровне контейнера |
|
dashboard.service - настройки сервиса dashboard#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Тип сервиса |
|
|
Класс |
|
|
IP-адрес для |
|
|
Диапазоны IP для доступа к сервису |
|
|
Внешние IP-адреса сервиса dashboard |
|
|
Аннотации сервиса |
|
|
Метки сервиса |
|
|
Имя порта сервиса |
|
|
Порт сервиса |
|
|
Целевой порт сервиса |
|
|
|
|
dashboard.serviceAccount - сервисный аккаунт dashboard#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ли сервисный аккаунт для dashboard |
|
|
Аннотации для сервисного аккаунта dashboard |
|
|
Имя сервисного аккаунта для использования |
|
dashboard.pdb - Pod Disruption Budget для dashboard#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для Pod Disruption Budget dashboard |
|
|
Аннотации для Pod Disruption Budget dashboard |
|
|
Развертывание Pod Disruption Budget для dashboard |
|
|
Минимальное количество/процент pods, которые должны оставаться запланированными |
|
|
Максимальное количество/процент pods, которые могут быть недоступными |
|
dashboard.ingress - настройки Ingress для dashboard#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение поддержки Ingress для dashboard |
|
|
Аннотации Ingress для dashboard |
|
|
Метки Ingress для dashboard |
|
|
Класс Ingress для dashboard |
|
|
Хосты Ingress для dashboard |
|
|
Пути Ingress для dashboard |
|
|
Тип пути Ingress для dashboard |
|
|
Дополнительные пути Ingress для dashboard |
|
|
Настройки TLS для Ingress dashboard |
|
notifications - настройки уведомлений Argo Rollouts#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ли |
|
|
Создавать ли секрет для уведомлений |
|
|
Пары «ключ-значение» для вставки в секрет уведомлений |
|
|
Аннотации для secret-уведомлений |
|
|
Настройка служб уведомлений |
|
|
Шаблоны уведомлений |
|
|
Триггеры для определения условий отправки уведомлений |
|
|
Подписки на триггеры общим способом для всех rollouts |
|