Skip to content

OBJ-EDGE-DOCS-001: Publicar docs.wetopi.net en internet con HTTPS funcional vía edge WAN v1

Objective ID: OBJ-EDGE-DOCS-001 Status: active Drafted by: wetopi-lead (fallback degradado documentado — wetopi-architect GPT-5.6 en 429, cooldown ~23:55Z; el approver valida el draft en el gate de review) Owned by: wetopi-lead (OWN)

Outcome

https://docs.wetopi.net responde desde internet con certificado Let's Encrypt production válido, sirviendo la documentación estática de la plataforma, a través de los dos nodos edge WAN (rke-wan01/rke-wan02, Traefik directo según ADR-0006), con basic auth operator-only si el operador lo mantiene para v1. El DNS público deja de apuntar al host legacy .76 y resuelve round-robin a 92.222.245.193/.194. El servicio se valida públicamente desde fuera del clúster con los mismos probes usados por argo.wetopi.net.

Why

  • Es el primer servicio internet-facing de la plataforma y el caso de uso de la ventana v1 del ADR-0006 (docs + argo, operator-only).
  • Cierra los nodos WAN/edge pendientes que hoy están bloqueados en cards (F2 artifacts, hardening) — sin ellos la ruta no es segura ni auditable.
  • Es el pilot Objective del harness V3.1 (runbook Phase 8): ejercita Architect → OBJ.md → Git → Lead → workers → audit → DONE de punta a punta sin tocar producción destructivamente.

Decided architecture (constraints del diseño ya aprobado)

  1. Edge WAN v1 según ADR-0006 (accepted): Traefik directo en WAN IPs, sin capa L4; DNS round-robin entre .193/.194.
  2. TLS vía cert-manager + Let's Encrypt production (patrón ya probado en argo.wetopi.net — F3 staging Ready y prod OK verificado).
  3. Landing de artefactos F2 (infra#21): edge_lb nftables DNAT + HelmChartConfig Traefik values + Gateway API wetopi-edge — gated por review independiente antes del merge (t_61c83c2a).
  4. Hardening ops_kubectl (infra#19): sin default-mutación, kubeconfig 0600 VIP-only, fixture — gated por re-review (t_7f2e424b chain).
  5. Infra#17 rebase+README: sin conflicto con main tras merge de #16.

Acceptance criteria (todos con verificación)

# AC Verificación
AC1 Infra PRs bloqueados aterrizan: #17 rebase limpio, #19 hardening, #21 F2 artifacts — todos merged con review gate gh pr view state=merged para 17/19/21 + verdicts approver
AC2 Traefik en rke-wan01/02 sirve ruta docs con TLS LE prod, sin errores de cert ni 5xx en 10 requests curl -sSI https://docs.wetopi.net → 200/401 con SAN válido desde red externa; openssl s_client SAN=docs.wetopi.net
AC3 DNS público: docs.wetopi.net → A records .193 + .194 (round-robin), sin registro legacy .76 dig docs.wetopi.net muestra solo .193/.194
AC4 Basic auth operator-only activo si el operador lo confirma para v1 (401 sin creds / 200 con creds) — decisión del operador probe público 401/200
AC5 docs estáticos desplegados desde el repo docs (mkdocs build) vía Argo/GitOps al namespace edge kubectl -n <edge-ns> get deploy,pod Ready; path / sirve el índice
AC6 Validación pública completa desde fuera: HTTPS + cert prod + contenido real script de probe (patrón t_8ac06401) verde 2× (uno por edge node)

Verification contract

  • Todo AC se verifica con salida de comando real registrada en el ledger.
  • DNS cutover y applies de infra: cards ops autorizadas + hard gate operador explícito para el cutover .76 → .193/.194.
  • TLS normal siempre; sin verify=False; secretos nunca en Git.

Constraints

  • ADR-0006 ventana v1: sin capa L4; docs + argo operator-only.
  • La ruta de docs solo puede aterrizar TRAS los merges gated (AC1).
  • No modificar tfstate/checkout de tofu fuera del patrón aprobado (state canónico local, applies solo via cards ops).
  • Ceph/CSI inputs (t_8eee26e4) quedan FUERA de este Objective — no son prerrequisito para docs estáticos.

Stop conditions

  • Review gate de infra#21/#19 devuelve REQUEST_CHANGES no resolvible en 2 rondas → BLOCK con evidencia, escalar a approach review.
  • LE prod rate-limit o fallo de emisión → documentar, no workaround sin revisión.
  • Cualquier hallazgo de seguridad en los F2 artifacts → STOP hasta remediar.
  • Si el operador revoca la decisión de ventana v1 → abandon con rollback DNS a .76.

Review boundaries

  • Review independiente OBLIGATORIA: merges infra#17/#19/#21 (approver), y el draft de este Objective (pilot V3.1 — el approver valida el draft como parte del pilot, no como gate de producción).
  • Build ≠ Apply: el DNS cutover es apply ops con hard gate humano.
  • Audit Lead (PASS/WARN/FAIL) en cada entrega de worker.

Out of scope

  • Capa L4 edge (VRRP/IPVS/DSR) — futura, post-ventana v1.
  • Ceph CSI / PVC (t_8eee26e4), rotación de credenciales legacy (t_b904ba3f).
  • wetopi.com / otros dominios — solo wetopi.net.
  • Gateway Telegram del architect (montaje aparte, en curso).

Promotion matrix (pilot V3.1)

Este Objective es el pilot Phase 8. Su éxito no promociona V3.1 a governance standing por sí solo — requiere también Phase 9 (metrics) y el veredicto del operador (Phase 10 cutover).