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

Установка Blitz через Helm

В этом разделе приведён рекомендуемый порядок установки Blitz IDP в Kubernetes с помощью Helm.

Дистрибутив и сопутствующие материалы

Перед началом установки скачайте актуальную версию Helm чарта:

Если установка предполагается в режиме config.readOnly=true, достаточно чарта и подготовленных образов.

Для сценария config.readOnly=false вы можете найти ссылку для скачивания стандартных конфигов в разделе подготовки конфигурации.

Шаг 1. Подготовьте namespace

kubectl create namespace blitz || true

Если namespace уже существует, убедитесь, что он используется последовательно во всех дальнейших командах.

Шаг 2. Подготовьте PostgreSQL

Если внешняя PostgreSQL уже установлена, переходите к следующему шагу. Если базы ещё нет, можно развернуть её отдельным Helm-релизом.

Пример:

helm upgrade --install blitz-pg oci://registry-1.docker.io/bitnamicharts/postgresql \
  -n default \
  --set auth.username=blitz \
  --set auth.password=blitzpass \
  --set auth.database=blitz

После этого проверьте строку подключения, которую будете использовать в values.yaml.

Шаг 3. Подготовьте секреты

Если используется Vault, сначала сгенерируйте и загрузите секреты:

tools/secrets/blitz-secrets.sh \
  --db-pass "S3cureDBPass" \
  --admin-pass "S3cureAdminPass" \
  --license "AAAA-BBBB-CCCC-DDDD" \
  --ldap-mfa-confirmation-shared-key "radius-shared-key" \
  --format json > secrets.json

Затем загрузите их в Vault и создайте Secret Kubernetes с secret_id.

Если используется Git как источник конфигурации, также подготовьте секрет с учётными данными:

kubectl -n blitz create secret generic blitz-config-git-creds \
  --from-literal=username=gituser \
  --from-literal=password='StrongGitPassword'

Шаг 4. Подготовьте values-файл

Рекомендуется использовать отдельный файл, например values-prod.yaml.

Минимальный рабочий пример:

domain: "blitz.company.loc"

config:
  readOnly: false
  source:
    type: git
    git:
      repo: https://git.company.loc/blitz/blitz-config.git
      ref: main
      auth:
        existingSecret: blitz-config-git-creds
        usernameKey: username
        passwordKey: password

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"

ingress:
  enabled: true
  className: "traefik"
  tls:
    enabled: true
    secretName: "blitz-idp-tls"

Шаг 5. Проверьте шаблоны перед установкой

Перед применением полезно выполнить локальную проверку:

helm template blitz ./helm -n blitz -f values-prod.yaml
helm lint ./helm -f values-prod.yaml

Если в выводе есть ошибки валидации или рендеринга, устраните их до установки.

Шаг 6. Установите или обновите релиз

Основная команда:

helm upgrade --install blitz ./helm -n blitz -f values-prod.yaml

Если часть параметров нужно быстро переопределить в конкретном запуске, можно использовать --set, но для production среды это желательно свести к минимуму.

Пример включения дополнительных модулей:

helm upgrade --install blitz ./helm \
  -n blitz \
  -f values-prod.yaml \
  --set panel.enabled=true \
  --set ldapMfa.enabled=true

Состав ресурсов релиза

В типовой инсталляции чарт создаёт:

  • рабочие Deployment и StatefulSet
  • Service
  • Ingress
  • Secret и ConfigMap
  • PersistentVolumeClaim, если нужен общий конфигурационный том
  • Job начальной публикации конфигурации
  • PodDisruptionBudget
  • NetworkPolicy
  • дочерний релиз memcached

Если включён Vault, дополнительно создаются ресурсы VSO.

Базовый сценарий

Если нужен максимально простой запуск:

  • используйте config.readOnly=true
  • включите только необходимые модули
  • заранее подготовьте Vault
  • не включайте модули Blitz Panel и Blitz LDAP MFA, пока они действительно не потребуются.

Расширенный сценарий

Если требуется полный production контур:

  • используйте Vault
  • используйте Git как источник конфигурации
  • включите NetworkPolicy
  • настройте PodDisruptionBudget
  • включите мониторинг и экспорт метрик
  • зафиксируйте отдельный values-файл на каждое окружение

После установки

После деплоя перейдите к следующему разделу книги для проверки статуса релиза, подов, Job, PVC и Ingress.