|
9 | 9 | Основные: |
10 | 10 | - `task up` — полный setup (init + bootstrap + app-of-apps) |
11 | 11 | - `task destroy` — удалить инфраструктуру |
| 12 | +- `task status` — проверить статус ArgoCD приложений |
| 13 | +- `task argocd-password` — получить пароль admin |
| 14 | +- `task argocd-port-forward` — проброс порта ArgoCD UI |
| 15 | + |
| 16 | +Sealed Secrets: |
| 17 | +- `task seal:openrouter` — создать SealedSecret для OpenRouter API |
| 18 | +- `task seal:github` — создать SealedSecret для GitHub репо |
| 19 | +- `task seal:postgree` — создать SealedSecret для PostgreSQL |
12 | 20 |
|
13 | 21 | ## Переменные окружения |
14 | 22 |
|
15 | 23 | Хранятся в `.env` (загружается автоматически через dotenv в Taskfile): |
16 | 24 | - `TF_VAR_timeweb_token` — токен Timeweb Cloud |
17 | 25 | - `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` — для S3 backend |
| 26 | +- `OPENROUTER_API_KEY` — ключ OpenRouter API |
| 27 | +- `GITHUB_PAT` / `GITHUB_USERNAME` / `GITHUB_REPO_URL` — для ArgoCD Image Updater |
| 28 | +- `CLOUDFLARE_TOKEN` — токен Cloudflare API для cert-manager и external-dns |
18 | 29 |
|
19 | 30 | ## Структура |
20 | 31 |
|
21 | 32 | ``` |
22 | 33 | terraform/timeweb/ # Terraform (k8s cluster) |
23 | | -bootstrap/argocd/ # ArgoCD Helm values |
| 34 | +bootstrap/argocd/ # ArgoCD Helm values (self-managed ArgoCD Application) |
24 | 35 | scripts/ # Вспомогательные скрипты для task |
| 36 | + - argocd-status.sh # Проверка статуса ArgoCD |
| 37 | + - seal.sh # Создание SealedSecrets |
25 | 38 | Taskfile.yaml # Все команды здесь |
26 | 39 | ``` |
27 | 40 |
|
| 41 | +## Kubeconfig |
| 42 | + |
| 43 | +После `task init` kubeconfig сохраняется в `~/.kube/timeweb-config`. |
| 44 | +Taskfile автоматически использует этот путь через `KUBECONFIG` env. |
| 45 | + |
| 46 | +## ArgoCD доступ |
| 47 | + |
| 48 | +- URL: https://argo.syncjob.ru |
| 49 | +- User: admin |
| 50 | +- Password: `task argocd-password` |
| 51 | + |
| 52 | +## Golden Install — важные настройки |
| 53 | + |
| 54 | +При чистой установке с нуля учитывай следующие моменты: |
| 55 | + |
| 56 | +1. **ArgoCD Ingress** — управляется через GitOps в `app-poly-gitops-k8s` (ingress-argo.yaml), не через Helm chart. В `values.yaml` отключён `server.ingress.enabled: false`. |
| 57 | + |
| 58 | +2. **ArgoCD insecure mode** — сервер работает в HTTP режиме (`server.insecure: true`). Ingress НЕ должен иметь аннотацию `backend-protocol: HTTPS`. |
| 59 | + |
| 60 | +3. **Cloudflare token secret** — ключ в секрете должен быть `CF_API_TOKEN` (не `cloudflare-api-token`). Используется cert-manager и external-dns. |
| 61 | + |
| 62 | +4. **Reflector аннотации** — для репликации секретов между namespaces (например cloudflare-token из external-dns в cert-manager). |
| 63 | + |
| 64 | +5. **Sync Waves** — критичны для CRD-зависимых ресурсов. Операторы (sync-wave: "1") должны деплоиться раньше их CR (sync-wave: "3"+). |
| 65 | + |
28 | 66 | ## Связанные репозитории |
29 | 67 |
|
30 | | -- `app-poly-gitops-k8s` — GitOps манифесты (ArgoCD Applications) |
31 | | -- `app-poly-gitops-helm` — Helm charts |
32 | | -- `app-poly-gitops-fastapi` — FastAPI сервис |
| 68 | +- `app-poly-gitops-k8s` — GitOps манифесты (ArgoCD Applications, kustomize overlays) |
| 69 | +- `app-poly-gitops-helm` — Helm charts для приложений |
| 70 | +- `app-poly-gitops-fastapi` — FastAPI сервис (chat-api) |
0 commit comments