Uso de plantillas para recursos Secret de Kubernetes
Renderice objetos Secret sin exponer valores.
Uso de plantillas para recursos Secret de Kubernetes es una lección gratuita de Helm Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Helm Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Helm Academy incluye 4 lecciones en total.
Los charts pueden renderizar secretos
A veces su chart debe producir por sí mismo un objeto Kubernetes Secret. Si lo hace con cuidado, puede generar uno mediante plantillas sin filtrar el valor.
La estructura del manifiesto Secret
Un Secret de Kubernetes no es más que un manifiesto con una sección data. Cada valor de data debe ser texto codificado en Base64.
apiVersion: v1
kind: Secret
metadata:
name: db-credentialsCodifique los datos con b64enc
En data, codifique cada valor. La función auxiliar de Sprig b64enc convierte una cadena de texto plano al formato Base64 que espera Kubernetes.
data:
password: {{ .Values.password | b64enc }}Use stringData para omitir la codificación
Prefiera stringData cuando quiera evitar usar b64enc manualmente. Kubernetes codifica esos valores por usted en el servidor.
stringData:
password: {{ .Values.password | quote }}La codificación sigue sin ser un secreto
Recuerde que el valor renderizado en el manifiesto solo está codificado. Cualquiera que pueda leerlo puede decodificarlo al instante.
No lo imprima en NOTES
Una filtración habitual consiste en mostrar el valor en NOTES.txt. En su lugar, indique cómo obtenerlo, para que el texto plano nunca aparezca en la salida del comando.
Reutilice un Secret existente
Mejor aún, permita que los usuarios indiquen un existingSecret que hayan creado fuera del proceso, de modo que su chart nunca reciba el valor.
{{- if not .Values.existingSecret }}
kind: Secret
{{- end }}Requiera un valor obligatorio
Cuando un secreto sea realmente obligatorio, la función required detiene el renderizado con un mensaje claro si falta el valor.
password: {{ required "password is required" .Values.password | b64enc }}Móntelo, no lo inserte
Haga que los pods lean el Secret mediante secretKeyRef o un volumen montado, en lugar de insertar literalmente el valor en una variable de entorno del contenedor.
valueFrom:
secretKeyRef:
name: db-credentials
key: passwordAnote para la rotación
Para reiniciar los pods cuando cambie un Secret, añada una anotación de suma de comprobación al deployment, de modo que un valor nuevo desencadene un reinicio.
checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}Combine las estrategias
Los charts más sólidos combinan las estrategias: prefieren secretos existentes o externos, codifican solo cuando es necesario y nunca muestran el valor.
Comprobación rápida
¿Cómo permite que Kubernetes haga por usted la codificación Base64?
Recapitulación
Ha aprendido a crear un Secret mediante plantillas de forma segura: codifique con b64enc o stringData, prefiera los secretos existentes y nunca muestre el valor. 🎉
Preguntas frecuentes
¿La lección «Uso de plantillas para recursos Secret de Kubernetes» es gratis?
Sí — el texto completo de «Uso de plantillas para recursos Secret de Kubernetes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Helm Academy, actualiza a CoddyKit PRO. El curso de Helm Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Uso de plantillas para recursos Secret de Kubernetes»?
Renderice objetos Secret sin exponer valores. Practicas Helm Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Helm Academy?
No se requiere experiencia previa. Helm Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Uso de plantillas para recursos Secret de Kubernetes»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Helm Academy?
Sí. Cada lección de Helm Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Por qué los Secrets no deben estar en values.yaml
- Cifrado de valores con helm-secrets y SOPS
- Obtención desde operadores de secretos externos
- Uso de plantillas para recursos Secret de Kubernetes