Перейти к основному контенту

Настройка values.yaml

Описание

values.yaml — основной файл, которым управляется поведение Helm-чарта Blitz IDP.

Данный раздел не показывает полный референс параметров, а показывает рабочую структуру файла и объясняет, на какие группы параметров нужно обратить внимание в первую очередь.

Обязательные параметры

Helm-чарт blitz-idp устанавливает в кластер набор приложений и вспомогательных ресурсов, необходимыхМинимально для работыреальной Blitzустановки Identityобычно Provider.

нужно

В зависимости от конфигурации и включённых модулей чарт может создавать:задать:

  • Deployment и StatefulSet для модулей Blitz
  • Service для внутреннего и внешнего доступа
  • Ingress для публикации HTTP-маршрутов
  • Secret и ConfigMap для статической конфигурации
  • PersistentVolumeClaim для общей динамической конфигурации
  • Job начальной загрузки конфигурации
  • PodDisruptionBudgetdomain
  • настройки PostgreSQL
  • режим NetworkPolicyconfig.readOnly
  • ServiceMonitorпараметры иVault или альтернативный способ передачи секретов
  • набор включённых модулей
  • параметры PodMonitorIngress
  • ресурсы
Vault

Базовый 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-сервисов
  • consoleidp
  • — административная консоль Blitz
  • recovery
  • reg — модуль регистрации
  • recovery — модуль восстановления доступа
  • panel — дополнительный пользовательский веб-модуль
  • ldapMfa — сервис LDAP MFA

По умолчанию в чарте включены idp, console, reg, recovery. Модули panel и ldapMfa включаются отдельно через конфигурацию чарта.

Схема конфигурации

В чартених используется двухуровневая модель конфигурации:

  • статическая конфигурация
  • динамическая конфигурация

Статическая конфигурация

Статическая конфигурация рендерится Helm и попадает в Secret, ConfigMap или, при использовании Vault, в VaultStaticSecret.

Типовые статические файлы:задаются:

  • boot.confenabled
  • overlay.confreplicas
  • play.confимя образа
  • logback.xmlpull policy
  • 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=true
  • vault.enabled=true
  • только обязательные модули
  • стандартный Ingress

Сценарий 2. Конфигурация из Git

Используйте:

  • config.readOnly=false,
  • чарт использует общий PersistentVolumeClaim и публикует туда конфигурацию через специальный Job.

    Два режима поставки конфигурации

    Режим image-only

    Режим

  • config.readOnly=truesource.type=git подходит для случаев, когда конфигурация встроена в Docker-образ и её не нужно инициализировать из Git или локального каталога.

    Особенности режима:

    • нет общего PersistentVolumeClaim
    • несекрет запускаетсяс init-confGit-учётными Job
    • эксплуатация проще и безопаснее
    • изменения конфигурации вносятся через пересборку образов

    Режим Git/Local -> PVC

    Режим config.readOnly=false нужен, когда конфигурацию требуется публиковать в общий каталог во время установки.

    Особенности режима:

    • используется общий PersistentVolumeClaim
    • источник динамической конфигурации задаётся через config.source.type
    • создаётся init-conf Job
    • рабочие поды могут ожидают готовности конфигурации через initContainerданными

    Kubernetes-ресурсыРекомендации по оформлению файла

    Ingress

      Ingress

    • храните публикуетпользовательские HTTP-эндпоинты Blitz наружу. Чарт поддерживает настройку класса ingress-контроллера, аннотаций и TLS-секрета.

      PersistentVolumeClaim

      PersistentVolumeClaim нужен толькопереопределения в сценарииотдельном сфайле, динамической конфигурацией. Он хранит конфигурацию и вспомогательные ресурсы, доступные модулям Blitz IDP.

      Vault и VSO

      Если используетсянапример vault.enabled=truevalues-prod.yaml,

    • чарт
    • не можетредактируйте забирать секреты из HashiCorp Vault через Vault Secrets Operator. В этом случае вместо прямого создания некоторыхбазовый Secrethelm/values.yaml в кластереустановленном используютсячарт-пакете ресурсы:

      без
      • VaultConnectionнеобходимости
      • VaultAuthне храните открытые секреты в Git
      • VaultStaticSecretгруппируйте свои overrides по смысловым блокам, а не по случайному порядку

      PodDisruptionBudget

      PodDisruptionBudget защищает модули от добровольных прерываний, например при kubectl drain или плановом обслуживании узлов.

      NetworkPolicy

      NetworkPolicy ограничивает сетевой доступ к подам Blitz. В чарте есть как более мягкий режим, так и строгий режим с явными правилами.