Dex#
Dex - это открытый OpenID Connect (OIDC) провайдер, используемый в кластерах Kubernetes для централизованной аутентификации и интеграции с внешними системами удостоверений. Dex выступает промежуточным сервисом аутентификации, который позволяет DropApp использовать существующие системы управления пользователями (например, LDAP, Active Directory и др.) для проверки подлинности пользователей при доступе к кластеру.
Dex не управляет пользователями напрямую, а делегирует аутентификацию другим поставщикам удостоверений.
Основные задачи и возможности
Поддержка OIDC (OpenID Connect):
Выдает ID-токены, которые могут использоваться Kubernetes API Server для аутентификации пользователей.
Интеграция с внешними провайдерами:
Может подключаться к:
LDAP/Active Directory;
GitHub;
GitLab;
Google;
SAML-провайдерам;
Внутренним сервисам OAuth2.
Многофакторная аутентификация (MFA):
Поддерживает MFA через поддерживаемые провайдеры.
Работа с группами пользователей:
Передает информацию о принадлежности пользователей к группам, что позволяет управлять правами через Kubernetes
RoleBinding/ClusterRoleBinding.Легкая интеграция с DropApp:
Настройка выполняется через флаги Kube-apiserver (
--oidc-\*), без необходимости изменения клиентских инструментов (Kubectl и т.д.).
Примечание
По умолчанию Dex интегрирован со всеми инструментами DropApp, имеющими UI: Console, Grafana, Argocd, Argo-workflow.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем dex и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
replicaCount - количество реплик для запуска#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик для запуска |
|
commonLabels - общие метки#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для применения ко всем ресурсам и селекторам |
|
image - настройки Docker образа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя репозитория образа для загрузки контейнера |
|
|
Политика загрузки образа для обновления существующих образов на узле |
|
|
Переопределение тега образа для значения по умолчанию |
|
imagePullSecrets - секреты для загрузки образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Ссылка на один или более секретов для загрузки образов из приватных реестров |
|
namespaceOverride - переопределение namespace#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Пространство имен вместо namespace релиза для всех ресурсов |
|
nameOverride - переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя вместо имени чарта для меток app |
|
fullnameOverride - полное переопределение имени#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя для замены полных имен ресурсов |
|
hostAliases - псевдонимы хостов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список хостов и IP-адресов для внедрения в файл |
|
https - настройки HTTPS#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить HTTPS endpoint |
|
grpc - настройки gRPC#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить gRPC endpoint для взаимодействия API |
|
configSecret - настройки секрета конфигурации#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить создание секрета из значений, переданных в config |
|
|
Имя секрета для монтирования в качестве конфигурации в pod |
|
config - конфигурация приложения#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список коннекторов к внешним провайдерам идентификации |
|
|
Пропустить экран подтверждения OAuth2 |
|
|
URL издателя OIDC-токенов |
|
|
Уровень логирования ( |
|
|
Формат логов ( |
|
|
Список статических клиентов OAuth2 |
|
|
Включить локальную базу данных паролей |
|
|
Использовать внутрикластерное хранилище |
|
|
Тип хранилища для данных Dex |
|
|
Путь к TLS-сертификату |
|
|
Путь к TLS-ключу |
|
|
Издатель токенов |
|
|
Срок действия ключей подписи |
|
|
Срок действия ID-токенов |
|
volumes - дополнительные тома хранения#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные тома хранения |
|
volumeMounts - дополнительные монтирования томов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные монтирования томов для контейнера |
|
envFrom - переменные окружения из секретов или ConfigMap#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные переменные окружения, смонтированные из секретов или |
|
env - переменные окружения#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные переменные окружения, передаваемые напрямую в контейнеры |
|
envVars - расширенные переменные окружения#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переменные окружения с поддержкой всех возможных конфигураций |
|
configMap - настройки ConfigMap#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создать |
|
serviceAccount - настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить создание сервисного аккаунта |
|
|
Аннотации для добавления к сервисному аккаунту |
|
|
Имя сервисного аккаунта для использования |
|
rbac - управление доступом на основе ролей#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Указывает, должны ли быть созданы ресурсы RBAC |
|
|
Указывает, какие ресурсы RBAC должны быть созданы на уровне кластера |
|
deploymentAnnotations - аннотации для развертывания#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для добавления к развертыванию |
|
deploymentLabels - метки для развертывания#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для добавления к развертыванию |
|
podAnnotations - аннотации для pods#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для добавления к pods |
|
podLabels - метки для pods#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для добавления к pods |
|
podDisruptionBudget - бюджет прерываний pods#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить бюджет прерываний pods для обработки сбоев |
|
|
Количество или процент pods, которые должны оставаться доступными |
nil |
|
Количество или процент pods, которые могут быть недоступны |
nil |
priorityClassName - класс приоритета#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Указать имя класса приоритета для установки приоритета pods |
|
podSecurityContext - контекст безопасности pods#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Контекст безопасности pods для настройки параметров безопасности |
|
|
Пользователь для запуска контейнера |
|
|
Группа для запуска контейнера |
|
|
Запуск от имени не root-пользователя |
|
|
Тип профиля |
|
revisionHistoryLimit - лимит истории ревизий#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Определить количество ревизий развертывания для хранения |
|
securityContext - контекст безопасности контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Контекст безопасности контейнера для настройки параметров безопасности контейнера |
|
|
Список возможностей для удаления |
|
|
Запуск от имени не root-пользователя |
|
|
Группа для запуска контейнера |
|
|
Пользователь для запуска контейнера |
|
|
Разрешить повышение привилегий |
|
service - настройки сервиса Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для добавления к сервису |
|
|
Тип сервиса Kubernetes ( |
|
|
IP-адрес внутреннего кластерного сервиса |
|
|
Порт сервиса HTTP |
|
|
Порт узла HTTP (когда применимо) |
nil |
|
Порт сервиса HTTPS |
|
|
Порт узла HTTPS (когда применимо) |
nil |
|
Порт сервиса gRPC |
|
|
Порт узла gRPC (когда применимо) |
nil |
ingress - настройки Ingress#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить Ingress для внешнего доступа |
|
|
Имя класса Ingress |
|
|
Аннотации для добавления к Ingress |
|
|
Конфигурация хостов Ingress |
|
|
Конфигурация TLS для Ingress |
|
serviceMonitor - настройки мониторинга Prometheus#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить |
|
|
Namespace для развертывания |
|
|
Интервал сбора метрик Prometheus |
|
|
Время ожидания сбора метрик Prometheus |
|
|
Метки для добавления к |
|
|
Аннотации для добавления к |
|
|
HTTP-схема для сбора метрик |
|
|
HTTP-путь для сбора метрик |
|
|
Конфигурация TLS для сбора метрик |
|
|
Файл токена для авторизации сбора метрик |
nil |
|
Выбор меток метрик при коллизиях с целевыми метками |
|
|
Конфигурации метрик |
|
|
Конфигурации |
|
resources - ресурсы контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запросы и лимиты ресурсов контейнера |
|
|
Запрос ресурсов CPU |
|
|
Запрос памяти |
|
|
Лимит ресурсов CPU |
|
|
Лимит памяти |
|
autoscaling - настройки автомасштабирования#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить автомасштабирование |
|
|
Минимальное количество реплик |
|
|
Максимальное количество реплик |
|
|
Целевой процент использования CPU |
|
nodeSelector - селектор узлов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Конфигурация селектора узлов для размещения pods |
|
tolerations - tolerations для узлов с taint#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Tolerations для размещения на узлах с taint |
|
affinity - правила привязки#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Правила привязки для размещения pods |
|
topologySpreadConstraints - ограничения распределения по топологии#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Ограничения распределения pods по топологии |
|
strategy - стратегия развертывания#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Конфигурация стратегии развертывания ( |
|
networkPolicy - сетевые политики#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создать сетевые политики для контроля трафика |
|
|
Список правил исходящего трафика сетевой политики |
|