Установка 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
Если планируется config.source.type=local, вместо Git-блока задайте:
config:
readOnly: false
source:
type: local
local:
path: "/absolute/path/on/node"
Этот путь должен существовать на тех узлах, где может запускаться init-conf.
Если в выводе есть ошибки валидации или рендеринга, устраните их до установки.
Шаг 6. Установите или обновите релиз
Основная команда:
helm upgrade --install blitz ./helm -n blitz -f values-prod.yaml
Для режима config.readOnly=false после деплоя создается init-conf Job. Он:
- запускается при установке и при каждом последующем upgrade
- вычисляет отпечаток динамической конфигурации
- публикует изменения в PVC только если отпечаток изменился
Если часть параметров необходимо быстро переопределить в конкретном запуске, можно использовать --set, но для продакшен среды это желательно свести к минимуму.
Пример включения дополнительных модулей:
helm upgrade --install blitz ./helm \
-n blitz \
-f values-prod.yaml \
--set panel.enabled=true \
--set ldapMfa.enabled=true
Состав ресурсов релиза
В типовой инсталляции чарт создаёт:
- рабочие
DeploymentиStatefulSet ServiceIngressSecretиConfigMapPersistentVolumeClaim, если нужен общий конфигурационный томJobначальной публикации конфигурацииPodDisruptionBudgetNetworkPolicy- дочерний релиз
memcached
Если включён Vault, дополнительно создаются ресурсы VSO.
Базовый сценарий
Если нужен максимально простой запуск:
- используйте
config.readOnly=true - включите только необходимые модули
- заранее подготовьте Vault
- не включайте модули Blitz Panel и Blitz LDAP MFA, пока они действительно не потребуются.
Расширенный сценарий
Если требуется полный production контур:
- используйте Vault
- используйте Git как источник конфигурации
- включите
NetworkPolicy - настройте
PodDisruptionBudget - включите мониторинг и экспорт метрик
- зафиксируйте отдельный values-файл на каждое окружение