Vaultwarden Kubernetes Secrets (VKS)
Sincroniza la colección Homelab de Vaultwarden hacia Secrets de Kubernetes.
Resumen
VKS (antoniolago/vaultwarden-kubernetes-secrets)
autentica contra Vaultwarden con la API key de un usuario de servicio y crea
Secrets en Kubernetes a partir de ítems etiquetados con el campo custom
namespaces. Sustituye a External Secrets Operator (que no tiene provider
nativo para Vaultwarden) como puente Vaultwarden → k8s.
Estado
| Campo |
Valor |
| Estado |
Operativo |
| Argo CD Application |
vaultwarden-kubernetes-secrets |
| Namespace |
vaultwarden-kubernetes-secrets |
Despliegue
| Campo |
Valor |
| Método |
Helm chart (multi-source) |
| Chart / imagen |
vaultwarden-kubernetes-secrets@2.0.0 (OCI ghcr.io/antoniolago/charts) |
| Origen |
clusters/luka/apps/vaultwarden-kubernetes-secrets/ |
| Config en el repo |
clusters/luka/config/vaultwarden-kubernetes-secrets/ |
Red
| Campo |
Valor |
| Service |
— (sin Service; solo sync interno) |
| URL |
— (no expuesto) |
Acceso y usuarios
- Usuario de servicio:
vaultwarden-sync (API key de usuario + master
password; email gorkarevilla+vaultwarden-sync@gmail.com), con acceso solo
lectura a la colección Homelab.
- Credenciales: SealedSecret
vaultwarden-kubernetes-secrets
(BW_CLIENTID / BW_CLIENTSECRET / VAULTWARDEN__MASTERPASSWORD).
Configuración
VAULTWARDEN__SERVERURL=https://passwords.local.gorkarevilla.com (debe ser
HTTPS: VKS rechaza URLs http://). Apunta al endpoint interno de Traefik.
VAULTWARDEN__ORGANIZATIONNAME=Familia, VAULTWARDEN__COLLECTIONNAME=Homelab.
SYNC__SYNCINTERVALSECONDS=300 (5 min). RBAC cluster-wide (crea Secrets en
todos los namespaces).
- Un ítem con el campo custom
namespaces produce un Secret cuyo nombre sale
del nombre del ítem (espacios → -), con claves username/password.
Almacenamiento
- La DB de sync (
sync.db) va en un emptyDir (estado reconstruible desde
Vaultwarden). No requiere PVC.
Dependencias
- Depende de: k3s, Vaultwarden (org
Familia / colección Homelab), Sealed Secrets.
- Usado por: cualquier servicio cuyos secretos viven en la colección
Homelab.
Backup y recuperación
- Re-desplegable desde Git; el estado (qué Secrets crea) lo manda Vaultwarden.
Monitorización
- Pendiente (ServiceMonitor opcional del chart, requiere Prometheus Operator).
Referencias
- https://github.com/antoniolago/vaultwarden-kubernetes-secrets
Notas / TODO
- Pin por digest de imagen si se quiere reproducibilidad exacta (el chart usa tag
2.0.0).
- El
SERVERURL debe ser HTTPS (VKS rechaza http://).
- El campo custom del ítem es
namespaces (plural); namespace (singular) no se
reconoce y el ítem se ignora.
- El
sync.db va en un emptyDir (efímero); se pierde en cada reinicio. Para
persistirlo habría que activar el componente API del chart (que lo guarda en un
PVC). El borrado de huérfanos se apoya en labels, no en la DB, así que sigue
funcionando, pero el estado de sync se reconstruye en cada arranque.