Files
docs/infrastructure/test-contour/guides/argocd.md
T

106 lines
3.6 KiB
Markdown

# ArgoCD: приложения test-контура
ArgoCD — GitOps UI: следит за `sova-deploy` и `sova-mocks`, раскатывает Helm charts в кластер.
Краткая теория: [sova-root и data-test](../argocd-apps).
## 1. Вход
http://argocd.sova.local — логин **admin**, пароль:
```bash
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath='{.data.password}' | base64 -d && echo
```
![ArgoCD login](../screenshots/07-argocd-login.png)
## 2. Список Applications
На главной — все приложения test-контура:
| Application | Что деплоит | Есть URL? |
|-------------|-------------|-----------|
| `backend-test` | Symfony API | api.test.sova.local |
| `adminpanel-test` | React admin | admin.test.sova.local |
| `cabinet-test` | Symfony ЛК | cabinet.test.sova.local |
| `docs-test` | VitePress docs | docs.sova.local |
| `mocks-test` | WireMock, Mailpit | internal |
| `data-test` | PostgreSQL, MySQL, Redis | нет (БД) |
| `sova-root` | другие Application CR | нет (meta) |
![Applications list](../screenshots/08-argocd-applications.png)
**Sync Status `Unknown`** часто нормален для local — смотрите **Health** и pod'ы в namespace.
## 3. Пользовательское приложение: `backend-test`
Откройте карточку → дерево ресурсов: Deployment, Service, Ingress, CronJob, Secret.
![backend-test detail](../screenshots/09-argocd-backend-test.png)
### Sync вручную
Кнопка **Sync****Synchronize** — подтянуть последний `main` из Gitea.
### Terminal в pod (миграции, отладка)
1. Deployment `backend` → Pod
2. Container **php-fpm** → иконка **Terminal**
3. Пример: `php bin/console cache:clear --env=prod`
Exec включён в `platform/argocd/values-test.yaml` (`exec.enabled: true`).
### CronJob в UI
Фильтр по label `app.kubernetes.io/component: console` — видны `backend-sync-doctors`, `backend-clear-schedule-cache` и т.д.
## 4. `sova-root` — app-of-apps
**Не приложение с URL.** Только создаёт/обновляет другие Application из `argocd/apps/`.
![sova-root](../screenshots/10-argocd-sova-root.png)
«Войти» сюда нельзя — открывайте дочерние apps (`backend-test`, `docs-test`, …).
## 5. `data-test` — слой данных
PostgreSQL (backend + cabinet), MySQL Bitrix, Redis. **Без Ingress.**
![data-test](../screenshots/11-argocd-data-test.png)
Подключение из pod'ов приложений:
```
postgresql-test.sova-data-test.svc.cluster.local:5432
mysql-bitrix-test.sova-data-test.svc.cluster.local:3306
redis-test-master.sova-data-test.svc.cluster.local:6379
```
Инициализация schema/seed — Job `db-init` (отдельный чарт), не через браузер.
## 6. Типичный цикл после CI
```mermaid
sequenceDiagram
participant Dev as Разработчик
participant Gitea as Gitea tag
participant CI as Actions
participant Deploy as sova-deploy
participant Argo as ArgoCD
participant K8s as Kubernetes
Dev->>Gitea: release-test-tag.sh
Gitea->>CI: push tag
CI->>Deploy: bump values-test.yaml
Argo->>Deploy: poll main
Argo->>K8s: helm upgrade
```
1. Push тега в Gitea
2. CI обновляет `apps/backend/values-test.yaml`
3. ArgoCD auto-sync (или Sync вручную)
4. Новый pod с образом из registry
Дальше: [Grafana, Prometheus, Loki](./monitoring).