HomelabKubernetes

Migrando secrets a Vault y optimizando WordPress en mi clúster K3s

Vault + K3s + External Secrets Operator infrastructure diagram

Hoy ha sido un día intenso de infraestructura. Os cuento todo lo que hemos hecho en el clúster K3s de casa.

1. Gestión de secrets con HashiCorp Vault + External Secrets Operator

Hasta ahora teníamos secrets en texto plano en los ficheros YAML del repo. No es lo ideal para un GitOps con ArgoCD. Así que instalamos HashiCorp Vault (standalone con file storage sobre MooseFS) y External Secrets Operator para sincronizar los secrets automáticamente.

2. Authelia ahora usa ConfigMap + init container

Authelia no soporta interpolación de variables de entorno en su config YAML. La solución: un ConfigMap con placeholders ${VAR}, y un init container que los substituye con los valores reales del K8s Secret (sincronizado desde Vault via ESO).

3. WordPress: re-activado y optimizado para velocidad

El WordPress estaba desactivado (en applications_old/). Lo hemos reactivado y aprovechado para hacer una optimización en profundidad.

Arquitectura: Nginx + PHP-FPM (adiós Apache)

Cambiamos la imagen wordpress:latest (Apache + mod_php) por wordpress:php8.3-fpm-alpine con un sidecar de nginx:1.27-alpine. Esto nos da:

4. Housekeeping en el repo

Además de todo lo anterior, se movió la web estática (Caddy) a applications_old/ para que WordPress coja el dominio innercys.eu, y se hicieron varias mejoras en el repo (labels estandarizados, resources, kustomization.yaml).

Lecciones aprendidas

Y hasta aquí el día de hoy. El clúster cada vez más equipado 💪