AnibalOSanibal@core disponible
← cd ~/manual

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

  1. 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"
  1. Ejecutas kubeseal para convertirlo en un SealedSecret cifrado:
export KUBECONFIG=~/Documents/infra-proxmox/kubeconfig
kubeseal --format yaml < secret-local.yaml > ~/Documents/telco-gitops-manifests/apps/02-keycloak/sealed-secret.yaml
  1. ¡Listo! El archivo sealed-secret.yaml resultante contiene texto cifrado asimétrico que puedes subir con total seguridad a Git (git push).
  2. Cuando ArgoCD despliegue ese SealedSecret, el controlador dentro de K3s usará su clave privada para desencriptarlo en memoria y generar el Secret de Kubernetes automáticamente.