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

3.6 KiB

ArgoCD: приложения test-контура

ArgoCD — GitOps UI: следит за sova-deploy и sova-mocks, раскатывает Helm charts в кластер.

Краткая теория: sova-root и data-test.

1. Вход

http://argocd.sova.local — логин admin, пароль:

kubectl -n argocd get secret argocd-initial-admin-secret \
  -o jsonpath='{.data.password}' | base64 -d && echo

ArgoCD login

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

Sync Status Unknown часто нормален для local — смотрите Health и pod'ы в namespace.

3. Пользовательское приложение: backend-test

Откройте карточку → дерево ресурсов: Deployment, Service, Ingress, CronJob, Secret.

backend-test detail

Sync вручную

Кнопка SyncSynchronize — подтянуть последний 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

«Войти» сюда нельзя — открывайте дочерние apps (backend-test, docs-test, …).

5. data-test — слой данных

PostgreSQL (backend + cabinet), MySQL Bitrix, Redis. Без Ingress.

data-test

Подключение из 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

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.