Files
hrbox-helm-chart/README.md
T
2026-02-12 11:37:14 +03:00

75 lines
3.3 KiB
Markdown

# HRBox Helm Chart
Helm-чарт для развертывания приложения HRBox в Kubernetes.
---
## Быстрый старт
### 1. Создайте секрет для доступа к Docker-реестру
Для скачивания приватного Docker-образа создайте Kubernetes Secret с помощью предоставленного JSON-ключа:
```bash
kubectl create secret docker-registry regsecret \
--docker-username=json_key \
--docker-password="$(cat key-puller.json)" \
--docker-server=cr.yandex \
--docker-email=not@used.com
```
### 2. Создайте TLS-секрет с сертификатом для домена
```bash
kubectl create secret tls hrbox-tls --cert=cert.pem --key=key.pem
```
### 3. Сгенерируйте секретные ключи приложения
Для обеспечения безопасности необходимо сгенерировать и указать в `values.yaml` следующие ключи:
- **cookieValidationKey** — 32 байта в hex (например: `openssl rand -hex 16`)
- **encryptionKey** — 64 байта в base64 (например: `openssl rand -base64 48`)
- **servicesInternalSecret** — 64 байта в base64 (например: `openssl rand -base64 48`)
- **chatbox.wrappingKey** — 32 символа в hex (например: `openssl rand -hex 16`)
Эти ключи используются для защиты cookie, шифрования данных, межсервисной коммуникации и шифрования чатов.
### 4. Заполните обязательные параметры в `values.yaml`
Обязательно укажите в конфигурации:
- Параметры подключения к базе данных PostgreSQL (`app.postgres.host`, `port`, `database`, `user`, `password`).
- Настройки S3-совместимого хранилища (`app.s3.endpoint`, `bucket`, `key`, `secret`).
- SMTP-настройки для отправки почты (`app.smtp.host`, `port`, `user`, `password`, `from`, `fromHost`).
- Домен для приложения (`app.defaultTenantHostname`) и Ingress (`ingress.host`).
- Имя TLS-секрета для HTTPS (`ingress.tls.secretName`), созданного на шаге 2.
- Ключ для hrbox hub (предоставляется сотрудниками hrbox)
Прочие настройки и пример `values.yml` с подробным описанием ключей вы можете найти [тут](.helm/values.yaml)
### 5. Установите или обновите Helm-релиз
```bash
helm upgrade --install hrbox . -f values.yaml
```
### 6. Дождитесь завершения миграций
Job `hrbox-migrate-xxxxx` должна завершиться
### 7. При первом развертывании - создайте суперпользователя
```bash
kubectl get pods
NAME READY STATUS RESTARTS AGE
...
hrbox-worker-7898b77b85-5ppwm 1/1 Running 0 53s
hrbox-worker-7898b77b85-9fnkc 1/1 Running 0 53s
kubectl exec -it hrbox-worker-7898b77b85-5ppwm bash
php yii user/create-admin youremail@hrbox.io --tenant-id=1
```