109 lines
4.6 KiB
Markdown
109 lines
4.6 KiB
Markdown
# 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)
|