[k8s] Манифесты / Helm chart для развёртывания всего стека #72

Open
opened 2026-05-13 22:07:14 +03:00 by Toutsu · 0 comments
Owner

Контекст

Сейчас весь стек развёрнут через Docker Compose на одной машине (Raspberry Pi 5). Для перехода на Kubernetes нужны манифесты (или Helm chart), описывающие все сервисы проекта.

Сервисы для покрытия

  • bot — GmRelay.Bot (Telegram бот, polling → webhook)
  • web — GmRelay.Web (Blazor Server / Mini App dashboard)
  • db — PostgreSQL (StatefulSet + PVC)
  • db-backup — cron-задача бэкапа Postgres

Что нужно

  1. Namespace gmrelay и gmrelay-staging
  2. Deployment для bot и web с:
    • replicas (bot = 1 пока polling, потом HPA после webhook)
    • livenessProbe / readinessProbe (уже есть #58, #63)
    • resources (limits/requests)
    • envFrom / env из ConfigMap + Secret
  3. StatefulSet + PVC для PostgreSQL
  4. CronJob для бэкапов (портировать логику из db-backup в compose)
  5. Service (ClusterIP) для каждого компонента
  6. ImagePullSecret (чтобы тянуть образы из приватного registry git.codeanddice.ru)
  7. Helm chart (опционально, но предпочтительно) с values.yaml для staging/prod

Критерии приёмки

  • kubectl apply -f k8s/ разворачивает полный стек
  • Все сервисы поднимаются и видят друг друга внутри namespace
  • Бот и Web подключаются к БД через k8s Service DNS
  • Бэкапы работают в CronJob и пишут в PVC / S3
  • Секреты (токены, пароли) вынесены в Secret, не в plain text
## Контекст Сейчас весь стек развёрнут через Docker Compose на одной машине (Raspberry Pi 5). Для перехода на Kubernetes нужны манифесты (или Helm chart), описывающие все сервисы проекта. ## Сервисы для покрытия - `bot` — GmRelay.Bot (Telegram бот, polling → webhook) - `web` — GmRelay.Web (Blazor Server / Mini App dashboard) - `db` — PostgreSQL (StatefulSet + PVC) - `db-backup` — cron-задача бэкапа Postgres ## Что нужно 1. **Namespace** `gmrelay` и `gmrelay-staging` 2. **Deployment** для `bot` и `web` с: - `replicas` (bot = 1 пока polling, потом HPA после webhook) - `livenessProbe` / `readinessProbe` (уже есть #58, #63) - `resources` (limits/requests) - `envFrom` / `env` из ConfigMap + Secret 3. **StatefulSet + PVC** для PostgreSQL 4. **CronJob** для бэкапов (портировать логику из `db-backup` в compose) 5. **Service** (ClusterIP) для каждого компонента 6. **ImagePullSecret** (чтобы тянуть образы из приватного registry `git.codeanddice.ru`) 7. **Helm chart** (опционально, но предпочтительно) с `values.yaml` для staging/prod ## Критерии приёмки - [ ] `kubectl apply -f k8s/` разворачивает полный стек - [ ] Все сервисы поднимаются и видят друг друга внутри namespace - [ ] Бот и Web подключаются к БД через k8s Service DNS - [ ] Бэкапы работают в CronJob и пишут в PVC / S3 - [ ] Секреты (токены, пароли) вынесены в `Secret`, не в plain text
Toutsu added this to the Этап — Kubernetes / k8s Production milestone 2026-05-13 22:07:14 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Toutsu/GmRelayBot#72