Skip to content

fix(vaultwarden): migrate PVC from cephfs to ceph-rbd - #409

Open
GreatSymphonia wants to merge 1 commit into
mainfrom
fix/vaultwarden-cephfs-to-rbd
Open

fix(vaultwarden): migrate PVC from cephfs to ceph-rbd#409
GreatSymphonia wants to merge 1 commit into
mainfrom
fix/vaultwarden-cephfs-to-rbd

Conversation

@GreatSymphonia

Copy link
Copy Markdown
Contributor

Contexte

vaultwarden-pvc (SQLite, replica unique, RWX pas réellement nécessaire) est sur la storage class cephfs. Le client kernel CephFS a corrompu ce mount 3 fois :

  • 2026-08-06 : erreurs de login "no healthy upstream", r2d2 unable to open database file dans les logs.
  • 2026-08-25 : "upstream request timeout" au login via authentik SSO, même erreur r2d2, plus un FailedMount actif sur le nœud (mount CSI bloqué) — corrigé via umount -l du mount CSI + recréation du pod.

Comme pour forgejo, nextcloud et campusparent, on déplace ce volume vers ceph-rbd (RWO, block storage) pour éliminer ce mode de panne récurrent.

Changement

  • storageClassName: cephfs → ceph-rbd
  • accessModes: ReadWriteMany → ReadWriteOnce (un seul replica, RWX inutile)

⚠️ Migration manuelle requise après le merge

storageClassName et accessModes sont immuables sur un PVC existant — ArgoCD ne pourra pas appliquer ce changement in-place et affichera un diff persistant (voire un échec de sync). Il faut migrer manuellement, dans cet ordre :

  1. kubectl scale deployment vaultwarden -n vaultwarden --replicas=0
  2. Copier les données depuis l'ancien PVC (cephfs) : kubectl run vw-copy --image=busybox -n vaultwarden --overrides='...' --restart=Never -- sleep 3600 monté sur l'ancien PVC, puis kubectl cp le contenu de /data en local (ou vers un nouveau pod monté sur les deux PVCs à la fois pour un cp -a direct)
  3. kubectl delete pvc vaultwarden-pvc -n vaultwarden (l'ancien, sur cephfs)
  4. Laisser ArgoCD recréer le PVC avec la nouvelle storageClassName ceph-rbd
  5. Restaurer les données dans le nouveau PVC
  6. kubectl scale deployment vaultwarden -n vaultwarden --replicas=1
  7. Vérifier les logs (kubectl logs deploy/vaultwarden -n vaultwarden) et tester le login SSO

Fenêtre de maintenance recommandée pour cette étape — vaultwarden sera indisponible pendant la copie des données.

vaultwarden-pvc backs a plain SQLite file with a single replica (RWX
not actually needed). The kernel CephFS client has corrupted this
mount 3 times now (2026-08-06, 2026-08-25), each time breaking login
via authentik SSO with "unable to open database file" / upstream
timeout errors. Move it to ceph-rbd (block storage, RWO) like the
other single-writer database workloads in this cluster.
@GreatSymphonia
GreatSymphonia requested a review from a team August 25, 2026 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants