Wiki: añadir Política de Actualizaciones (criterios, flujo, rollback, auditoría)
80
Politica-Actualizaciones.md
Normal file
80
Politica-Actualizaciones.md
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user