Конфигурирование секретов DataLens On-premises
Секреты можно задать двумя способами:
- Через параметры в файле
values.yaml(рекомендуется для первичного развертывания). - Через внешний секрет Kubernetes, указав ссылку в
secrets.ref.
При использовании скрипта ./init.sh секреты генерируются автоматически при первом развертывании и сохраняются в секретах кластера Kubernetes.
Пример YAML-конфигурации
secrets:
ref: null # Ссылка на внешний секрет Kubernetes
#
# === RSA-ключи аутентификации (обязательные) ===
AUTH_TOKEN_PRIVATE_KEY: null # Генерируется автоматически при первом развертывании
AUTH_TOKEN_PUBLIC_KEY: null # Генерируется автоматически при первом развертывании
AUTH_PROVIDERS_CONFIG: null # JSON-массив провайдеров (опционально)
AUTH_ADMIN_PASSWORD: null # Пароль admin (генерируется автоматически)
AUTH_CALLBACK_COOKIE_SECRET: null # Генерируется автоматически
#
# === Безопасность ===
CSRF_SECRET: null # Генерируется автоматически
#
# === Мастер-токены ===
AUTH_MASTER_TOKEN: null # Генерируется автоматически
US_MASTER_TOKEN: null # Генерируется автоматически
FILE_UPLOADER_MASTER_TOKEN: null # Генерируется автоматически
EXPORT_DATA_VERIFICATION_KEY: null # Генерируется автоматически
#
# === Ключи шифрования ===
CONTROL_API_CRYPTO_KEY: null # Генерируется автоматически
#
# === Docker Registry ===
DOCKER_CONFIG_JSON: null # Обязателен при registry.private: true
#
# === PostgreSQL ===
POSTGRES_PASSWORD_ROOT: null # Генерируется автоматически
POSTGRES_PASSWORD_US: null # Генерируется автоматически
POSTGRES_PASSWORD_COMPENG: null # Генерируется автоматически
POSTGRES_PASSWORD_AUTH: null # Генерируется автоматически
POSTGRES_PASSWORD_TEMPORAL: null # Генерируется автоматически
POSTGRES_PASSWORD_META_MANAGER: null # Генерируется автоматически
POSTGRES_PASSWORD_DEMO: null # Генерируется автоматически
#
# === RSA-ключи Temporal (для импорта/экспорта) ===
TEMPORAL_AUTH_PRIVATE_KEY: null # Генерируется при включении features.export
TEMPORAL_AUTH_PUBLIC_KEY: null # Генерируется при включении features.export
#
# === Инфраструктурные компоненты ===
CLICKHOUSE_PASSWORD: null # Генерируется автоматически
REDIS_PASSWORD: null # Генерируется автоматически
S3_ACCESS_KEY_ID: null # Генерируется автоматически
S3_SECRET_ACCESS_KEY: null # Генерируется автоматически
Генерация RSA-ключей вручную
Если требуется сгенерировать RSA-ключи вручную, используйте следующие команды:
# Генерация приватного ключа (4096 bit)
openssl genpkey -algorithm RSA -pkeyopt "rsa_keygen_bits:4096" -out private.pem
# Извлечение публичного ключа
openssl rsa -in private.pem -pubout -out public.pem
# Просмотр содержимого для вставки в values.yaml
cat private.pem
cat public.pem
При указании в values.yaml используйте многострочный формат YAML:
secrets:
AUTH_TOKEN_PRIVATE_KEY: |
-----BEGIN PRIVATE KEY-----
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQC...
...
-----END PRIVATE KEY-----
AUTH_TOKEN_PUBLIC_KEY: |
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA...
...
-----END PUBLIC KEY-----
Формат DOCKER_CONFIG_JSON
Пример конфигурации для приватного реестра:
{
"auths": {
"registry.example.com": {
"username": "user",
"password": "password",
"auth": "base64(user:password)"
}
}
}
Также обратите внимание на пример в файле ./help/docker-config.example.json.
Использование внешнего секрета Kubernetes
Если секреты уже существуют в кластере Kubernetes, укажите ссылку на секрет:
secrets:
ref: my-existing-secret
В этом случае все остальные значения в секции secrets будут игнорироваться, и система будет использовать значения из указанного секрета Kubernetes.
Внешний секрет должен содержать все необходимые ключи с соответствующими именами.
Полезные команды
# Получить пароль администратора
./init.sh --get-admin-password
# Сгенерировать новые RSA-ключи для аутентификации
./init.sh --auth-rsa-gen
# Сгенерировать новые RSA-ключи для Temporal
./init.sh --temporal-rsa-gen
# Указать файл с конфигурацией провайдеров аутентификации
./init.sh --auth-providers-config ./my-auth-config.json
# Создать резервную копию PostgreSQL перед ротацией
./init.sh --dump-postgres
# Проверить статус подов после ротации
./init.sh --kubectl get pods
# Посмотреть логи для диагностики проблем
./init.sh --stern .
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.