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

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

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

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

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

Минимально для деплоя необходимо настроить:

  • domain
  • настройки PostgreSQL
  • режим config.readOnly
  • параметры Vault
  • набор включённых модулей
  • параметры Ingress

Базовый пример 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"

Структура параметров

Глобальные настройки

В верхней части файла настраиваются:

  • домен
  • общие образы
  • настройки безопасности контейнеров
  • ресурс
  • пробы
  • аннотации и лейблы

Это уровень, который влияет сразу на несколько модулей.

Модель поставки конфигурации

Блок config определяет:

  • используется ли режим read-only
  • откуда брать динамическую конфигурацию
  • нужен ли PersistentVolumeClaim
  • схема доступа к конфигам

Это ключевой раздел файла. Ошибка здесь обычно приводит к проблемам запуска всей инсталляции.

Параметры Vault

Блок vault включает:

  • подключение к Vault
  • путь до KV-секрета
  • параметры VaultConnection
  • параметры VaultAuth
  • данные AppRole

Если Vault не используется, этот блок нужно явно отключить.

Параметры модулей

У каждого модуля есть собственный раздел:

  • console
  • idp
  • recovery
  • reg
  • panel
  • ldapMfa

В них задаются:

  • enabled (true/false)
  • количество реплик
  • имя образа
  • pull policy
  • ресурсы
  • tolerations и nodeSelector

Приоритетные параметры

domain

Определяет публичное имя сервиса и участвует в формировании URL.

internalStore.jdbc.*

Задаёт подключение к PostgreSQL. На практике здесь нужно проверить:

  • адрес сервера
  • имя базы
  • пользователя
  • пароль
  • сетевую доступность

http.context

Определяет базовый HTTP-путь приложения. По умолчанию используется:

http:
  context: /blitz

Если в организации есть требования к 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
  • config.source.type=git
  • PersistentVolumeClaim
  • секрет с Git-учётными данными

Рекомендации по оформлению файла

  • храните пользовательские переопределения в отдельном файле, например values-prod.yaml
  • не редактируйте базовый helm/values.yaml в установленном чарт-пакете без необходимости
  • не храните открытые секреты в Git
  • группируйте свои overrides по смысловым блокам, а не по случайному порядку