Fase 7 · Cifrar secretos con Sealed Secrets
Sube contraseñas a Git de forma segura con kubeseal.
En entornos de producción DevSecOps, los secretos NUNCA se guardan en texto plano en Git. Se utiliza Bitnami Sealed Secrets (100% Open Source, Licencia Apache 2.0).
7.1 Instalar el Controlador de Sealed Secrets en K3s (1 solo comando)
export KUBECONFIG=~/Documents/infra-proxmox/kubeconfig
kubectl apply -f https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.27.3/controller-sealed-secrets.yaml
7.2 Instalar la Herramienta CLI kubeseal en tu Consola Linux
wget https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.27.3/kubeseal-0.27.3-linux-amd64.tar.gz
tar -xvzf kubeseal-0.27.3-linux-amd64.tar.gz kubeseal
sudo install -m 755 kubeseal /usr/local/bin/kubeseal
rm -f kubeseal kubeseal-0.27.3-linux-amd64.tar.gz
7.3 Cómo Cifrar un Secreto para Subirlo a Git con Seguridad
- Creas un archivo local con tus contraseñas en texto plano (
secret-local.yaml):
apiVersion: v1
kind: Secret
metadata:
name: keycloak-secrets
namespace: default
type: Opaque
stringData:
client-secret: "TU-CLIENT-SECRET-AQUI"
admin-password: "TU-PASSWORD-AQUI"
- Ejecutas
kubesealpara convertirlo en unSealedSecretcifrado:
export KUBECONFIG=~/Documents/infra-proxmox/kubeconfig
kubeseal --format yaml < secret-local.yaml > ~/Documents/telco-gitops-manifests/apps/02-keycloak/sealed-secret.yaml
- ¡Listo! El archivo
sealed-secret.yamlresultante contiene texto cifrado asimétrico que puedes subir con total seguridad a Git (git push). - Cuando ArgoCD despliegue ese
SealedSecret, el controlador dentro de K3s usará su clave privada para desencriptarlo en memoria y generar elSecretde Kubernetes automáticamente.
