Instalador DNS local v2 con perfiles genéricos, migración y recuperación #1

Merged
jeserga merged 5 commits from feature/installer-v2 into main 2026-10-30 23:18:02 +00:00
Owner

El instalador anterior podía cambiar el DNS del servidor durante la instalación y no ofrecía una recuperación transaccional completa. Esta versión instala un servicio local en 127.0.0.1:5354 y permite integrar el DNS del sistema como una operación explícita.

Incluye el perfil acordado de principales y respaldos, balanceo por latencia, descarga oficial con SHA-256, prueba aislada del candidato, usuario restringido y configuración impersonal. Admite Debian 12/13 y Ubuntu LTS 22.04/24.04/26.04, x86_64 y ARM64. La caché, los sondeos DoT, los ajustes UDP y las actualizaciones automáticas son opcionales.

Añade dnsproxyctl para diagnóstico, actualización, integración, desintegración, reversión y desinstalación; copias privadas con recuperación de transacciones interrumpidas; detección de conflictos con DNS autoritativos y publicaciones NAT; y adopción conservadora del instalador anterior. La reversión automática se limita a la última operación confirmada; las copias anteriores se conservan para recuperación manual.

Validación:

  • Generación reproducible, bash -n, ShellCheck, compilación sintáctica Python y 42 pruebas unitarias correctas.
  • Ciclo funcional y reinicio en cinco sistemas x86_64 y dos sistemas ARM64 emulados, con DNS real por UDP/TCP.
  • Pruebas ampliadas de IPv6, coexistencia con DNS autoritativo, desinstalación con opciones activadas y reversión de esa desinstalación.
  • Adopción y recuperación de v0.81.0; actualización efectiva desde un binario oficial antiguo dentro del fixture; actualización independiente del motor administrativo.
  • 63 de 63 funciones ejecutadas según las trazas. Es cobertura de funciones, no de líneas ni ramas; las limitaciones de kcov se explican en docs/validation.md.

Las últimas repeticiones reproducen metadatos oficiales conservados para evitar el límite de la API de GitHub; las descargas, sumas SHA-256 y consultas DNS son reales. La matriz se ejecutó durante la implementación y la revisión final se repitió en Ubuntu 24.04. El flujo de CI está preparado; Forgejo todavía no muestra tareas remotas ejecutadas.

Los resultados, alcance y límites están documentados en docs/validation.md, docs/testing.md y docs/migration.md. No se ha desplegado esta versión en producción.

El instalador anterior podía cambiar el DNS del servidor durante la instalación y no ofrecía una recuperación transaccional completa. Esta versión instala un servicio local en 127.0.0.1:5354 y permite integrar el DNS del sistema como una operación explícita. Incluye el perfil acordado de principales y respaldos, balanceo por latencia, descarga oficial con SHA-256, prueba aislada del candidato, usuario restringido y configuración impersonal. Admite Debian 12/13 y Ubuntu LTS 22.04/24.04/26.04, x86_64 y ARM64. La caché, los sondeos DoT, los ajustes UDP y las actualizaciones automáticas son opcionales. Añade dnsproxyctl para diagnóstico, actualización, integración, desintegración, reversión y desinstalación; copias privadas con recuperación de transacciones interrumpidas; detección de conflictos con DNS autoritativos y publicaciones NAT; y adopción conservadora del instalador anterior. La reversión automática se limita a la última operación confirmada; las copias anteriores se conservan para recuperación manual. Validación: - Generación reproducible, bash -n, ShellCheck, compilación sintáctica Python y 42 pruebas unitarias correctas. - Ciclo funcional y reinicio en cinco sistemas x86_64 y dos sistemas ARM64 emulados, con DNS real por UDP/TCP. - Pruebas ampliadas de IPv6, coexistencia con DNS autoritativo, desinstalación con opciones activadas y reversión de esa desinstalación. - Adopción y recuperación de v0.81.0; actualización efectiva desde un binario oficial antiguo dentro del fixture; actualización independiente del motor administrativo. - 63 de 63 funciones ejecutadas según las trazas. Es cobertura de funciones, no de líneas ni ramas; las limitaciones de kcov se explican en docs/validation.md. Las últimas repeticiones reproducen metadatos oficiales conservados para evitar el límite de la API de GitHub; las descargas, sumas SHA-256 y consultas DNS son reales. La matriz se ejecutó durante la implementación y la revisión final se repitió en Ubuntu 24.04. El flujo de CI está preparado; Forgejo todavía no muestra tareas remotas ejecutadas. Los resultados, alcance y límites están documentados en docs/validation.md, docs/testing.md y docs/migration.md. No se ha desplegado esta versión en producción.
Implement transactional standalone DNS proxy installer and management CLI
Some checks failed
installer checks / checks (push) Has been cancelled
e0ee6d4d1a
Validate legacy adoption and retain compatibility updater entrypoint
Some checks failed
installer checks / checks (push) Has been cancelled
ab53f0483e
Harden rollback ownership and validate legacy migration in disposable VMs
Some checks failed
installer checks / checks (push) Has been cancelled
102f53f970
Restore optional settings on uninstall and make rollback ownership explicit
Some checks failed
installer checks / checks (push) Has been cancelled
cd6af0af4a
Document validated platform matrix and exercise real managed binary updates
Some checks failed
installer checks / checks (push) Has been cancelled
installer checks / checks (pull_request) Has been cancelled
b4b45d84e1
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jeserga/dnsproxy!1
No description provided.