Loginapp#

Loginapp - это веб-приложение для настройки аутентификации в Kubernetes CLI через OIDC (OpenID Connect). Оно упрощает процесс входа в кластер, позволяя пользователям проходить аутентификацию через внешний провайдер (например, Dex, Keycloak, Google), получать ID-токен и автоматически настраивать kubeconfig для использования с Kubectl.

Конфигурация values#

Значения переопределяются через редактирование инструмента с именем loginapp и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов приведено в разделе «Конфигурации дополнительных инструментов».

replicas – количество реплик#

Параметр

Описание

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

replicas

Количество реплик pod

1

image – параметры контейнерного образа#

Параметр

Описание

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

image

Параметры контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-loginapp/loginapp:v3.2.3'

imagePullPolicy – политика загрузки образа#

Параметр

Описание

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

imagePullPolicy

Политика загрузки образа.
Возможные значения: Always, IfNotPresent, Never

IfNotPresent

imagePullSecrets – Secret для загрузки образов#

Параметр

Описание

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

imagePullSecrets

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

[]

nameOverride – переопределение имени чарта#

Параметр

Описание

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

nameOverride

Переопределение базового имени ресурсов чарта для генерации имен

""

fullnameOverride – полное переопределение имени чарта#

Параметр

Описание

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

fullnameOverride

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

""

serviceAccount – настройки сервисного аккаунта#

Параметр

Описание

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

serviceAccount.create

Включение создания ServiceAccount для приложения

true

serviceAccount.annotations

Аннотации для добавления к ServiceAccount

{}

serviceAccount.name

Имя ServiceAccount (генерируется автоматически, если не указано и serviceAccount.create: true)

~

podSecurityContext – параметры контекста безопасности pod#

Параметр

Описание

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

podSecurityContext.runAsNonRoot

Включение требования запуска контейнера от имени пользователя без административных полномочий

true

securityContext – контекста безопасности контейнера#

Параметр

Описание

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

securityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

securityContext.runAsNonRoot

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

true

securityContext.runAsUser

UID пользователя для запуска контейнера

1001

service – настройки Service#

Параметр

Описание

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

service.type

Тип Service.
Возможные значения: ClusterIP, NodePort, LoadBalancer

ClusterIP

service.port

Номер порта, который Service будет использовать для приема HTTP-трафика

5555

service.nodePort

Номер порта для Service типа NodePort

~

service.loadBalancerIP

IP-адрес для Service типа LoadBalancer

~

Параметр

Описание

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

consoleLink.enabled

Включение создания ресурса ConsoleLink для перехода в Open WebUI из консоли платформы

true

ingress – настройки Ingress для маршрутизации внешнего трафика#

Параметр

Описание

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

ingress.enabled

Включение создания ресурса Ingress для внешнего доступа к приложению

true

ingress.className

Имя IngressClass для определения контроллера Ingress

"nginx"

ingress.annotations

Аннотации для добавления к Ingress.
Пример конфигурации:

nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"

ingress.hosts

Список хостов и путей для маршрутизации трафика

- host: 'loginapp.{{ include "ingress.domain" . }}'
  paths:
    - path: /
      pathType: Prefix

ingress.tls

Конфигурация TLS для защищенного HTTPS-соединения

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

resources – запросы и лимиты ресурсов контейнера#

Параметр

Описание

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

resources.limits.cpu

Ограничение ресурсов CPU для контейнера

200m

resources.limits.memory

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

256Mi

resources.requests.cpu

Запрашиваемые ресурсы CPU для контейнера

100m

resources.requests.memory

Запрашиваемые ресурсы памяти для контейнера

128Mi

nodeSelector – селектор узлов для планирования pod#

Параметр

Описание

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

nodeSelector

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

{}

tolerations – параметры Toleration для pod#

Параметр

Описание

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

tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

affinity – правила привязки (affinity и anti-affinity) pod к узлам#

Параметр

Описание

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

affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

env – параметры переменных окружения контейнера#

Параметр

Описание

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

env

Переменные окружения контейнера.
Пример конфигурации:

LOGINAPP_XXXXXX: "value"

{}

args – аргументы запуска контейнера#

Параметр

Описание

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

args

Аргументы, переопределяющие стандартные аргументы запуска контейнера.
Пример конфигурации:

- "-v"

[]

config – основная конфигурация инструмента#

Параметр

Описание

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

config.name

Название приложения, отображаемое в веб-интерфейсе

~

config.existingSecret

Имя существующего Secret для использования секретов Loginapp и OIDC-аутентификации вместо генерации чартом

~

config.secret

Secret приложения для шифрования сессий (должен быть идентичен на всех репликах). При пустом значении генерируется случайная строка при каждом развертывании

~

config.clientID

Идентификатор клиента для OIDC-аутентификации

"dapp"

config.clientSecret

Секрет клиента для OIDC-аутентификации

"ZGFwcC1zZWNyZXQtZm9yLW9pZGMtYXV0aGVudGljYXRpb24="

config.clientRedirectURL

URL для перенаправления после OIDC-аутентификации. Должен заканчиваться на /callback. При пустом значении используется значение по умолчанию на основе ingress.hosts[0].host или {{ .Release.Name }}.{{ .Release.Namespace }}.svc:5555/callback

'https://loginapp.{{ include "ingress.domain" . }}/callback'

config.issuerRootCA

Конфигурация корневого CA-сертификата OIDC-провайдера через ConfigMap

~

config.issuerRootCA.secret

Имя Secret, содержащего корневой CA-сертификат OIDC-провайдера

ingress-tls

config.issuerRootCA.configMap

Имя ConfigMap, содержащего корневой CA-сертификат (альтернатива secret)

~

config.issuerRootCA.key

Ключ в Secret или ConfigMap, по которому хранится CA-сертификат

tls.crt

config.issuerInsecureSkipVerify

Включение проверки TLS-сертификата OIDC-провайдера. Рекомендуется использовать только для тестирования

false

config.issuerURL

URL-адрес OIDC-провайдера (Issuer URL)

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

config.refreshToken

Запрос refresh token для обновления токенов доступа без повторной аутентификации

false

config.tls.enabled

Включение TLS-терминации на уровне приложения

true

config.tls.secretName

Имя Secret типа kubernetes.io/tls с TLS-сертификатом и ключом. При пустом значении и tls.enabled: true генерируются самоподписанные сертификаты

ingress-tls

config.tls.altnames

DNS-имена для самоподписанного сертификата.
Пример конфигурации:

- loginapp.172.17.0.2.nip.io

[]

config.tls.altIPs

IP-адреса для самоподписанного сертификата

[]

config.clusters

Список Kubernetes-кластеров для отображения в веб-интерфейсе и генерации файлов kubeconfig.
Пример конфигурации:

- name: myfakecluster
  server: https://myfakecluster.org
  # Корневой сертификат кластера
  certificate-authority:
  insecure-skip-tls-verify: false
  contextName: altcontextname

[]

configOverwrites – переопределения конфигурации#

Параметр

Описание

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

configOverwrites

Произвольные переопределения конфигурации, объединяемые с автоматически сгенерированной конфигурацией. Используется для добавления или замены значений.
Пример конфигурации:

oidc:
  scopes: [openid,profile,email]

{}

templates – переопределения HTML-шаблонов#

Параметр

Описание

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

templates

Переопределение HTML-шаблонов для страниц ошибок и отображения токенов, используемых Loginapp.
Пример конфигурации:

templates:
  token.html: |-
    {{`<html>
    <body>
    <title>Hello token</title>
    </body>
    </html>`}}

{}