7.3 KiB
Redmine в test-контуре
Внедрено в test-контуре 29–30.05.2026. Sentry из контура удалён (≈10 GiB RAM) — для ошибок приложений используйте Grafana → Loki.
Redmine — issue tracker для задач разработки. В test-контуре он связан с Git-flow: коммиты с Refs #N / Fixes #N можно привязать к задачам; интеграция с Gitea настраивается вручную (см. ниже).
URL и доступы
| Сервис | URL | Логин | Пароль |
|---|---|---|---|
| Redmine | http://redmine.sova.local | admin |
SovaRedmineTest2026! |
| Gitea | http://git.sova.local | gitea_admin |
.generated/platform-credentials.env |
Добавить в /etc/hosts (IP из multipass info sova-test или ./scripts/print-urls.sh):
192.168.252.2 redmine.sova.local
Пароль test-контура также в sova-deploy/apps/redmine/values-test.yaml.
Интерфейс
Страница входа Redmine.
Главная Redmine: проекты и задачи.
Проект и задача по умолчанию
После bootstrap (./scripts/bootstrap-redmine.sh):
| Объект | Значение |
|---|---|
| Проект | Sova Platform (sova-platform) |
| Пример задачи | #27 CRUD для новых сущностей в API |
Задача #27 описывает CRUD для сущностей (новости, акции, заболевания, центры, статьи, услуги) — эталон для работы по Git-flow в test-контуре.
Архитектура
flowchart LR
subgraph gitops [GitOps]
SD[sova-deploy main]
RT[ArgoCD redmine-test]
SP[ArgoCD sova-projects]
end
subgraph cluster [k3s]
RM[Redmine pod]
PG[(PostgreSQL redmine_test)]
MP[Mailpit SMTP]
ING[Ingress redmine.sova.local]
end
SD --> RT --> RM
SD --> SP
RM --> PG
RM --> MP
ING --> RM
| Компонент | Решение |
|---|---|
| Chart | sova-deploy/apps/redmine/ → Bitnami wrapper |
| Образ | bitnamilegacy/redmine:6.0.5-debian-12-r0 |
| Namespace | redmine |
| PostgreSQL | БД redmine_test в sova-data-test (общий postgresql-test) |
| SMTP | Mailpit mailpit.sova-mocks.svc.cluster.local:1025 (письма в UI Mailpit) |
| Ingress | redmine.sova.local (deploy-platform-ingress.sh) |
| ArgoCD | Application redmine-test в argocd/apps/platform-tools.yaml |
| AppProject | namespace redmine в argocd/projects/sova-project.yaml, GitOps через sova-projects |
Деплой
Через ArgoCD (основной путь)
После push sova-deploy в Gitea приложение redmine-test синхронизируется автоматически (sova-root → platform-tools.yaml).
Проверка:
kubectl get application redmine-test -n argocd
kubectl get pods -n redmine
curl -s -o /dev/null -w "%{http_code}\n" http://redmine.sova.local/
Вручную (bootstrap кластера)
cd k3s-test
source ./scripts/use-kubeconfig.sh
# Helm + ingress + ArgoCD Application
./scripts/deploy-redmine.sh
# Проект sova-platform + задача #27 через REST API
./scripts/deploy-redmine.sh --bootstrap
# или отдельно:
./scripts/bootstrap-redmine.sh
bootstrap-redmine.sh:
- Включает REST API в PostgreSQL (
rest_api_enabled). - Создаёт проект
sova-platform, если его нет. - Создаёт задачу #27 с описанием CRUD (если ещё не существует).
Git-flow и коммиты
Регламент сообщений коммитов (связь с Redmine):
feat(adminpanel): content CRUD (Refs #27)
fix(cabinet): registration on test contour (Fixes #45)
| Маркер | Эффект |
|---|---|
Refs #N |
ссылка на задачу; при webhook — ревизия в Redmine |
Fixes #N |
кликабельная ссылка в Gitea (external tracker) |
Ветки: prod / test / stage — см. Git-flow и Gitea CI.
Интеграция Gitea ↔ Redmine
Автоматизация через Gitea API не включена — только инструкции:
./scripts/setup-gitea-redmine-integration.sh
Скрипт выводит шаги:
-
External Issue Tracker (каждый repo: backend, adminpanel, cabinet, docs)
URL:http://redmine.sova.local/issues/{index} -
Webhook (Push → ревизии в задаче)
URL:http://redmine.sova.local/github_hook?project_id=<id>
Требует pluginredmine_github_hookв custom-образеsova-redmine/(опционально, не в базовом деплое).
Базовый test-контур работает без webhook: задачи создаются в UI или через bootstrap-redmine.sh, коммиты помечаются Refs #N вручную в сообщении.
Troubleshooting
| Проблема | Решение |
|---|---|
redmine-test InvalidSpecError (namespace) |
Применить argocd/projects/sova-project.yaml; проверить ArgoCD app sova-projects |
| Redmine ImagePullBackOff | global.security.allowInsecureImages: true; образ bitnamilegacy/redmine |
| DB connection error | БД redmine_test в sova-data-test; job db-init / SQL в data/test/ |
| HTTP 502 / pod CrashLoop | kubectl logs -n redmine deploy/redmine-test; проверить PostgreSQL |
| REST API 403 | ./scripts/bootstrap-redmine.sh включает rest_api_enabled |
| Письма не приходят | Ожидаемо в test: SMTP → Mailpit, не реальная почта |
Проверка БД:
kubectl exec -n sova-data-test postgresql-test-0 -- \
env PGPASSWORD=sova_test_pass psql -U sova_test -d redmine_test -c '\dt' | head
Файлы в репозитории
| Путь | Назначение |
|---|---|
sova-deploy/apps/redmine/ |
Helm chart + values-test.yaml |
sova-deploy/argocd/apps/platform-tools.yaml |
Application redmine-test |
sova-deploy/argocd/apps/sova-projects.yaml |
GitOps для AppProject (namespace redmine) |
scripts/deploy-redmine.sh |
Helm + ingress + ArgoCD |
scripts/bootstrap-redmine.sh |
Проект + задача #27 |
scripts/setup-gitea-redmine-integration.sh |
Инструкции Gitea ↔ Redmine |
sova-redmine/ |
Custom image с redmine_github_hook (опционально) |
Связанные разделы
- Grafana / Loki — логи pod'ов (вместо Sentry)
- Git-flow — ветки и PR
- Gitea CI — pipeline и теги
- ArgoCD: приложения — sync и health
- Практическое руководство

