Clone
1
Politica Actualizaciones
groales edited this page 2025-11-30 12:10:13 +01:00

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

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