From c8feac5ca705a3437f91b8ab00a757a84f77ac87 Mon Sep 17 00:00:00 2001 From: Irving Lopez Date: Sun, 14 Jun 2026 17:11:35 -0500 Subject: [PATCH] =?UTF-8?q?docs(readme):=20nota=20de=20serializaci=C3=B3n/?= =?UTF-8?q?recuperaci=C3=B3n=20del=20deploy=20+=20fix=20drift=20timeout=20?= =?UTF-8?q?7m->10m?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Espeja el fix de CI del repo IDP (TENANT-BUILD-NO-CONCURRENCY-GUARD). Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c3baa6..8d238de 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,11 @@ Alembic, frontend estático en `/demo`, Helm chart, workflow de CI y manifiesto de contrato con la plataforma. Cuando se materializa este template para tu tenant, los placeholders en mayúsculas se sustituyen automáticamente. +> **Página de bienvenida:** al provisionarse, tu plataforma sirve una página de +> bienvenida en `/` con instrucciones de uso. **En cuanto hagas tu primer +> `commit` + `push`, tu desarrollo reemplaza esa página** — define tu propio +> handler de `/` (en `code/app/main.py` o en `code/app/routers/`). + > **Contrato del shape:** ver `coralware-shape.yaml` en la raíz. Define los > endpoints obligatorios, la BD esperada y la versión del shape. No elimines > ese archivo — la plataforma lo lee. @@ -60,7 +65,13 @@ El workflow del tenant sigue este orden en cada `git push`: |------|--------|--------| | 1 | `bash scripts/pre-helm-detach.sh` | Migración chart 1.0.0 → 1.1.0: si el AddonClaim tiene labels/annotations de un release Helm previo, las quita. Idempotente: skip si no aplica. Sunset tras ~2 semanas. | | 2 | `kubectl apply -f manifests/addonclaim.yaml` (con `sed` para placeholders) | Crea o actualiza el `AddonClaim`. Idempotente. `addon-provisioner` empieza a reconciliar en paralelo. | -| 3 | `helm upgrade --install ./helm/ --wait --timeout 7m` | Aplica el chart Helm. Los hooks `pre-install,pre-upgrade` corren en orden de `hook-weight` (ver tabla abajo). El Job Alembic espera al Secret. | +| 3 | `helm upgrade --install ./helm/ --wait --timeout 10m` | Aplica el chart Helm. Los hooks `pre-install,pre-upgrade` corren en orden de `hook-weight` (ver tabla abajo). El Job Alembic espera al Secret. | + +> **Deploys serializados + auto-recuperación:** el workflow tiene un guard +> `concurrency` por repo, así que dos `git push` seguidos se **encolan** (no corren +> el `helm upgrade` en paralelo). Si un deploy quedó a medias (cancelado), el +> siguiente run **detecta y recupera** el release atascado (`pending-install` → +> reinstala; `pending-upgrade` → rollback) antes de reintentar. El chart usa hooks `pre-install,pre-upgrade` con `hook-weight` para garantizar el orden de creación de SUS recursos (sin AddonClaim — ese vive fuera).