Files
docs/infrastructure/local-k8s/argocd-contours.md
T
Valery Petrov a71fee4187
docs-ci-cd / parse-tag (push) Successful in 28s
docs-ci-cd / test (push) Failing after 32m37s
docs-ci-cd / build-and-push (push) Has been skipped
docs-ci-cd / deploy-gitops (push) Has been skipped
issues/27: add argocd and issues-27 branch docs
2026-06-03 18:40:03 +03:00

109 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Argo CD: `test-contour` и `promtail-test`
На Edge-кластере (`vm-k8s-edge`) в UI Argo CD часто видны два приложения с похожими именами. Это **не два «контура» окружения**, а **зонтик** и один из его **дочерних** релизов.
## Схема (локальная 4-VM ферма)
```mermaid
flowchart TB
subgraph edge [Edge — Argo CD]
TC[test-contour<br/>App-of-Apps]
PT[promtail-test<br/>Application]
BE[backend-test]
DO[docs-test]
TC --> PT
TC --> BE
TC --> DO
end
subgraph apptest [app-test — VM App]
PR[Promtail DaemonSet]
API[backend / cabinet / …]
PT -.->|sync| PR
BE -.->|sync| API
end
subgraph mgmt [Mgmt — Loki]
LOKI[Loki]
end
PR -->|логи| LOKI
```
| Уровень | Где крутится | Что делает |
|---------|--------------|------------|
| **Argo CD** | Edge | Читает Git `sova/sova-deploy`, ветка **`test`** |
| **test-contour** | Edge, NS `argocd` | Создаёт дочерние `Application` из `argocd/child-apps/test/` |
| **promtail-test**, **backend-test**, … | CR на Edge | Каждый указывает **куда** деплоить workload |
| **Поды приложений** | **app-test** | Реальные сервисы в `sova-test`, `monitoring`, … |
---
## `test-contour` — зонтик (App-of-Apps)
**Назначение:** одна точка входа GitOps для всего test-контура. Синхронизирует папку:
`sova-deploy/argocd/child-apps/test/`
**Откуда в UI:**
| Поле | Значение (локально) |
|------|---------------------|
| Path | `argocd/child-apps/test` |
| Destination | **in-cluster** (сам Edge) |
| Namespace | **`argocd`** (только CR приложений, не поды API) |
| Ветка | **`test`** |
| Repo URL (локально) | `http://<IP Git VM>:30300/sova/sova-deploy.git`**не** `git.sova.local` (из pod ArgoCD DNS не видит hosts Mac) |
**Дочерние Application (примеры):** `backend-test`, `adminpanel-test`, `cabinet-test`, `docs-test`, `mocks-test`, `data-test`, **`promtail-test`**.
**Типичная ошибка (исправлена):** `InvalidSpecError` — проект `sova` не разрешал destination `argocd` на Edge. В `argocd/projects/sova-project.yaml` добавлено разрешение namespace `argocd`.
**Локальный bootstrap:** при `LOCAL_NONPROD=1` скрипт `bootstrap-argocd-multicluster.sh` ставит **только** `test-contour`, без ручного `kubectl apply` каждого child-app (иначе дубли в UI).
---
## `promtail-test` — агент логов
**Назначение:** Helm-релиз **Promtail** на кластере **`app-test`**, namespace **`monitoring`**.
**Зачем отдельно виден в UI:** это **дочерний** Application из той же папки, что подхватывает `test-contour`. В списке Argo CD он на одном уровне с зонтиком — так устроен App-of-Apps.
**Что делает Promtail:**
- читает логи подов (в т.ч. `sova-test`);
- отправляет в **Loki** на Mgmt (`LOKI_PUSH_URL`, порт 3100);
- смотреть в **Grafana → Explore → Loki**, запрос `{namespace="sova-test"}`.
**Почему часто Healthy, когда `test-contour` был красным:** `promtail-test` деплоится на **`app-test`**, что разрешено в проекте `sova` с самого начала. Ошибка была только у **родителя** (`test-contour`), а не у Promtail.
---
## Как обновить / починить
```bash
cd k8s
# 1. Залить sova-deploy (ветка test) в Gitea
cd sova-deploy && git checkout test
git add argocd/
git commit -m "fix(argocd): test-contour — project argocd NS, repoURL Git VM IP"
# push в Gitea (см. scripts в k8s/)
# 2. Применить проект и test-contour на Edge
export KUBECONFIG=~/.kube/config-k8s-edge
LOCAL_NONPROD=1 GITEA_REPO_URL=http://192.168.252.4:30300 \
LOKI_PUSH_URL=http://<MGMT_IP>:3100/loki/api/v1/push \
./scripts/bootstrap-argocd-multicluster.sh ~/.kube/config-k8s-app-test
# 3. Синхронизация
argocd app sync test-contour --force
```
---
## Связанные документы
- [Запуск 4 VM](./local-nonprod)
- [Доступы](./access)
- [ArgoCD в test-контуре (k3s)](../test-contour/guides/argocd)
- [ArgoCD: sova-root и data-test](../test-contour/argocd-apps)