Files
template-web-backend-python/manifests/addonclaim.yaml
iilc 3042c96c6b
Some checks failed
__APP_NAME__ — build & deploy / Calidad + build + push (push) Failing after 1m47s
__APP_NAME__ — build & deploy / Helm upgrade --install (push) Has been skipped
chart wait-for-secret 240s → 360s + helm timeout 7m → 10m
Sync del fix ADDON-PROVISIONER-DB-SECRET-NOT-PUBLISHED (IDP P0).
Ver IDP commit 673c16d para contexto completo.

El init container wait-for-secret del Job Alembic ahora espera 72×5s=360s
(antes 48×5s=240s), dimensionado a 3× el RECONCILE_INTERVAL del
addon-provisioner. El controller bajó su default 300s → 60s en el mismo
parche.

Defense-in-depth: con el controller corriendo a 60s, el delay típico
del Secret publish es ~60-180s. Los 360s del init container absorben
hasta 3 ticks fallidos del controller (cluster recién Ready, kubeconfig
no propagado, etc.).

helm timeout 7m → 10m para que el wait extendido del init container
+ Alembic + StatefulSet ready quepan dentro del comando helm.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 21:19:37 -05:00

35 lines
1.4 KiB
YAML

# AddonClaim — vive FUERA del chart Helm (ADR-066).
#
# El workflow del tenant sustituye los placeholders con `sed` y aplica con
# `kubectl apply -f -` ANTES de `helm upgrade --install`. helm nunca lo
# trackea — al `helm uninstall` no lo borra; al `helm upgrade --install`
# repetido no lo toca. Idempotente.
#
# Lifecycle gobernado por addon-provisioner (CRD idp.coralware.cloud/v1alpha1):
# - reconcilia cada RECONCILE_INTERVAL (default 60s) por TenantProfile.
# - crea BD logica + user + GRANT via Job DDL efimero en cluster tenant.
# - publica Secret `${RELEASE_NAME}-db-creds` en ns `apps`.
# - agrega finalizer `addon-provisioner.idp.coralware.cloud/cleanup-logical`.
#
# Cleanup explicito post `helm uninstall`:
# kubectl delete addonclaim ${RELEASE_NAME}-db -n apps
# (con deletionPolicy: Retain — default — preserva la BD; Event
# OrphanLogicalDatabase. Cambiar a Delete previo para DROP DATABASE.)
apiVersion: idp.coralware.cloud/v1alpha1
kind: AddonClaim
metadata:
name: ${RELEASE_NAME}-db
namespace: apps
labels:
app.kubernetes.io/name: ${RELEASE_NAME}
app.kubernetes.io/part-of: ${RELEASE_NAME}
idp.coralware.cloud/golden-path: web-backend
idp.coralware.cloud/golden-path-lang: python
spec:
addonType: mariadb
databaseName: ${DATABASE_NAME}
user:
permissions: rw
secretName: ${RELEASE_NAME}-db-creds
deletionPolicy: Retain