Files
hrbox-helm-chart/CHANGELOG.md
T
2026-01-30 12:34:53 +03:00

236 lines
9.1 KiB
Markdown
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.
# Changelog
All notable changes to the HRBox Helm chart will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.0.0] - 2026-01-30
Масштабная актуализация чарта на основе продового окружения hrbox. Синхронизированы версии компонентов, добавлены новые микросервисы, обновлены переменные окружения.
### Added
#### Новые микросервисы
- **Goworker** (`09-goworker.yaml`) - Сервис интеграций с мессенджерами
- Образ: `hrbox-goworker:2.7`
- Поддержка Telegram, WhatsApp и других мессенджеров
- Prometheus metrics на порту 8686
- Настройки: `app.goworker` в values.yaml
- Переменные: `GOWORKER_URL`, `GOWORKER_PUSH_MIN_INTERVAL`, `GOWORKER_SENTRY_DSN`
- **Kedoca** (`09-kedoca.yaml`) - Сервис электронной подписи
- Образ: `hrbox-kedoca:0.8`
- Поддержка ГОСТ и OpenSSL
- Монтирование Kubernetes Secret с CA сертификатами
- Настройки: `app.kedoca` в values.yaml
- Переменные: `KEDOCA_URL`, `TSP_URL`, `ROOT_CA_PASS`, `KEDO_ENGINE`, `KEDO_ALGORITHM`, `KEDO_PKEYOPT`
- **Document Converter** (`09-document-converter.yaml`) - Конвертер документов
- Образ: `hrbox-document-converter:latest`
- Конвертация PDF, DOCX и других форматов
- Настройки: `app.document_converter` в values.yaml
- Переменные: `PYTHONUNBUFFERED`, `DOCCONV_MAX_PARALLEL_TASKS`
#### Новые переменные окружения
- `SERVICES_INTERNAL_SECRET` - Секрет для межсервисной коммуникации
- `AI_DOCS_INDEX_ENABLED` - Включение индексации документов через AI
- `AI_SEMANTIC_INDEX_ENABLED` - Семантическое индексирование
- `AI_SEMANTIC_INDEX_USE_BATCH` - Пакетная обработка при индексации
- `CHATBOX_SENTRY_DSN` - Sentry DSN для Chatbox
- `CHATBOX_WRAPPING_KEY` - часть ключа для шифрования чатов
- `SINGLE_TENANT` - Режим single-tenant для on-premise установок
- `TSP_URL` - URL службы временных меток (http://qs.cryptopro.ru/tsp/tsp.srf)
#### Новые секреты
- `secrets.servicesInternalSecret` - Секрет для защиты внутренних API между микросервисами
- Генерация: `openssl rand -base64 48`
#### Resource definitions
Добавлены resource limits/requests для новых сервисов:
- `resources.goworker` - CPU: 0.1-0.3, Memory: 196Mi-256Mi
- `resources.kedoca` - CPU: 0.1-0.5, Memory: 196Mi-256Mi
- `resources.document_converter` - CPU: 1, Memory: 512Mi-1024Mi, Ephemeral: 512Mi-1024Mi
- `resources.chatbox` - CPU: 0.3, Memory: 96Mi-192Mi
### Changed
#### Обновление версий
- **Chart version**: `1.2.0` → `2.0.0`
- **App version**: `2.0.0` → `3.0.0`
#### Chatbox (ранее WebSocket)
- **Образ обновлен**: `hrbox-websocket:2.1` → `hrbox-chatbox:3.0`
- **Переименован deployment**: `{chart}-websocket` → `{chart}-chatbox`
- **Переименован service**: `{chart}-websocket` → `{chart}-chatbox`
- **Переименована конфигурация**:
- `app.replicas.websocket` → `app.replicas.chatbox`
- Файл остался `03-websocket.yaml` но содержимое обновлено на chatbox
#### Архитектура
- Все микросервисы теперь **обязательны** (не опциональны)
- Удалены условия `{{- if .Values.app.goworker }}` из templates
- Удалены `| default` значения для обязательных параметров
- Goworker, Kedoca, Document Converter, Chatbox всегда деплоятся
#### Templates
- `_envs.tpl`:
- Упрощена логика переменных окружения
- Удалены условия для обязательных сервисов
- Добавлен блок `envs_kedoca` для настроек криптографии
- `_resources.tpl`:
- Добавлены определения: `goworker_resources`, `kedoca_resources`, `document_converter_resources`, `chatbox_resources`
- `_helpers.tpl`:
- Без изменений, сохранена совместимость
### Removed
#### Устаревшие компоненты
- **WebSocket сервис** - Полностью заменен на Chatbox 3.0
- Удалено: `app.replicas.websocket` из values.yaml
- Удалено: `resources.websocket` из values.yaml
#### Устаревшие интеграции
- **OpenAI** - Интеграция удалена, используйте HRBox Hub
- Удален блок: `app.ai.openai` с полями `apiKey`, `proxyKey`, `baseUri`
- Удалены переменные: `OPENAI_API_KEY`, `OPENAI_PROXY_KEY`, `OPENAI_BASE_URI`
### Migration Guide
#### Миграция с версии 1.x на 2.0
**Шаг 1: Обновите values.yaml**
```yaml
# 1. Переименуйте websocket в chatbox
app:
replicas:
# websocket: 2 # УДАЛИТЬ
chatbox: 2 # ДОБАВИТЬ
# 2. Добавьте новые сервисы
app:
goworker:
url: "http://hrbox-goworker:8686"
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-goworker:2.7"
replicas: 2
pushMinInterval: "5m"
sentryDsn: ""
kedoca:
url: "http://hrbox-kedoca:8558"
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-kedoca:0.8"
replicas: 1
rootCaPass: "hrbox"
engine: "gost"
algorithm: "gost2012_256"
pkeyopt: "paramset:A"
secretName: ""
document_converter:
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-document-converter:latest"
wrappingKey: "" # Cгенерируйте: openssl rand -hex 16
replicas: 1
chatbox:
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-chatbox:3.0"
sentryDsn: ""
# 3. Добавьте новый секрет
secrets:
servicesInternalSecret: "" # Сгенерируйте: openssl rand -base64 48
# 4. Удалите OpenAI (если был настроен)
app:
ai:
# openai: # УДАЛИТЬ весь блок
# apiKey: ""
# proxyKey: ""
# baseUri: ""
```
**Шаг 2: Сгенерируйте новый секрет**
```bash
# Генерация servicesInternalSecret
openssl rand -base64 48
```
**Шаг 3: Обновите Chart**
```bash
helm upgrade hrbox .helm/ \
--namespace hrbox \
--values your-values.yaml
```
**Шаг 4: Проверьте новые поды**
```bash
# Проверка новых сервисов
kubectl get pods -n hrbox -l app=goworker
kubectl get pods -n hrbox -l app=kedoca
kubectl get pods -n hrbox -l app=document-converter
kubectl get pods -n hrbox -l app=chatbox
# Убедитесь что старый websocket удален
kubectl get pods -n hrbox -l app=websocket # Должно быть пусто
```
### Breaking Changes
⚠️ **Критические изменения, требующие действий:**
1. **WebSocket → Chatbox**: Обязательное переименование конфигурации
- Service name изменился с `{chart}-websocket` на `{chart}-chatbox`
- Если есть зависимости от старого имени сервиса - обновите их
2. **Новые обязательные сервисы**: Goworker, Kedoca, Document Converter всегда деплоятся
- Требуются дополнительные ресурсы кластера
- Проверьте доступность ресурсов перед обновлением
3. **Новый секрет**: `secrets.servicesInternalSecret` обязателен
- Приложение не запустится без этого секрета
- Сгенерируйте перед деплоем
4. **OpenAI удален**: Используйте HRBox Hub для AI интеграций
- Миграция на Hub API требуется если использовали OpenAI
### Notes
- Все образы сервисов используют registry: `cr.yandex/crphnph9c2s776j32sjd/`
- Для работы Kedoca с сертификатами создайте Kubernetes Secret и укажите в `kedoca.secretName`
- Goworker экспортирует метрики Prometheus на `/metrics` (порт 8686)
- Document Converter требует больше ephemeral storage (512Mi-1024Mi)
---
## [1.2.0] - Previous version
Упрощенный Helm chart для on-premise установок HRBox.
### Initial Features
- Базовые компоненты: web, worker, websocket, geonames, conductor
- PostgreSQL, Redis, NATS JetStream
- Ingress с TLS
- ConfigMaps и resource limits
- Migration и update jobs
---
[2.0.0]: #200---2026-01-30
[1.2.0]: #120---previous-version