Rollback¶
Usar esta página cuando el cutover falla antes de que system-app-pre termine bien en 2.16. Hasta ese momento, dejar los Deployments embebidos en 0 réplicas y conservar sus PVC. Después de ese Job, las escrituras nuevas existen solo en la base externa. El rollback es un restore del dump fresco. No hay downgrade de OLM. Copia para clonar el repo: docs/runbooks/07-rollback.md (inglés: docs/runbooks/en/07-rollback.md).
Si los PVC embebidos ya se borraron, el rollback es un restore desde backup (pg_dump, dump.rdb), no volver externalComponents a pods que ya no existen.

Quién opera qué¶
| Namespace | Gestiona el operador | Quien opera |
|---|---|---|
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.