docs: AI project context (docs/ai) and repository documentation refresh
- docs/ai/: stable, repo-verified context - README, architecture, tech-stack, edge-cases, plan (confirmed active work only), migration-tofu (the blue-green OpenTofu migration runbook and per-service findings), legacy-warning, links. - AGENTS.md: slimmed to a working contract that points at docs/ai instead of restating it; CLAUDE.md is an adapter that @-includes it. - README.md, ansible/README.md, ansible/roles/README.md, roles/lxc_docker_host/README.md: bring wording in line with the current control plane (Makefile entry point, registry, tofu, memoir-bot gone). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012uoq5AVK8mkBgg83Mq6o5V
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
5e27ba2513
commit
d2e1e6876a
@@ -0,0 +1,75 @@
|
||||
# Legacy и fragile boundaries
|
||||
|
||||
Этот файл не является backlog. Он предотвращает случайную замену active behavior
|
||||
более новым, старым или внешне похожим кодом без отдельного решения.
|
||||
|
||||
## Исторический Archive
|
||||
|
||||
- Path: `archive/2026-07-proxmox-migration/`.
|
||||
- Evidence: каталог содержит прежние NixOS, Docker Compose, GitOps, ZeroTier и другие
|
||||
pre-Ansible материалы.
|
||||
- Constraint: не редактировать и не возвращать файлы из archive как active config.
|
||||
- Decision: accepted historical reference; active implementation создается в `ansible/`.
|
||||
|
||||
ZeroTier удален из active infrastructure 11 июля 2026 года. Active inventory, roles
|
||||
и playbooks его не содержат.
|
||||
|
||||
## Frozen Monitoring Stack
|
||||
|
||||
- Paths: `ansible/roles/monitoring_server/`, `monitoring_exporter/`,
|
||||
`monitoring_blackbox/`, `ansible/playbooks/monitoring.yml`.
|
||||
- Evidence: `ansible/Makefile` помечает target `monitoring` как frozen и требует
|
||||
`CONFIRM=1`; role `uptime_kuma` останавливает `homelab-monitoring`.
|
||||
- Constraint: наличие кода не означает, что Prometheus stack активен.
|
||||
- Decision: defer; Uptime Kuma является active monitoring до нового решения.
|
||||
|
||||
## Prototype Roles
|
||||
|
||||
- Paths: `ansible/roles/lxc_docker_host/`, `ansible/roles/compose_service/`.
|
||||
- Evidence: `ansible/roles/README.md`. `compose_service` с 2026-09-02 вызывается из
|
||||
`playbooks/ru-vps-base.yml` (стек Caddy); `lxc_docker_host` по-прежнему не вызывается
|
||||
ни одним playbook.
|
||||
- Constraint: не считать direct `pve-*.yml` dead code и не мигрировать service как
|
||||
opportunistic cleanup. Миграция меняет runtime, pull, firewall и recreation semantics.
|
||||
- Decision: defer; выполнять отдельно по одному service с backup и health validation.
|
||||
|
||||
Empty `ansible/roles/base`, `docker` и `ufw` являются остатками ранней структуры, а
|
||||
не active reusable roles.
|
||||
|
||||
## Duplicated Service Facts
|
||||
|
||||
- Paths: service registry, `pve-*.yml`, `pve-backup-jobs.yml`, backup audit defaults,
|
||||
monitoring templates, status playbook и SSH config.
|
||||
- Evidence: реестр потребляют reverse proxy, `ru-vps-base.yml`, backup jobs, backup
|
||||
audit и `validate.yml`; `pve-*.yml`, `status.yml`, monitoring и SSH config всё ещё
|
||||
дублируют значения.
|
||||
- Constraint: изменение VMID/IP/image/backup/monitoring требует сверки оставшихся
|
||||
consumers. `make validate` ловит расхождение реестра с Proxmox по hostname, IP,
|
||||
cores, memory и swap, но не по образам, бэкапам и SSH config.
|
||||
- Decision: accepted risk до отдельной migration/validator задачи.
|
||||
|
||||
## Partial Ownership
|
||||
|
||||
- Caddy installation/container lifecycle на `ru-vps` и provisioning PBS CT 120 не
|
||||
управляются репозиторием.
|
||||
- Hermes playbook подготавливает runtime/proxy, но не deploy самого Hermes application.
|
||||
- UI state Uptime Kuma и AdGuard не полностью декларативен.
|
||||
- Constraint: не заявлять полную reproducibility этих компонентов без проверки
|
||||
внешнего состояния.
|
||||
|
||||
## Compatibility Layers
|
||||
|
||||
- Gitea/Vaultwarden `caddy_legacy_regexp` удаляет старые Caddy sections. Не удалять
|
||||
поля до подтвержденного успешного reverse-proxy migration run.
|
||||
- Grimmory OPDS/KOReader headers и compression behavior являются device compatibility
|
||||
contract, а dual v1/v2 API handling MCP соответствует deployed Grimmory v3.2.4.
|
||||
- OpenVPN использует static-key configuration. OpenVPN 2.6 считает этот режим
|
||||
deprecated; миграция на TLS требует отдельного network change plan.
|
||||
|
||||
## Superseded Planning Documents
|
||||
|
||||
- `current-task.md` - исторический Prometheus plan, не active task.
|
||||
- `tasks/grimmory-deployment-plan.md` - смешивает план и deployment record; текущее
|
||||
состояние проверять по Ansible.
|
||||
- Constraint: не выполнять оставшиеся пункты этих документов автоматически.
|
||||
- Decision: preserve as history; новые approved tasks записывать в `plan.md`.
|
||||
Reference in New Issue
Block a user