Rollback¶
Usar esta página cuando el cutover falla antes de borrar Deployments y PVC embebidos, o cuando el upgrade del operador 3scale 2.16 entra en bucle de preflight. Copia para clonar el repo: docs/runbooks/07-rollback.md (inglés: docs/runbooks/en/07-rollback.md).
Si los recursos embebidos ya no existen, el rollback implica restaurar desde backup (snapshot de PVC, pg_dump, dump.rdb), no volver externalComponents a pods embebidos que ya no están.

Quién opera qué¶
| Namespace | Gestiona el operador | Gestionás vos |
|---|---|---|
3scale |
system-app, APIcast, Zync, zync-database, system-storage |
Secrets de conexión (system-database, system-redis, backend-redis) |
3scale-db |
Nada del operador 3scale tras externalComponents |
PostgreSQL 15, ambos Redis 7, PVC, imágenes, backups, NetworkPolicy |
Ver Motivación para external ≠ off-cluster y qué deja de reconciliar el operador.
Falla el restore de PostgreSQL¶
- Volver
externalComponents.system.databaseafalseen el APIManager. - Reaplicar PostgreSQL embebido en el spec del APIManager si hace falta:
spec.system.database.postgresql: {}. - Restaurar el secret
system-databasedesde el backup (system-database-secret.yaml). - Subir el operador 3scale y
system-postgresqlembebido. - Validar Admin Portal y APIs contra los datos embebidos.
- No borrar el PVC nuevo de PostgreSQL en
3scale-dbhasta confirmar el embebido.
RDB de Redis vacío o falla el restore¶
- Volver
externalComponents.system.redisyexternalComponents.backend.redisafalse. - Restaurar secrets
system-redisybackend-redisdesde backup. - Subir
backend-redisysystem-redisembebidos en 3scale 2.15. - Validar portales y tráfico de API.
- No borrar los PVC nuevos de Redis en
3scale-dbhasta confirmar el embebido.
Si dump.rdb quedó vacío en Git Bash, usar docs/runbooks/02-bis-externalize-redis-windows.md (MSYS_NO_PATHCONV=1, oc exec + cat) y repetir Externalizar Redis.
Bucle de preflight del operador 3scale 2.16¶
Síntomas: el operador 2.16 se instala pero el upgrade de instancia no completa; los chequeos de versión fallan cada ~10 minutos.
- Confirmar PostgreSQL ≥ 15.0 y Redis ≥ 7.2 en los pods externos (Actualizar operador a 2.16).
- Aplicar el GRANT de PostgreSQL 15 si
system-app-prereportapermission denied for schema public— ver GRANT CREATE en schemapublic. - Borrar el Job
system-app-prey dejar que el operador lo recree. - No combinar upgrade de OpenShift y de 3scale en la misma ventana.
- Si las versiones no se pueden corregir a tiempo, quedarse en canal
threescale-2.15hasta cumplir preflight.
Trampa GitOps (Redis)¶
Si Argo CD o RHACM sigue con redis-config.path en kustomize/bases/redis-config-restore, selfHeal: true revierte el modo persistencia tras el cutover. Un restart del pod puede borrar datos de Redis. Pasar a redis-config-persist antes de dar por cerrada la migración. Ver Trampas de GitOps y Operación día 2.