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-образов#

Параметр

Описание

Значение по умолчанию

images.tag

Общий тег для всех образов Argo Workflows

v3.7.14

images.pullPolicy

Политика загрузки образов для всех контейнеров

IfNotPresent

images.pullSecrets

Секреты для загрузки образов из приватного реестра

[]

crds - настройки Custom Resource Definitions#

Параметр

Описание

Значение по умолчанию

crds.install

Установка и обновление CRD

true

crds.keep

Сохранение CRD при удалении чарта

true

crds.full

Использование полных CRD со всей OpenAPI-схемой, при отключении используются сокращенные CRD с x-kubernetes-preserve-unknown-fields

false

crds.annotations

Аннотации для всех CRD

{}

createAggregateRoles - создание агрегированных ролей#

Параметр

Описание

Значение по умолчанию

createAggregateRoles

Создание кластерных ролей, расширяющих существующие ClusterRoles для взаимодействия с CRD Argo Workflows

true

nameOverride - переопределение имени ресурсов#

Параметр

Описание

Значение по умолчанию

nameOverride

Строка для частичного переопределения шаблона "argo-workflows.fullname"

null

fullnameOverride - полное переопределение имени ресурсов#

Параметр

Описание

Значение по умолчанию

fullnameOverride

Строка для полного переопределения шаблона "argo-workflows.fullname"

null

namespaceOverride - переопределение пространства имен#

Параметр

Описание

Значение по умолчанию

namespaceOverride

Переопределение пространства имен развертывания ресурсов

""

commonLabels - общие метки ресурсов#

Параметр

Описание

Значение по умолчанию

commonLabels

Метки для установки на все ресурсы

{}

kubeVersionOverride - переопределение версии Kubernetes#

Параметр

Описание

Значение по умолчанию

kubeVersionOverride

Переопределение версии Kubernetes, используемой для оценки определенных манифестов

""

apiVersionOverrides - переопределение версий API#

Параметр

Описание

Значение по умолчанию

apiVersionOverrides.autoscaling

Строка для переопределения apiVersion автоскалирования, создаваемого этим Helm-чартом

""

apiVersionOverrides.cloudgoogle

Строка для переопределения apiVersion ресурсов GKE, создаваемых этим Helm-чартом

""

apiVersionOverrides.monitoring

Строка для переопределения apiVersion CRD мониторинга (ServiceMonitor), создаваемых этим Helm-чартом

""

singleNamespace - режим работы в одном пространстве имен#

Параметр

Описание

Значение по умолчанию

singleNamespace

Ограничение работы Argo только в одном пространстве имен путем применения Roles и RoleBindings вместо кластерных эквивалентов

false

workflow - настройки workflow#

Параметр

Описание

Значение по умолчанию

workflow.namespace

Устарело; используйте controller.workflowNamespaces вместо этого

null

workflow.serviceAccount.create

Указывает, должен ли быть создан сервисный аккаунт

false

workflow.serviceAccount.labels

Метки, применяемые к созданному сервисному аккаунту

{}

workflow.serviceAccount.annotations

Аннотации, применяемые к созданному сервисному аккаунту

{}

workflow.serviceAccount.name

Сервисный аккаунт, который используется для запуска workflow

argo-workflow

workflow.serviceAccount.pullSecrets

Секреты для загрузки образов из приватного реестра

[]

workflow.rbac.create

Добавляет Role и RoleBinding для указанного выше сервисного аккаунта

true

workflow.rbac.agentPermissions

Разрешает права для Argo Agent. Требуется только при использовании http/plugin-шаблонов

false

workflow.rbac.artifactGC

Разрешает права для pod очистки Argo Artifact. Требуется только при использовании сборки мусора артефактов

false

workflow.rbac.serviceAccounts

Дополнительные сервисные аккаунты для добавления в RoleBinding

[]

workflow.rbac.rules

Дополнительные правила для сервисного аккаунта, который запускает workflow

[]

controller - настройки контроллера workflow#

Параметр

Описание

Значение по умолчанию

controller.image.registry

Реестр для контроллера

{{ .Values.global.image.registry }}

controller.image.repository

Репозиторий для контроллера

{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-workflows/workflow-controller

controller.image.tag

Тег образа для контроллера workflow

v3.7.14

controller.parallelism

Указывает количество workflow, которые могут выполняться одновременно

null

controller.resourceRateLimit

Глобально ограничивает скорость создания pod, чтобы не перегружать Kubernetes API-сервер

{}

controller.rbac.create

Добавляет Role и RoleBinding для контроллера

true

controller.rbac.secretWhitelist

Позволяет контроллеру получать, перечислять и отслеживать определенные секреты Kubernetes

[]

controller.rbac.accessAllSecrets

Позволяет контроллеру получать, перечислять и отслеживать все секреты Kubernetes

false

controller.rbac.writeConfigMaps

Позволяет контроллеру создавать и обновлять ConfigMaps. Включает функцию мемоизации

false

controller.configMap.create

Создает ConfigMap для контроллера

true

controller.configMap.name

Имя ConfigMap

""

controller.configMap.annotations

Аннотации ConfigMap

{}

controller.namespaceParallelism

Ограничивает максимальное количество незавершенных workflow в пространстве имен

null

controller.initialDelay

Задает начальную задержку для обхода ошибки AWS EKS

null

controller.deploymentAnnotations

Необязательная карта аннотаций для применения к Deployment контроллера

{}

controller.podAnnotations

Необязательная карта аннотаций для применения к pod контроллера

{}

controller.podLabels

Необязательные метки для добавления к pod контроллера

{}

controller.podSecurityContext

SecurityContext для установки на pod контроллера

{}

controller.metricsConfig.enabled

Включает сервер метрик Prometheus

true

controller.metricsConfig.path

Путь, по которому публикуются метрики, должен начинаться с символа /

/metrics

controller.metricsConfig.interval

Интервал опроса метрик Prometheus

30s

controller.metricsConfig.port

Порт контейнера, на котором публикуются метрики

9090

controller.metricsConfig.metricsTTL

Период очистки пользовательских метрик из памяти

""

controller.metricsConfig.ignoreErrors

Флаг, указывающий Prometheus игнорировать ошибки генерации метрик

false

controller.metricsConfig.secure

Флаг для использования самоподписанного сертификата для TLS

false

controller.metricsConfig.portName

Имя порта метрик контейнера

metrics

controller.metricsConfig.servicePort

Порт метрик сервиса

8080

controller.metricsConfig.servicePortName

Имя порта метрик сервиса

metrics

controller.metricsConfig.scheme

Схема подключения ServiceMonitor к конечной точке метрик

http

controller.metricsConfig.headlessService

Флаг для включения headless-сервиса

false

controller.metricsConfig.honorLabels

Когда true, honorLabels сохраняет метки метрик при конфликте с метками цели

false

controller.metricsConfig.relabelings

Конфигурации повторной разметки ServiceMonitor для применения к образцам перед сбором

[]

controller.metricsConfig.metricRelabelings

Конфигурации повторной разметки метрик ServiceMonitor для применения к образцам перед поглощением

[]

controller.metricsConfig.targetLabels

ServiceMonitor добавит метки из сервиса к метрике Prometheus

[]

controller.metricsConfig.modifiers

Модификаторы метрик, создаваемых workflow контроллера

{}

controller.securityContext.readOnlyRootFilesystem

Файловая система контейнера только для чтения

true

controller.securityContext.runAsNonRoot

Запуск от имени непривилегированного пользователя

true

controller.securityContext.allowPrivilegeEscalation

Запрещение повышения привилегий

false

controller.securityContext.capabilities.drop

Удаление всех возможностей

- ALL

controller.persistence

Включить архив workflow для хранения статуса. Доступны Postgres и MySQL (>= 5.7.8)

{}

controller.workflowDefaults

Значения по умолчанию, применяемые ко всем workflow от этого контроллера, если они не переопределены на уровне workflow

{}

controller.workflowWorkers

Количество рабочих узлов workflow

null

controller.workflowTTLWorkers

Количество рабочих узлов TTL workflow

null

controller.podCleanupWorkers

Количество рабочих узлов очистки pod

null

controller.cronWorkflowWorkers

Количество рабочих узлов cron workflow

null

controller.workflowRestrictions

Ограничивает workflow, которые будет обрабатывать контроллер

{}

controller.telemetryConfig.enabled

Включает сервер телеметрии Prometheus

false

controller.telemetryConfig.path

Путь телеметрии

/telemetry

controller.telemetryConfig.interval

Частота, с которой Prometheus собирает данные телеметрии

30s

controller.telemetryConfig.port

Порт контейнера телеметрии

8081

controller.telemetryConfig.metricsTTL

Период очистки пользовательских метрик из памяти

""

controller.telemetryConfig.ignoreErrors

Флаг, указывающий Prometheus игнорировать ошибки генерации метрик

false

controller.telemetryConfig.secure

Флаг для использования самоподписанного сертификата для TLS

false

controller.telemetryConfig.servicePort

Порт сервиса телеметрии

8081

controller.telemetryConfig.servicePortName

Имя порта сервиса телеметрии

telemetry

controller.telemetryConfig.scheme

Схема, используемая ServiceMonitor для телеметрии

http

controller.serviceMonitor.enabled

Включает ServiceMonitor для Prometheus

true

controller.serviceMonitor.additionalLabels

Метки ServiceMonitor для Prometheus

{}

controller.serviceMonitor.namespace

Пространство имен ServiceMonitor для Prometheus

""

controller.serviceAccount.create

Создание сервисного аккаунта для контроллера

true

controller.serviceAccount.name

Имя сервисного аккаунта

""

controller.serviceAccount.labels

Метки, применяемые к созданному сервисному аккаунту

{}

controller.serviceAccount.annotations

Аннотации, применяемые к созданному сервисному аккаунту

{}

controller.name

Имя строки контроллера workflow

workflow-controller

controller.workflowNamespaces

Указать все пространства имен, где этот экземпляр контроллера будет управлять workflow

- default

controller.instanceID.enabled

Настраивает контроллер на обработку только тех workflow, которые имеют соответствующий атрибут instanceID

false

controller.instanceID.useReleaseName

Использование ReleaseName как instanceID

false

controller.instanceID.explicitID

Использование пользовательский instanceID

""

controller.logging.level

Установка уровня логирования (допустимые значения: debug, info, warn, error)

info

controller.logging.globallevel

Установка уровня логирования glog

0

controller.logging.format

Установка формата логирования (допустимые значения: text, json)

text

controller.serviceType

Тип сервиса контроллера

ClusterIP

controller.serviceAnnotations

Аннотации для применения к сервису контроллера

{}

controller.serviceLabels

Дополнительные метки сервиса контроллера

{}

controller.loadBalancerClass

Класс реализации балансировщика нагрузки

""

controller.loadBalancerSourceRanges

Исходные диапазоны для разрешения доступа к сервису. Применяется только к типу сервиса LoadBalancer

[]

controller.resources

Ограничения и запросы ресурсов для контроллера

{}

controller.livenessProbe.httpGet.port

Порт для проверки работоспособности

6060

controller.livenessProbe.httpGet.path

Путь для проверки работоспособности

/healthz

controller.livenessProbe.failureThreshold

Количество неуспешных проверок до признания контроллера недоступным

3

controller.livenessProbe.initialDelaySeconds

Начальная задержка для проверки

90

controller.livenessProbe.periodSeconds

Период проверки

60

controller.livenessProbe.timeoutSeconds

Время ожидания проверки

30

controller.extraEnv

Дополнительные переменные окружения для контейнера контроллера

[]

controller.extraArgs

Дополнительные аргументы для добавления к контроллеру

[]

controller.volumeMounts

Дополнительные монтирования томов к основному контейнеру контроллера

[]

controller.volumes

Дополнительные тома к pod контроллера

[]

controller.replicas

Количество pod контроллера для запуска

1

controller.revisionHistoryLimit

Количество сохраняемых ревизий Deployment контроллера

10

controller.pdb.enabled

Включает создание PodDisruptionBudget для обеспечения доступности pod контроллера

false

controller.nodeSelector.kubernetes.io/os

Селектор узлов для размещения контроллера только на Linux-узлах

linux

controller.tolerations

Tolerations для pod контроллера

[]

controller.affinity

Affinity-правила для pod контроллера

{}

controller.topologySpreadConstraints

Назначение пользовательских правил TopologySpreadConstraints контроллеру workflow

[]

controller.priorityClassName

Использование PriorityClass для обеспечения выживания pod при нехватке ресурсов

""

controller.links

Настройка Argo Server для отображения пользовательских ссылок

[]

controller.columns

Настройка Argo Server для отображения пользовательских колонок

[]

controller.navColor

Установка цвета фона панели навигации UI

""

controller.clusterWorkflowTemplates.enabled

Создание ClusterRole и ClusterRoleBinding для контроллера для доступа к ClusterWorkflowTemplates

true

controller.clusterWorkflowTemplates.serviceAccounts

Дополнительные сервисные аккаунты для добавления в ClusterRoleBinding

[]

controller.extraContainers

Дополнительные контейнеры для добавления в Deployment контроллера

[]

controller.extraInitContainers

Init-контейнеры, добавляемые в Deployment контроллера

[]

controller.retentionPolicy

Политика удержания workflow по количеству workflow

{}

controller.nodeEvents.enabled

Включает генерацию событий при завершении узлов

true

controller.workflowEvents.enabled

Включает генерацию событий при изменении статуса workflow

true

controller.kubeConfig

Настройка, когда контроллер workflow работает в другом кластере с рабочими нагрузками workflow

{}

controller.podGCGracePeriodSeconds

Количество секунд до принудительного завершения завершающегося pod. Нулевое значение означает немедленное завершение

null

controller.podGCDeleteDelayDuration

Задержка перед удалением pod из очереди сборки мусора. Пустое значение использует значение по умолчанию Argo Workflows

""

controller.synchronization

Включает использование базы данных для synchronization. Доступны Postgres и MySQL

{}

mainContainer - настройки основного контейнера workflow#

Параметр

Описание

Значение по умолчанию

mainContainer.imagePullPolicy

Политика загрузки образов для основного контейнера workflow. По умолчанию используется values.images.pullPolicy

""

mainContainer.resources

Ограничения и запросы ресурсов для основного контейнера workflow

{}

mainContainer.env

Переменные окружения для основного контейнера workflow

[]

mainContainer.envFrom

Ссылочные источники переменных окружения для основного контейнера workflow

[]

mainContainer.securityContext

Контекст безопасности для основного контейнера workflow

{}

executor - настройки исполнителя workflow#

Параметр

Описание

Значение по умолчанию

executor.image.registry

Реестр для исполнителей workflow

{{ .Values.global.image.registry }}

executor.image.repository

Репозиторий для исполнителей workflow

{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-workflows/argoexec

executor.image.tag

Тег образа для исполнителя workflow

v3.7.14

executor.image.pullPolicy

Политика загрузки образа для исполнителей workflow

""

executor.resources

Передает аргументы процессам исполнителя

{}

executor.args

Аргументы, передаваемые процессам исполнителя

[]

executor.env

Переменные окружения для исполнителя

[]

executor.securityContext

Контекст безопасности контейнера исполнителя

{}

server - настройки сервера Argo#

Параметр

Описание

Значение по умолчанию

server.enabled

Включает развертывание сервера Argo

true

server.baseHref

Значение базового URL-пути, относительно которого будут разрешаться все относительные ссылки, скрипты, стили и маршруты в файле index.html. Используется, если сервер работает за обратным прокси под подпутем, отличным от /

/

server.image.registry

Реестр для сервера

{{ .Values.global.image.registry }}

server.image.repository

Репозиторий для сервера

{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-workflows/argocli

server.image.tag

Тег образа для сервера Argo Workflows. По умолчанию используется values.images.tag

v3.7.14

server.deploymentAnnotations

Аннотации Deployment UI

{}

server.podAnnotations

Аннотации pod UI

{}

server.podLabels

Дополнительные метки pod UI

{}

server.podSecurityContext

SecurityContext на уровне pod для сервера

{}

server.rbac.create

Добавление Role и RoleBinding для сервера

true

server.securityContext.readOnlyRootFilesystem

Включает режим read-only для корневой файловой системы контейнера

false

server.securityContext.runAsNonRoot

Запуск от имени непривилегированного пользователя

true

server.securityContext.allowPrivilegeEscalation

Запрет повышения привилегий в контейнере

false

server.securityContext.capabilities.drop

Удаление всех возможностей server

- ALL

server.name

Имя сервера

server

server.serviceType

Тип сервиса для pod сервера

ClusterIP

server.servicePort

Порт сервиса для сервера

2746

server.serviceTargetPort

Целевой порт сервиса для сервера

2746

server.serviceNodePort

Порт узла сервиса

null

server.servicePortName

Имя порта сервиса

""

server.hostAliases

Сопоставление между IP и именами хостов, которые будут внедрены как записи в файлы /etc/hosts pod

[]

server.serviceAccount.create

Создание сервисного аккаунта для сервера

true

server.serviceAccount.name

Имя сервисного аккаунта

""

server.serviceAccount.labels

Метки, применяемые к созданному сервисному аккаунту

{}

server.serviceAccount.annotations

Аннотации, применяемые к созданному сервисному аккаунту

{}

server.serviceAnnotations

Аннотации для применения к сервису UI

{}

server.serviceLabels

Дополнительные метки сервиса UI

{}

server.loadBalancerClass

Класс реализации балансировщика нагрузки

""

server.loadBalancerIP

Статический IP-адрес для назначения сервису типа LoadBalancer

""

server.loadBalancerSourceRanges

Исходные диапазоны для разрешения доступа к сервису. Применяется только к типу сервиса LoadBalancer

[]

server.resources

Ограничения и запросы ресурсов для сервера

{}

server.replicas

Количество pod сервера для запуска

1

server.revisionHistoryLimit

Количество сохраняемых ревизий Deployment сервера

10

server.autoscaling.enabled

Включить горизонтальное автоматическое масштабирование (HPA) pod для сервера Argo

false

server.autoscaling.minReplicas

Минимальное количество реплик для HPA сервера Argo

1

server.autoscaling.maxReplicas

Максимальное количество реплик для HPA сервера Argo

5

server.autoscaling.targetCPUUtilizationPercentage

Средний процент использования CPU для HPA сервера Argo

50

server.autoscaling.targetMemoryUtilizationPercentage

Средний процент использования памяти для HPA сервера Argo

50

server.autoscaling.behavior

Настраивает поведение масштабирования цели в обоих направлениях Up и Down

{}

server.pdb.enabled

Включает PodDisruptionBudget для pod сервера

false

server.nodeSelector.kubernetes.io/os

Селектор узлов для размещения сервера только на Linux-узлах

linux

server.tolerations

Tolerations для pod сервера

[]

server.affinity

Affinity-правила для pod сервера

{}

server.topologySpreadConstraints

Назначение пользовательских правил TopologySpreadConstraints серверу Argo

[]

server.priorityClassName

Использование PriorityClass для обеспечения работоспособности pod при нехватке ресурсов

""

server.secure

Запуск сервера Argo в безопасном режиме. Настройте это значение вместо --secure в extraArgs

false

server.extraEnv

Дополнительные переменные окружения для контейнера сервера Argo

[]

server.authMode

Устарело; используйте server.authModes вместо этого

""

server.authModes

Список поддерживаемых режимов аутентификации. Доступные значения: server, client или sso

- sso
- client

server.extraArgs

Дополнительные аргументы для предоставления бинарному файлу сервера Argo

[]

server.logging.level

Установить уровень логирования (допустимые значения: debug, info, warn, error)

info

server.logging.globallevel

Установить уровень логирования glog

0

server.logging.format

Установить формат логирования (допустимые значения: text, json)

text

server.tmpVolume.emptyDir

Том для монтирования в pod временных файлов

{}

server.volumeMounts

Дополнительные монтирования томов к основному контейнеру сервера

- name: ingress-tls
  readOnly: true
  mountPath: /etc/ssl/certs/tls.crt
  subPath: tls.crt

server.volumes

Дополнительные тома к pod сервера

- name: ingress-tls
  secret:
    secretName: ingress-tls
    items:
      - key: tls.crt
        path: tls.crt
    defaultMode: 420

server.consoleLink.enabled

Включает отображение ссылки на сервер в консоли

true

server.ingress.enabled

Включает создание ресурса ingress

true

server.ingress.annotations

Дополнительные аннотации ingress

{}

server.ingress.labels

Дополнительные метки ingress

{}

server.ingress.ingressClassName

Определяет, какой ingress-контроллер будет реализовывать ресурс

nginx

server.ingress.hosts

Список хостов Ingress ingress

- 'argowf.{{ include "ingress.domain" . }}'

server.ingress.paths

Список путей ingress

- /

server.ingress.pathType

Тип пути ingress(допустимые значения: Exact, Prefix, ImplementationSpecific)

Prefix

server.ingress.extraPaths

Дополнительные пути ingress

[]

server.ingress.tls

TLS-конфигурация ingress

- hosts:
    - 'argowf.{{ include "ingress.domain" . }}'
  secretName: ingress-tls

server.GKEbackendConfig.enabled

Создает BackendConfig для Google Kubernetes Engine

false

server.GKEbackendConfig.spec

Спецификация BackendConfig

{}

server.GKEmanagedCertificate.enabled

Создает ManagedCertificate для Google Kubernetes Engine

false

server.GKEmanagedCertificate.domains

Домены для Google Managed Certificate

- argoworkflows.example.com

server.GKEfrontendConfig.enabled

Создает FrontendConfig для Google Kubernetes Engine

false

server.GKEfrontendConfig.spec

Спецификация FrontendConfig

{}

server.httproute.enabled

Включает создание HTTPRoute для сервера Argo Workflows через Gateway API

false

server.httproute.labels

Дополнительные метки HTTPRoute

{}

server.httproute.annotations

Дополнительные аннотации HTTPRoute

{}

server.httproute.parentRefs

Ссылка в Gateway API на существующий объект шлюза, к которому относится HTTPRoute

[]

server.httproute.hostnames

Список hostnames для HTTPRoute

[]

server.httproute.rules

Правила HTTPRoute

- matches:
    - path:
        type: PathPrefix
        value: /

server.backendTLSPolicy.enabled

Включение создания BackendTLSPolicy для сервера Argo Workflows через Gateway API

false

server.backendTLSPolicy.labels

Дополнительные метки BackendTLSPolicy

{}

server.backendTLSPolicy.annotations

Дополнительные аннотации BackendTLSPolicy

{}

server.backendTLSPolicy.targetRefs

Ссылки на target-ресурсы BackendTLSPolicy

[]

server.backendTLSPolicy.validation

Настройки проверки TLS для BackendTLSPolicy

{}

server.clusterWorkflowTemplates.enabled

Создание ClusterRole и ClusterRoleBinding для доступа сервера к ClusterWorkflowTemplate

true

server.clusterWorkflowTemplates.enableEditing

Разрешает серверу редактировать ClusterWorkflowTemplate

true

server.sso.enabled

Создать конфигурацию SSO. Если установлено true, также установите .Values.server.authModes как sso

true

server.sso.issuer

Корневой URL провайдера идентификации

https://auth.{{ include "ingress.domain" . }}

server.sso.clientId.name

Имя секрета для получения ID клиента приложения OIDC

argo-server-sso

server.sso.clientId.key

Ключ секрета для получения ID клиента приложения OIDC

client-id

server.sso.clientSecret.name

Имя секрета для получения секрета клиента приложения OIDC

argo-server-sso

server.sso.clientSecret.key

Ключ секрета для получения секрета клиента приложения OIDC

client-secret

server.sso.redirectUrl

URL-перенаправления OIDC. Должен быть в форме /oauth2/callback

""

server.sso.rbac.enabled

Добавляет политику ServiceAccount к роли сервера (кластера)

true

server.sso.rbac.secretWhitelist

Ограничивает набор секретов, которые сервер может читать для авторизации

[]

server.sso.scopes

Области, запрашиваемые у провайдера SSO ID

- openid
- profile
- email
- groups

server.sso.sessionExpiry

Определить, как долго логин действителен (в часах). Пустое значение использует значение по умолчанию - 10h

""

server.sso.issuerAlias

Альтернативные корневые URL, которые могут быть включены для некоторых провайдеров OIDC

""

server.sso.customGroupClaimName

Переопределяет имя утверждения для групп OIDC

""

server.sso.userInfoPath

Путь к конечной точке пользовательской информации, содержащей утверждение групп

""

server.sso.insecureSkipVerify

Отключает проверку TLS для HTTP-клиента

false

server.sso.filterGroupsRegex

Фильтрация групп, возвращаемых провайдером OIDC

[]

server.extraContainers

Дополнительные контейнеры, добавляемые в Deployment сервера

[]

server.extraInitContainers

Init-контейнеры, добавляемые в Deployment сервера

[]

server.lifecycle

Указание хуков жизненного цикла postStart и preStop для контейнера сервера

{}

server.terminationGracePeriodSeconds

Время ожидания завершения контейнера сервера перед принудительной остановкой

30

server.livenessProbe.enabled

Включает проверку работоспособности Kubernetes для сервера

false

server.livenessProbe.httpGet.port

HTTP-порт для проверки работоспособности

2746

server.livenessProbe.httpGet.path

HTTP-путь для проверки работоспособности

/

server.livenessProbe.failureThreshold

Минимальное количество последовательных сбоев для проверки

3

server.livenessProbe.initialDelaySeconds

Количество секунд после запуска контейнера перед инициацией проверки

10

server.livenessProbe.periodSeconds

Частота (в секундах) между проверками сервера

10

server.livenessProbe.timeoutSeconds

Количество секунд, после которых проверка истекает

1

server.livenessProbe.successThreshold

Минимальное количество последовательных успешных проверок после ошибки

1

extraObjects - дополнительные манифесты Kubernetes#

Параметр

Описание

Значение по умолчанию

extraObjects

Массив дополнительных манифестов Kubernetes для развертывания

[]

useStaticCredentials - использование статических учетных данных#

Параметр

Описание

Значение по умолчанию

useStaticCredentials

Включает использование статических учетных данных для S3 (например, при неиспользовании AWS IRSA)

true

artifactRepository - репозиторий артефактов#

Параметр

Описание

Значение по умолчанию

artifactRepository.archiveLogs

Архивирует логи основного контейнера как артефакт

false

artifactRepository.s3

Настройки хранения артефакта в S3-совместимом хранилище объектов

{}

artifactRepository.gcs

Настройки хранения артефакта в хранилище объектов GCS

{}

artifactRepository.azure

Настройки хранения артефакта в Azure Blob Storage

{}

customArtifactRepository - пользовательский репозиторий артефактов#

Параметр

Описание

Значение по умолчанию

customArtifactRepository

Раздел пользовательского репозитория артефактов. Использование пользовательского репозитория артефактов, который не является одним из текущих базовых (s3, gcs, azure)

{}

artifactRepositoryRef - ссылка на репозиторий артефактов#

Параметр

Описание

Значение по умолчанию

artifactRepositoryRef

Раздел ссылки на репозиторий артефактов. Каждый ключ карты - это имя configmap

{}

emissary - настройки emissary#

Параметр

Описание

Значение по умолчанию

emissary.images

Команда/аргументы для каждого образа в workflow, необходимые, когда команда не указана и используется исполнитель emissary

{}