Files
infra/docs/ai/legacy-warning.md
T
DmitryandClaude Sonnet 5 d2e1e6876a 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
2026-09-03 07:06:10 +03:00

4.6 KiB
Raw Blame History

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.