Wiki: añadir Política de Actualizaciones (criterios, flujo, rollback, auditoría)

2025-11-30 12:10:13 +01:00
parent a43a848bb9
commit 00973014be

@@ -0,0 +1,80 @@
# Política de Actualizaciones
Esta política define qué contenedores se actualizan automáticamente con Watchtower y cuáles requieren revisión manual.
## Clasificación de Servicios
| Categoría | Ejemplos | Estrategia |
|-----------|----------|-----------|
| Críticos (estado + clientes) | Base de datos, Nextcloud, Vaultwarden | Manual (no auto) |
| Importancia media | Portainer, Paneles internos | Auto con etiqueta + monitorización |
| Baja criticidad / stateless | Reverse proxies, utilidades, exportadores | Auto (enable=true) |
## Criterios para AUTO (enable=true)
- Contenedor es stateless o reconstruible fácilmente.
- Cambios de imagen backward compatible (semantic versioning respetado).
- Rollback sencillo (tag previo disponible).
- Ventana de mantenimiento definida (horario cron 03:30).
## Criterios para EXCLUSIÓN (enable=false)
- Datos críticos sin snapshot reciente.
- Imagen con cambios mayores (major version) pendientes de pruebas.
- Dependencias delicadas (plugins, integraciones externas).
## Flujo de Decisión
1. Clasifica servicio: crítico / medio / bajo.
2. ¿Tiene backups o es stateless? Si NO y crítico → excluir.
3. ¿Versiones recientes probadas en staging? Si NO → excluir temporalmente.
4. Etiqueta con `enable=true` solo tras cumplir condiciones.
## Procedimiento de Revisión Semanal
- Lunes: revisar logs de Watchtower (`docker logs watchtower --tail=200`).
- Validar que no hubo reinicios fallidos.
- Añadir o retirar etiquetas según incidencias.
## Rollback Rápido
1. Identificar imagen previa: `docker image ls <repo>`.
2. Forzar pull de versión estable anterior: `docker pull repo:tag_anterior`.
3. Recrear contenedor: `docker compose up -d --force-recreate <servicio>`.
4. (Opcional) Quitar etiqueta auto hasta resolver.
## Versionado y Tags Recomendados
- Evitar `latest` en servicios críticos; usar tags fijos (`1.2.3`).
- Para servicios auto-actualizados, preferir tags de rama estable (`1.2`, `stable`) evaluando changelog.
## Uso de Staging (si disponible)
- Replicar compose en entorno staging.
- Activar etiqueta auto primero allí.
- Observar 24h y luego promover a producción.
## Notificaciones
- Configurar Shoutrrr para recibir evento de actualización crítica.
- Nivel recomendado: `info` y reportes finales.
## Auditoría Mensual
- Exportar lista de contenedores etiquetados: `docker inspect --format='{{.Name}} {{index .Config.Labels "com.centurylinklabs.watchtower.enable"}}' $(docker ps -q)`.
- Revisar que clasificación sigue vigente.
## Ejemplo de Etiquetado Mixto
```yaml
services:
traefik:
labels:
- "com.centurylinklabs.watchtower.enable=true"
portainer:
labels:
- "com.centurylinklabs.watchtower.enable=true"
nextcloud:
labels:
- "com.centurylinklabs.watchtower.enable=false" # crítico, actualizar manual
db-postgres:
labels:
- "com.centurylinklabs.watchtower.enable=false" # requiere backups previos
```
## Buenas Prácticas Generales
- Documentar excepciones (por qué un servicio está excluido).
- Revisar changelog antes de permitir major updates.
- Mantener automatización para lo repetitivo y foco humano en lo crítico.
---
Última actualización: Nov 2025