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