# CI/CD, репозитории, Loki — паритет с `k3s-test`

Каталог **`k8s/`**. У каждого приложения свой `.git` в `sova-backend/` и т.д. (не корень монорепо).

## Репозитории в Gitea

| Gitea repo | Локальная папка |
|------------|-----------------|
| `backend` | `k8s/sova-backend/` |
| `adminpanel` | `k8s/sova-adminpanel/` |
| `cabinet` | `k8s/sova-cabinet/` |
| `docs` | `k8s/sova-docs/` |
| `sova-deploy` | `k8s/sova-deploy/` |
| `sova-mocks` | `k8s/sova-mocks/` |

Синхронизация из монорепо: `k8s/scripts/sync-from-monorepo.sh`

## CI/CD через теги

Формат: `{компонент}-v{semver}-{test|stage|prod}` (например `backend-v1.0.4-test`).

```bash
cd k8s
VM_NAME=vm-k8s-git ./scripts/bootstrap-gitea-ci-secrets.sh
VM_NAME=vm-k8s-git ./scripts/bootstrap-gitea-runner.sh
VM_NAME=vm-k8s-app-test REGISTRY_GIT_IP=192.168.252.4 SKIP_K3S_RESTART=1 ./scripts/configure-k3s-registry.sh
./scripts/release-tag.sh backend backend-v1.0.4-test
```

`deploy-gitops` пушит в ветку **`test`/`stage`/`prod`** в `sova-deploy` (не `main`).

## Loki

1. Loki на **Mgmt** (`vm-k8s-mgmt`), namespace `monitoring`.
2. **Promtail** на App TEST — app `promtail-test`.
3. **Grafana** → **Explore** → **Loki** (`{namespace="sova-test"}`).

Если Grafana не стартует (два default datasource) — см. `k8s/scripts/deploy-platform-mgmt.sh` (удаление `loki-loki-stack` CM).

## Донастройка

```bash
./scripts/apply-k3s-test-parity.sh
./scripts/fix-and-verify.sh
```
