Управление секретами
Новое в 2026.8.1
Чарт хранит пароли, токены и ключи шифрования в Kubernetes Secret.
Режим хранения задаётся параметром secrets.behavior в файле values.
Эта страница описывает установку через Helm (helm install / helm upgrade).
Если Vampy разворачивается через Argo CD, после этого раздела см.
Развёртывание через Argo CD.
Какие секреты создаёт чарт
| Secret | Содержимое |
|---|---|
$RELEASE_NAME-vampy-config |
Хосты, порты, имя БД, метаданные продукта, логин администратора. В режиме primitive здесь же хранятся пароли и токены. |
$RELEASE_NAME-vampy-secrets |
Только пароли и ключи. Создаётся в режимах classic и migrate2classic. |
Пароли и ключи генерируются при первой установке и дальше должны сохраняться:
POSTGRES_PASSWORDREDIS_PASSWORDJWT_SECRET_KEYSECRET_KEYMFA_AES_KEYINTERNAL_AUTH_TOKENINTERNAL_ENCRYPT_KEYINSTALLATION_ID
Не меняйте ключи на работающей инсталляции
Если эти значения изменятся, перестанут работать вход (в том числе 2FA), связь сервисов между собой и доступ к PostgreSQL и Redis.
Режимы secrets.behavior
| Значение | Где хранятся пароли и токены | Когда использовать |
|---|---|---|
primitive (по умолчанию) |
$RELEASE_NAME-vampy-config |
Текущие установки через Helm: менять режим не обязательно. |
classic |
$RELEASE_NAME-vampy-secrets |
Новые установки, GitOps / Argo CD, подготовка к будущему значению по умолчанию. |
migrate2classic |
Чарт записывает пароли в $RELEASE_NAME-vampy-secrets. Прежние значения остаются в vampy-config |
Только переход с primitive на classic. Не оставляйте этот режим постоянно. |
Не удаляйте vampy-config
Secret $RELEASE_NAME-vampy-config используется во всех режимах: из него
читаются хосты и порты. После перехода на classic не удаляйте его.
Новые установки
В следующих версиях чарта значение по умолчанию планируется сменить
с primitive на classic. Для новых установок рекомендуется сразу
указать classic.
Новая установка через Helm
Добавьте в файл my-values.yaml:
Далее установите чарт как обычно — см. раздел Установка чарта.
При первом helm install / helm upgrade --install чарт создаст
$RELEASE_NAME-vampy-secrets и запишет в него сгенерированные значения.
На последующих helm upgrade функция lookup подставит уже существующие ключи,
новые случайные значения не появятся.
Если параметр secrets.behavior не указывать, используется режим primitive.
Такая установка тоже рабочая.
Обновление существующей установки
Обычное обновление версии чарта не требует смены режима.
Оставьте primitive (или не указывайте параметр) и обновляйтесь по
инструкции в разделе Обновление чарта.
Чтобы перейти на classic, выполните два последовательных helm upgrade.
Нельзя перейти одним шагом
Одним шагом с primitive на classic переходить нельзя.
Job миграций схемы запускается до появления $RELEASE_NAME-vampy-secrets
и завершится ошибкой secret "...-vampy-secrets" not found.
Шаг 1. Режим migrate2classic
В файле my-values.yaml:
Обновите релиз тем же способом, что и обычно
(--reset-values -f my-values.yaml, см. раздел Обновление чарта).
Чарт создаст $RELEASE_NAME-vampy-secrets и скопирует туда текущие значения.
Поды начнут читать пароли из нового Secret, job обновления схемы — ещё из vampy-config.
Дождитесь статуса Running у подов и проверьте, что приложения ссылаются на новый Secret:
kubectl get pod -n $RELEASE_NAMESPACE \
-l app.kubernetes.io/component=${RELEASE_NAME}-v-engine -o json \
| jq -r '.items[0].spec.containers[0].env[]
| select(.name == "INTERNAL_AUTH_TOKEN")
| .valueFrom.secretKeyRef.name'
Ожидается значение $RELEASE_NAME-vampy-secrets.
Шаг 2. Режим classic
Снова выполните helm upgrade. Job миграций теперь читает $RELEASE_NAME-vampy-secrets
(секрет уже есть в кластере).
После этого пароли перестанут записываться в vampy-config.
Сам Secret оставьте: в нём по-прежнему хранятся хосты, порты и метаданные продукта.
Старые копии паролей в нём могут остаться — приложение их уже не использует.
Внешние PostgreSQL и Redis
Ссылки database.secretsKeyRefs / redis.secretsKeyRefs работают во всех режимах
и не заменяют secrets.behavior. Они задают, откуда взять логин, пароль и хост БД или Redis.
Это альтернатива полям database.password и redis.password в values:
нужен один из способов, не оба с разными значениями.
Пример с хостом и отключением встроенных сервисов — в разделе Установка чарта. Пароль должен совпадать с паролем самой БД.
Задание паролей в values
Для внешней БД или Redis можно указать database.password и redis.password.
Также доступны параметры vEngine.internalAuthToken и vEngine.internalEncryptKey.
Значение из values чарт запишет в Secret вместо сгенерированного.
Остальные ключи через values не задаются.