Decomisión de openclaw

- Elimina manifests openclaw/ y argocd/application-openclaw.yaml
- backup-system: fuera del backup diario, crown-jewels, expected y retain;
  fuera el mount hostPath del cronjob y la fila de RESTORE.md
- monitoring: eliminado panel openclaw del dashboard homelab-overview
- n8n: openclaw y polymarket fuera del health-check (espejo del workflow vivo)
- cluster-wide/namespaces.yaml: fuera openclaw + añadidos separadores '---'
  que faltaban (el archivo era un único doc YAML donde ganaba el último ns)

Cluster ya limpio: app ArgoCD, namespace, PVC/PV, RBAC cluster-scoped y
monitor de Uptime Kuma. Backup final: ~/decommissioned/openclaw-final-2026-07-18.tar.gz

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 14:57:46 +00:00
co-authored by Claude Fable 5
parent d011a4c50f
commit e00c520a26
21 changed files with 17 additions and 796 deletions
-1
View File
@@ -61,7 +61,6 @@ umami-pg, roswell-pg (la BD corre en n97) y `/opt/reddit-intel` + Docker.
| Artefacto | Cómo restaurar |
|---|---|
| `n8n_*.tar.gz` | Extraer en `/data/n8n` (hostPath master), reiniciar deploy. Incluye encryptionKey. |
| `openclaw_*.tar.gz` | Extraer en el PVC `openclaw-pvc` (pod parado). |
| `homarr_*.tar.gz` | `db/db.sqlite` → PVC db; `redis/dump.rdb` → PVC redis. |
| `authentik-pg_*.sql.gz` | `gunzip -c \| kubectl exec -i postgresql-0 -n authentik -- psql -U authentik authentik` (BD vacía primero). |
| `grafana_*.tar.gz` | `grafana.db` → PVC de grafana, reiniciar pod. |
+5 -11
View File
@@ -4,7 +4,7 @@ data:
#!/bin/bash
# Backup diario del homelab. Imagen: bitnami/kubectl (bash GNU, corre en chemavx-k8).
# Regla: cada artefacto se valida (gzip -t + tamaño mínimo) — un tar vacío
# como el bug histórico de openclaw (104 bytes) cuenta como FALLO y el job sale 1
# (bug histórico: tar de 104 bytes de una app ya decomisada) cuenta como FALLO y el job sale 1
# (→ alerta Grafana homelab-backup-job-failed → Telegram).
set -u
@@ -59,12 +59,6 @@ data:
tar -czf "$BACKUP_DIR/n8n_${DATE}.tar.gz" -C /data/n8n . 2>/dev/null
check "$BACKUP_DIR/n8n_${DATE}.tar.gz" 10000000 n8n
# === openclaw (PVC local-path; el hostPath /data/openclaw era un stub vacío) ===
log "Backing up openclaw..."
OC=$(pvpath openclaw openclaw-pvc)
tar -czf "$BACKUP_DIR/openclaw_${DATE}.tar.gz" -C "$OC" . 2>/dev/null
check "$BACKUP_DIR/openclaw_${DATE}.tar.gz" 50000 openclaw
# === homarr ===
log "Backing up homarr..."
HOMARR_DB=$(pvpath homarr homarr-db-pvc)
@@ -189,7 +183,7 @@ data:
\( -name "${1}_*.tar.gz" -o -name "${1}_*.sql.gz" -o -name "${1}_*.db.gz" \) | \
sort | head -n -"$2" | xargs -r rm -f
}
for p in n8n openclaw homarr authentik-pg grafana k3s-db gitea \
for p in n8n homarr authentik-pg grafana k3s-db gitea \
ghost-en-db ghost-en-content zona-exclusion-db zona-exclusion-content \
researchowl roswell-pg umami-pg infisical-pg trilium vaultwarden filebrowser-db; do
retain "$p" 7
@@ -257,7 +251,7 @@ data:
log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"; }
BACKUP_DIR=/data/backups/backups
CROWN="n8n openclaw homarr authentik-pg grafana k3s-db gitea ghost-en-db ghost-en-content zona-exclusion-db zona-exclusion-content researchowl roswell-pg umami-pg infisical-pg trilium vaultwarden filebrowser-db home-master"
CROWN="n8n homarr authentik-pg grafana k3s-db gitea ghost-en-db ghost-en-content zona-exclusion-db zona-exclusion-content researchowl roswell-pg umami-pg infisical-pg trilium vaultwarden filebrowser-db home-master"
KEEP=/tmp/crown-jewels
rm -rf "$KEEP"; mkdir -p "$KEEP"
@@ -303,7 +297,7 @@ data:
log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"; }
EXPECTED_SERVICES="n8n openclaw homarr authentik-pg grafana k3s-db gitea ghost-en-db ghost-en-content zona-exclusion-db zona-exclusion-content researchowl roswell-pg umami-pg infisical-pg trilium vaultwarden uptime-kuma filebrowser-db home-master"
EXPECTED_SERVICES="n8n homarr authentik-pg grafana k3s-db gitea ghost-en-db ghost-en-content zona-exclusion-db zona-exclusion-content researchowl roswell-pg umami-pg infisical-pg trilium vaultwarden uptime-kuma filebrowser-db home-master"
ERRORS=0
# Ventana de frescura: backup y sync son diarios → un backup es "reciente"
@@ -356,7 +350,7 @@ data:
# === Segundo offsite: B2 crown-jewels (todo menos uptime-kuma) ===
log "=== Verificación de crown-jewels en B2 ==="
CROWN="n8n openclaw homarr authentik-pg grafana k3s-db gitea ghost-en-db ghost-en-content zona-exclusion-db zona-exclusion-content researchowl roswell-pg umami-pg infisical-pg trilium vaultwarden filebrowser-db home-master"
CROWN="n8n homarr authentik-pg grafana k3s-db gitea ghost-en-db ghost-en-content zona-exclusion-db zona-exclusion-content researchowl roswell-pg umami-pg infisical-pg trilium vaultwarden filebrowser-db home-master"
B2FILES=$(rclone ls b2:chemavx-k3s-backups/ --config /rclone/rclone.conf 2>&1)
for svc in $CROWN; do
FOUND=0
-6
View File
@@ -40,8 +40,6 @@ spec:
mountPath: /data/backups/backups
- name: n8n-data
mountPath: /data/n8n
- name: openclaw-data
mountPath: /data/openclaw
- name: scripts
mountPath: /scripts
- name: k3s-storage
@@ -67,10 +65,6 @@ spec:
hostPath:
path: /data/n8n
type: DirectoryOrCreate
- name: openclaw-data
hostPath:
path: /data/openclaw
type: DirectoryOrCreate
- name: scripts
configMap:
name: backup-scripts