Commit Graph

11 Commits

Author SHA1 Message Date
Irving Lopez
bed2344e0a fix(ci): recovery step rompe first-deploy frío — helm status exit≠0 bajo bash -e -o pipefail aborta antes del case
El step 'Recuperar release Helm atascado' (TENANT-BUILD-NO-CONCURRENCY-GUARD,
6bb3a35) muere en la asignación STATUS=$(helm status ...) cuando el release no
existe (first-deploy frío): helm sale exit≠0, pipefail lo propaga y set -e aborta
el step ANTES del case → deploy job rojo → app nunca instala → welcome 404.
Fix: || true neutraliza el exit → STATUS="" → branch no-op → helm upgrade procede.
Regresión introducida por el propio fix de CI-SHARED-HOME-RACE; detectada en el
re-smoke E2E 2026-06-17.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 22:35:28 -05:00
ilopez
5efd243972 fix(ci): helm collision-proof en helm-deploy (pre-horneado + fallback mktemp único)
Propaga desde coralware/IDP@b31c741 (CI-SHARED-HOME-RACE). El step usa el helm
pre-horneado de la imagen del runner si está presente; el fallback descarga a un
dir único por-run (mktemp), nunca a $HOME/.local/bin ni /tmp/linux-$ARCH
compartidos que con executor=host se pisan entre jobs concurrentes.
2026-06-14 21:17:09 -05:00
Irving Lopez
929a4cefee fix(ci): guard concurrency + recuperación de release pending-install en helm-deploy (TENANT-BUILD-NO-CONCURRENCY-GUARD)
Sin guard `concurrency:` múltiples dispatches del repo del tenant corrían
helm upgrade en paralelo sobre el mismo release → 'another operation in
progress' → release trabado en pending-install → primer deploy nunca completa
(vivido E2E 2026-06-10, tenant 9e6babb0). Causa raíz del first-deploy flaky
(runs 3418/3419).

- concurrency workflow-level (group por repo, cancel-in-progress:false: encola,
  no cancela — cancelar a mitad de helm install es lo que CREA el pending-install)
- step de recuperación: detecta pending-install/uninstalling→uninstall,
  pending-upgrade/pending-rollback→rollback, antes del helm upgrade. Fail-safe:
  solo toca estados pending-*, no toca deployed/failed/inexistente.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Además: añadido el wait de rancher-webhook (RANCHER-WEBHOOK-RACE-RECOVERY) que
faltaba en rest-api — paridad con el template web-backend.
2026-06-14 17:01:56 -05:00
aebd0198d1 fix(fqdn): forma subdominio DOT canónica (ADR-082, completion ADR-067) 2026-06-10 22:12:49 +00:00
Irving López
48e3de576e fix(ci): build-gate skip-graceful si HARBOR_ROBOT_* ausente (GOLDEN-PATH-BUILD-DEPLOY-ORDER-RACE)
E2E 2026-06-05 mostró que en template mínimo la calidad corre ~15s, así que el
build alcanza 'Build y push a Harbor' antes de que tenant-manager fase 1 siembre
(~20s) → run #1 rojo. build-gate (1er job) skipea el build si HARBOR_ROBOT_USER
ausente, simétrico al cluster-gate. El dispatch de fase 2 hace el run completo.
Sync desde coralware/IDP.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 13:42:38 -05:00
Irving López
73f29ec3a4 fix(ci): helm-deploy tolerante a cluster no-listo (GOLDEN-PATH-BUILD-DEPLOY-ORDER-RACE)
Job cluster-gate -> helm-deploy con if needs.cluster-gate.outputs.ready=='true'.
Sin KUBECONFIG_TENANT_B64 (cluster aprovisionando) el deploy queda SKIPPED, no
rojo. tenant-manager (fase 2 deploy-ready) dispara workflow_dispatch al sembrar
el kubeconfig -> run #2 despliega. Sincronizado desde coralware/IDP commit a27e153.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 12:59:29 -05:00
Coralware Template Sync
975673a844 sync: workflow CI self-contained + imagen Harbor t-<short> (ADR-061)
Some checks failed
__APP_NAME__ — build & deploy / Calidad + build + push (push) Failing after 11s
__APP_NAME__ — build & deploy / Helm upgrade --install (push) Has been skipped
Workflow <app>-build.yaml self-contained — sin uses: cross-repo al repo
privado coralware/IDP. requirements-dev.txt inline. image.repository apunta
al proyecto Harbor dedicado del tenant t-<tenant-id-short> (ADR-019 D-03).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 22:08:14 -05:00
Coralware IDP CI
785ccbdc79 chore: migrar Ingress Traefik→NGINX + cascada wildcard cert (sync APERTURA COVE S3)
Some checks failed
__APP_NAME__ — build & deploy / build (push) Failing after 0s
__APP_NAME__ — build & deploy / helm-deploy (push) Has been skipped
2026-05-21 10:04:53 -05:00
1d130d5bed fix: alinear namespace con ADR-054 (cluster-per-tenant)
- workflow: --namespace apps (antes tenant-${TENANT_ID_NODASHES}-apps)

ADR-054 establece namespaces funcionales en cluster tenant. El cluster
RKE2 dedicado ya es el sandbox del tenant.
2026-05-06 18:05:44 -05:00
99544639e6 feat: poblar scaffold inicial del shape rest-api/python
Some checks failed
__APP_NAME__ — build & deploy / build (push) Failing after 0s
__APP_NAME__ — build & deploy / helm-deploy (push) Has been skipped
Reemplaza el placeholder mínimo previo por el scaffold canónico del
golden path rest-api/python (entry point para tier free-trial):

- code/app/main.py — FastAPI con /health (sin DB), /metrics, middleware
  correlation_id, settings Pydantic
- code/tests/ — pytest + httpx TestClient (sin testcontainers, sin Docker)
- helm/APP_NAME/ — chart minimal: Deployment, Service, IngressRoute,
  NetworkPolicy. SIN Job Alembic, SIN ServiceMonitor, SIN claim de BD
- coralware-shape.yaml — shapeVersion 1.0.0, minTier free-trial,
  promotionPath -> web-backend-python cuando se requiera persistencia
- .gitea/workflows/APP_NAME-build.yaml — invoca reusable workflow ADR-038
  + job helm-deploy con KUBECONFIG_TENANT_B64

Diferencias con web-backend/python: sin alembic, sin BD, sin
testcontainers, NetworkPolicy sin acceso a ns-addons.

Placeholders __APP_NAME__, __TIER__, __TENANT_ID__, __TENANT_ID_NODASHES__
serán sustituidos server-side por repo-provisioner.

El openspec/ del golden path NO se sincroniza al repo Gitea (gobernanza
interna de Coralware).

Refs: ADR-027 (Golden Paths), ADR-038 (CI), ADR-053 (referencia anatomía).
2026-05-06 17:57:04 -05:00
3814898082 chore: agregar pipeline CI placeholder
Some checks failed
ci / build (push) Has been cancelled
2026-04-24 23:45:25 +00:00