Настройка values.yaml
Описание
values.yaml — основной файл, которым управляется поведение Helm-чарта Blitz IDP.
Данный раздел не показывает полный референс параметров, а показывает рабочую структуру файла и объясняет, на какие группы параметров нужно обратить внимание в первую очередь.
Обязательные параметры
Helm-чарт blitz-idp устанавливает в кластер набор приложений и вспомогательных ресурсов, необходимыхМинимально для работыреальной Blitzустановки Identityобычно Provider.
В зависимости от конфигурации и включённых модулей чарт может создавать:задать:
DeploymentиStatefulSetдля модулей BlitzServiceдля внутреннего и внешнего доступаIngressдля публикации HTTP-маршрутовSecretиConfigMapдля статической конфигурацииPersistentVolumeClaimдля общей динамической конфигурацииJobначальной загрузки конфигурацииPodDisruptionBudgetdomain- настройки PostgreSQL
- режим
NetworkPolicyconfig.readOnly параметрыServiceMonitorиVault или альтернативный способ передачи секретов- набор включённых модулей
- параметры
PodMonitorIngress ресурсы
Базовый Secretsпример Operator,values.yaml
Ниже включенаприведён интеграцияминимальный пример для production подхода с Vault и динамической конфигурацией из Git.
domain: "blitz.company.loc"
image:
namePrefix: "reaxoft"
nameSuffix: ""
tag: "5.31.0"
config:
readOnly: false
source:
type: git
git:
repo: https://git.company.loc/blitz/blitz-config.git
ref: main
depth: 1
auth:
existingSecret: "blitz-config-git-creds"
usernameKey: "username"
passwordKey: "password"
shared:
storageClass: "auto"
storageSize: 1Gi
defaultAccessMode: "rwo"
internalStore:
jdbc:
url: "jdbc:postgresql://blitz-pg-postgresql.default.svc.cluster.local:5432/blitz?user=blitz&password=${pswd}&tcpKeepAlive=true&loggerLevel=INFO"
databaseName: "blitz"
pswd: ${BLITZ_INTERNALSTORE_JDBC_SECRET}
vault:
enabled: true
source:
mount: "kv"
path: "blitz/helm/test/env"
connection:
create: true
address: "https://vault.company.loc"
skipTLSVerify: false
auth:
create: true
mount: "approle"
appRole:
roleId: "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
secretRef: "vault-approle-secretid"
console:
enabled: true
idp:
enabled: true
replicas: 2
recovery:
enabled: true
reg:
enabled: true
panel:
enabled: false
ldapMfa:
enabled: false
ingress:
enabled: true
className: "traefik"
tls:
enabled: true
secretName: "blitz-idp-tls"
Структура параметров
Глобальные настройки
В верхней части файла настраиваются:
- домен
- общие образы
- настройки безопасности контейнеров
- ресурс
- пробы
- аннотации и лейблы
ВерсияЭто чартауровень, требуеткоторый Kubernetesвлияет сразу на несколько модулей.
Модель поставки конфигурации
Блок config определяет:
- используется ли режим read-only
- откуда брать динамическую конфигурацию
- нужен ли
PersistentVolumeClaim - схема доступа к конфигам
Это ключевой раздел файла. Ошибка здесь обычно приводит к проблемам запуска всей инсталляции.
Параметры Vault
Блок vault включает:
- подключение к Vault
- путь до KV-секрета
- параметры
VaultConnection - параметры
VaultAuth - данные
AppRole
Если Vault не нижеиспользуется, 1.26.этот блок нужно явно отключить.
ОсновныеПараметры модули Blitz
модулей
ЧартУ поддерживаеткаждого следующиемодуля модули:есть собственный раздел:
idpconsole— основной модуль аутентификации и выдачи identity-сервисовconsoleidprecoveryreg— модуль регистрацииrecovery— модуль восстановления доступаpanel— дополнительный пользовательский веб-модульldapMfa— сервис LDAP MFA
По умолчанию в чарте включены idp, console, reg, recovery. Модули panel и ldapMfa включаются отдельно через конфигурацию чарта.
Схема конфигурации
В чартених используется двухуровневая модель конфигурации:
статическая конфигурациядинамическая конфигурация
Статическая конфигурация
Статическая конфигурация рендерится Helm и попадает в Secret, ConfigMap или, при использовании Vault, в VaultStaticSecret.
Типовые статические файлы:задаются:
boot.confenabledoverlay.confreplicasимя образаplay.confpull policylogback.xmlресурсыblitz-keystore.bks- tolerations и
console.confnodeSelector
Приоритетные параметры
domain
ДляОпределяет модулейпубличное Blitzимя этисервиса файлыи поучаствует в формировании URL.
internalStore.jdbc.*
Задаёт подключение к PostgreSQL. На практике здесь нужно проверить:
- адрес сервера
- имя базы
- пользователя
- пароль
- сетевую доступность
http.context
Определяет базовый HTTP-путь приложения. По умолчанию монтируются в каталог:используется:
http:
context: /usr/share/identityblitz/blitz-config
Динамическая конфигурация
Динамическая конфигурация используется в сценариях, где конфиги поставляются не только внутри образа, но и из внешнего источника.
По умолчанию она размещается по пути:
/usr/share/identityblitz/idp-configblitz
Если выбранв режиморганизации есть требования к URI, этот путь нужно согласовать заранее.
ingress.*
Настраивает публикацию приложения через Ingress:
- включение ресурса
- класс ingress-контроллера
- аннотации
- TLS
- CORS
Пример:
ingress:
enabled: true
className: "nginx"
annotations:
nginx.ingress.kubernetes.io/proxy-buffer-size: "16k"
tls:
enabled: true
secretName: "blitz-idp-tls"
pdb.*
Параметры PodDisruptionBudget особенно важны для production среды. Значения по умолчанию уже дают базу для высокой доступности idp, если он работает как минимум в двух репликах.
networkPolicy.*
Если в вашей среде приняты сетевые ограничения, здесь задаётся общий режим:
networkPolicy:
enabled: true
mode: permissive
Для более строгой модели используйте restricted и явные правила доступа.
Два типовых сценария
Сценарий 1. Стандартный запуск
Используйте:
config.readOnly=truevault.enabled=true- только обязательные модули
- стандартный
Ingress
Сценарий 2. Конфигурация из Git
Используйте:
config.readOnly=false,config.readOnly=truesource.type=gitподходит для случаев, когда конфигурация встроена в Docker-образ и её не нужно инициализировать из Git или локального каталога.Особенности режима:нет общегоPersistentVolumeClaimнесекретзапускаетсясGit-учётнымиinit-confJobэксплуатация проще и безопаснееизменения конфигурации вносятся через пересборку образов
PersistentVolumeClaimJobДва режима поставки конфигурации
Режим image-only
Режим
Режим Git/Local -> PVC
Режим config.readOnly=false нужен, когда конфигурацию требуется публиковать в общий каталог во время установки.
Особенности режима:
используется общийPersistentVolumeClaimисточник динамической конфигурации задаётся черезconfig.source.typeсоздаётсяinit-confJobрабочие поды могут ожидают готовности конфигурации черезданнымиinitContainer
Kubernetes-ресурсыРекомендации по оформлению файла
Ingress
- храните
публикуетпользовательскиеHTTP-эндпоинты Blitz наружу. Чарт поддерживает настройку класса ingress-контроллера, аннотаций и TLS-секрета.PersistentVolumeClaimPersistentVolumeClaimнужен толькопереопределения всценарииотдельномсфайле,динамической конфигурацией. Он хранит конфигурацию и вспомогательные ресурсы, доступные модулям Blitz IDP.Vault и VSOЕсли используетсянапримерvault.enabled=truevalues-prod.yaml, - не
можетредактируйтезабирать секреты из HashiCorp Vault через Vault Secrets Operator. В этом случае вместо прямого создания некоторыхбазовыйвSecrethelm/values.yamlкластереустановленномиспользуютсячарт-пакетересурсы:безнеобходимостиVaultConnectionне храните открытые секреты в GitVaultAuthгруппируйте свои overrides по смысловым блокам, а не по случайному порядкуVaultStaticSecret
PodDisruptionBudgetPodDisruptionBudgetзащищает модули от добровольных прерываний, например приkubectl drainили плановом обслуживании узлов.NetworkPolicyNetworkPolicyограничивает сетевой доступ к подам Blitz. В чарте есть как более мягкий режим, так и строгий режим с явными правилами.
Ingress