Files
hrbox-helm-chart/.helm/values.yaml
T

464 lines
16 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
# Основные настройки приложения HRBox
app:
# Docker образ приложения HRBox
# Получите доступ к реестру у сотрудников HRBox
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox:latest"
# Настройки домена
# defaultTenantHostname - основной домен вашей HRBox инсталляции
# Например: hrbox.company.com
# Должен совпадать с ingress.host
defaultTenantHostname: "hrbox.example.com"
# Уникальное имя инстанса для идентификации
instanceName: "onprem"
# Включение/отключение frontend2.
# "true" - включено
# "false" или пустое значение - отключено
front2: "true"
# Домен для авторизации
# Оставьте пустым
authHost: ""
# Режим отладки
# "0" - production режим (рекомендуется)
# "1" - debug режим (только для разработки)
debug: "0"
# Количество реплик для каждого сервиса
# Рекомендации по масштабированию:
# - web: 2-10 реплик в зависимости от количества пользователей
# - worker: 2-5 реплик для обработки фоновых задач
# - chatbox: 2-6 реплик для real-time функционала (WebSocket)
# - geonames: 1-2 реплики (сервис не требователен к ресурсам)
replicas:
web: 2
worker: 2
chatbox: 2
geonames: 1
# Показ собственной политики конфиденциальности и terms of use
# privacy-url и terms-url передаются в приложение только если enabled установлена в true
# если enabled = true, но privacy-url и terms-url закомментированы,
# то будут использоваться ссылки https://hrbox.io/policy и https://hrbox.io/terms
custom-policy:
enabled: false
# privacy-url: "https://example.com/privacy"
# terms-url: "https://example.com/terms"
# PostgreSQL база данных
# Требования: PostgreSQL 14+
# Рекомендуется настроить репликацию для отказоустойчивости
postgres:
host: "postgresql"
port: "5432"
database: "hrbox"
user: "hrbox"
# Пароль для подключения к БД
password: ""
# Использование Citus для шардирования
# "true" - если используете Citus расширение
# "false" - для обычного PostgreSQL
citus: "false"
# Redis для кеша и сессий
# Потеря данных не критична - хранятся только сессии и кеш
# При перезапуске Redis все пользователи будут разлогинены
redis:
host: "hrbox-dragonfly"
port: "6379"
# NATS JetStream - брокер сообщений
# Для отказоустойчивости используйте кластер из 3+ нод
# Формат для кластера: nats://node1:4222,nats://node2:4222,nats://node3:4222
nats:
url: "nats://hrbox-nats:4222"
# S3-совместимое хранилище для файлов
# Поддерживаются: AWS S3, MinIO, Yandex Object Storage, VK Cloud Storage
s3:
# URL endpoint вашего S3
# Примеры:
# - MinIO: http://minio:9000
# - Yandex: https://storage.yandexcloud.net
# - VK Cloud: https://hb.vkcloud-storage.ru
endpoint: "https://storage.example.com"
# Название bucket для хранения файлов
bucket: "hrbox"
# Access Key для доступа к S3
key: ""
# Secret Key для доступа к S3
secret: ""
# Регион S3 (обычно us-east-1 для MinIO)
region: "us-east-1"
# Версия API (оставьте "latest")
version: "latest"
# Использовать path-style URLs
# "true" для MinIO и self-hosted S3
# "false" для AWS S3
pathStyle: "true"
# Включить multipart загрузку для больших файлов
multipart: "true"
# Префикс для всех объектов (опционально)
prefix: ""
# SMTP настройки для отправки email
smtp:
# SMTP сервер
host: "smtp.example.com"
# Порт SMTP
# 25 - без шифрования
# 587 - STARTTLS
# 465 - SSL/TLS
port: "587"
# Логин для SMTP авторизации
user: "noreply@example.com"
# Пароль для SMTP
password: ""
# Email отправителя
from: "noreply@example.com"
# Домен отправителя для HELO/EHLO
fromHost: "example.com"
# Тип шифрования: "", "tls", "ssl"
securityType: "tls"
# Разрешить самоподписанные сертификаты
sslAllowSelfSigned: "true"
# Проверять SSL сертификат сервера
sslVerifyPeer: "false"
# Sentry для мониторинга ошибок
sentry:
# DSN для отправки ошибок
dsn: ""
# Окружение для группировки ошибок
environment: "production"
# Настройки сервиса геолокации
geonames:
# URL внутреннего сервиса geonames
# Не меняйте, если используете стандартный деплой
url: "http://hrbox-geonames:8181"
# Goworker
goworker:
# URL внутреннего сервиса goworker
url: "http://hrbox-goworker:8686"
# Docker образ goworker
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-goworker:2.7"
# Количество реплик
replicas: 2
# Минимальный интервал между push
pushMinInterval: "5m"
# Sentry DSN для мониторинга ошибок
sentryDsn: ""
# Kedoca - сервис электронной подписи (ГОСТ, OpenSSL)
kedoca:
# URL внутреннего сервиса kedoca
url: "http://hrbox-kedoca:8558"
# Docker образ kedoca
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-kedoca:0.8"
# Количество реплик
replicas: 1
# Пароль для корневого сертификата
rootCaPass: "hrbox"
# Криптографический движок: "gost" или "openssl"
engine: "gost"
# Алгоритм: "gost2012_256" для GОСТ или "rsa" для OpenSSL
algorithm: "gost2012_256"
# Параметры ключа: "paramset:A" для ГОСТ или "rsa_keygen_bits:2048" для RSA
pkeyopt: "paramset:A"
# Имя Kubernetes Secret с сертификатами
# Если указано, будет смонтирован в /ca-cert
secretName: ""
# File Processor - обработка файлов (конвертация, ресайз изображений)
file_processor:
# Docker образ file processor
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-file-processor:1.0"
# Количество реплик
replicas: 1
# Chatbox - WebSocket сервер для real-time функционала
chatbox:
# Docker образ chatbox
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-chatbox:3.0"
# Wrapping key - часть ключа для ассиметричного шифрования чатов
# Сгенерируйте произвольную строку из 32 символов
# openssl rand -hex 16
wrappingKey: ""
# Sentry DSN для мониторинга ошибок
sentryDsn: ""
# Настройки воркеров Launchpad
# Формат: "название-топика:количество-воркеров"
launchpad:
topics: "launcher:1,file-processor:1,image-processor:1,send-mail:1,send-im:1,send-bell:1,send-push:1,backup:1,cleaning:1"
# Интеграция с Yandex (опционально)
yandex:
# Client ID для Yandex OAuth
clientId: ""
# Client Secret для Yandex OAuth
clientPassword: ""
# Интеграция со Slack (опционально)
slack:
# Slack App Client ID
clientId: ""
# Slack App Client Secret
clientSecret: ""
# Slack Verification Token
verificationToken: ""
# HRBox Hub
hub:
# URL Hub сервиса
url: "https://hub.hrbox.io"
# Токен для авторизации в Hub, получите от сотрудника HrBox
token: ""
# AI интеграции (опционально)
ai:
# Yandex Cloud AI
yandex:
# ID каталога в Yandex Cloud
folderId: ""
# API ключ для Yandex Cloud
apiKey: ""
# Настройки безопасности
security:
# Разрешить полный доступ к iframe
# "true" - разрешает iframe полный доступ к родительскому окну
# "false" - ограничивает доступ iframe (рекомендуется для production)
iframeFullAccess: "false"
# Секретные ключи приложения
secrets:
# Ключ валидации cookie (32 символа)
# Используется для защиты от XSS атак
# Генерация: openssl rand -hex 16
cookieValidationKey: ""
# Ключ шифрования данных (64 символа)
# ВАЖНО: Не теряйте этот ключ! Без него невозможно расшифровать данные
# Используется для шифрования паролей интеграций (S3, ADFS и др.)
# Генерация: openssl rand -base64 48
encryptionKey: ""
# Секрет для внутренней коммуникации микросервисов (64 символа)
# Используется для защиты внутренних API вызовов между сервисами
# Генерация: openssl rand -base64 48
servicesInternalSecret: ""
# Настройки Ingress
ingress:
# Включить Ingress
enabled: true
# Класс Ingress контроллера
# Обычно: "nginx" или "traefik"
className: "nginx"
# Хост для доступа к приложению
# Используйте wildcard для мультитенантности: *.hrbox.company.com
# Или конкретный домен: hrbox.company.com
host: "hrbox.example.com"
# Настройки TLS/HTTPS
tls:
# Включить HTTPS
# ВАЖНО: В production всегда используйте HTTPS
enabled: true
# Имя Kubernetes Secret с SSL сертификатом
# Создайте через: kubectl create secret tls hrbox-tls --cert=cert.pem --key=key.pem
# Или используйте cert-manager для автоматического получения сертификатов
secretName: "hrbox-tls"
cluster:
domain: "cluster.local" # Укажите домен текущего k8s-кластера, если используется нестандартный
# Настройки ресурсов для контейнеров
# Указаны рекомендуемые значения для production
resources:
# Web-сервер (PHP-FPM + Nginx)
# Обрабатывает HTTP запросы, API, веб-интерфейс
app:
requests:
cpu: "0.5" # Минимум 0.5 CPU
memory: "512Mi" # Минимум 512MB RAM
ephemeralStorage: "64Mi"
limits:
cpu: "2" # Максимум 2 CPU
memory: "2Gi" # Максимум 2GB RAM
ephemeralStorage: "256Mi"
# Nginx (в составе web pod)
# Проксирует запросы к PHP-FPM
nginx:
requests:
cpu: "0.1"
memory: "64Mi"
ephemeralStorage: "64Mi"
limits:
cpu: "0.5"
memory: "256Mi"
ephemeralStorage: "64Mi"
# Worker - обработчик фоновых задач
# Выполняет: конвертацию файлов, отправку email, генерацию отчетов
worker:
requests:
cpu: "0.5"
memory: "512Mi"
ephemeralStorage: "1Gi" # Больше места для обработки файлов
limits:
cpu: "2"
memory: "2Gi"
ephemeralStorage: "2Gi"
# Geonames - сервис геолокации
# Определяет города, страны, часовые пояса
geonames:
requests:
cpu: "0.1"
memory: "196Mi"
ephemeralStorage: "64Mi"
limits:
cpu: "0.5"
memory: "256Mi"
ephemeralStorage: "64Mi"
# Conductor - планировщик задач
# ВАЖНО: Всегда должен быть в единственном экземпляре!
# Запускает задачи по расписанию (cron)
conductor:
requests:
cpu: "0.1"
memory: "64Mi"
ephemeralStorage: "64Mi"
limits:
cpu: "0.5"
memory: "256Mi"
ephemeralStorage: "64Mi"
# Jobs - одноразовые задачи (миграции, инициализация)
jobs:
requests:
cpu: "0.5"
memory: "512Mi"
ephemeralStorage: "64Mi"
limits:
cpu: "2"
memory: "2Gi"
ephemeralStorage: "256Mi"
# Goworker - интеграции с мессенджерами
goworker:
requests:
cpu: "0.1"
memory: "196Mi"
ephemeralStorage: "64Mi"
limits:
cpu: "0.3"
memory: "256Mi"
ephemeralStorage: "64Mi"
# Kedoca - электронная подпись
kedoca:
requests:
cpu: "0.1"
memory: "196Mi"
ephemeralStorage: "64Mi"
limits:
cpu: "0.5"
memory: "256Mi"
ephemeralStorage: "64Mi"
# Chatbox - WebSocket сервер
chatbox:
requests:
cpu: "0.3"
memory: "96Mi"
ephemeralStorage: "128Mi"
limits:
cpu: "0.3"
memory: "192Mi"
ephemeralStorage: "256Mi"
# Настройки NATS JetStream
nats:
# Включить NATS (обязательно для работы HRBox)
enabled: true
# Docker образ NATS
image: "nats:2.10"
# Количество реплик NATS
# Для отказоустойчивости используйте 3 или 5
replicas: 3
# JetStream - персистентные очереди сообщений
jetstream:
enabled: true
# Хранилище в памяти (для небольших инсталляций)
memStorage:
enabled: true
size: "2Gi"
# Хранилище на диске (для production)
fileStorage:
enabled: false
size: "4Gi"
storageDirectory: "/data"
# StorageClass для PVC
# Используйте SSD для лучшей производительности
storageClassName: "fast-ssd"
# Настройки кластера NATS
cluster:
# Включить кластеризацию для отказоустойчивости
enabled: true
# Должно совпадать с replicas
replicas: 3
# Prometheus exporter (для мониторинга)
exporter:
enabled: false
# Config reloader - автоматическая перезагрузка конфигурации
reloader:
enabled: true
# Время ожидания graceful shutdown в секундах
terminationGracePeriodSeconds: 120
dragonfly:
# Включает или отключает развёртывание Dragonfly (Redis).
# Установите в true, чтобы активировать, или в false, чтобы отключить.
enabled: true
# По умолчанию параметр не используется. По необходимости, раскомментируйте и установите требуемое значение maxmemory
# maxmemory: "256M"