chart 0.3.0: AddonClaim FUERA del chart Helm (ADR-066 del IDP)
Bug en chart 0.2.x: AddonClaim era Helm hook pre-install,pre-upgrade weight -10 SIN hook-delete-policy. El default Helm 3 es before-hook-creation → borra el claim en cada upgrade → finalizer cleanup-logical rotaba credenciales + atoraba release en pending-upgrade. Cambios: - helm/APP_NAME/templates/addonclaim.yaml eliminado. - manifests/addonclaim.yaml creado con placeholders sed. - scripts/pre-helm-detach.sh idempotente para migracion v1.0.0 → 1.1.0. - .gitea/workflows/APP_NAME-build.yaml: 2 nuevos steps detach + apply AddonClaim entre kubeconfig y helm upgrade. - Chart.yaml bump 0.2.0 → 0.3.0. - README reescrito (3 pasos workflow + tabla hooks sin AddonClaim + seccion Por que FUERA del chart + opt-out actualizado). - Comentarios stale del AddonClaim como hook -10 limpiados en networkpolicy.yaml, role-db-secret-reader.yaml, job-alembic-upgrade.yaml. ADR-066 del IDP documenta la decision arquitectural completa.
This commit is contained in:
34
manifests/addonclaim.yaml
Normal file
34
manifests/addonclaim.yaml
Normal file
@@ -0,0 +1,34 @@
|
||||
# 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 300s) 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
|
||||
Reference in New Issue
Block a user