Skip to content

Configuración y secretos ​

Separar la configuración de la imagen permite reutilizar el mismo artefacto en desarrollo, pruebas y producción. Kubernetes ofrece ConfigMaps para datos de configuración no sensibles y Secrets para datos sensibles.

ConfigMap ​

Crea un ConfigMap desde un manifiesto:

yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: config-app
data:
  LOG_LEVEL: info
  API_URL: https://api.ejemplo.com

Puedes inyectar sus valores como variables de entorno en un contenedor:

yaml
envFrom:
  - configMapRef:
      name: config-app

Este fragmento se incluye bajo spec.template.spec.containers[]. También es posible mapear claves concretas o montar las entradas del ConfigMap como archivos. Cambiar un ConfigMap consumido como variable de entorno no actualiza automáticamente el entorno de un proceso en ejecución; normalmente se reinicia o se despliega de nuevo el Pod.

Secret ​

Los Secrets sirven para credenciales y otros valores sensibles:

bash
kubectl create secret generic credenciales-app \
  --from-literal=usuario=app \
  --from-literal=clave='cambia-esta-clave'

Referencia una clave como variable de entorno:

yaml
env:
  - name: DB_PASSWORD
    valueFrom:
      secretKeyRef:
        name: credenciales-app
        key: clave

Por defecto, el contenido de un Secret codificado en YAML como data usa Base64: Base64 no es cifrado. Restringe el acceso mediante RBAC y configura cifrado en reposo en el plano de control cuando esté disponible. No subas secretos reales al repositorio; considera un gestor de secretos externo para producción.

ConfigMaps y Secrets tienen alcance de namespace. Crea y referencia ambos recursos en el namespace del Pod que los consume.