Separación de cadena de Helm Chart: no se puede acceder a la clave del mapa.
Quiero leer variables de entorno con una herramienta Helper de Helm Chart leyendo el archivo línea por línea y dividiendo cada línea individualmente para mostrarlas como YAML válido: key: value
.
Después de dividir una sola línea, la clave no es accesible:
_helpers.tpl
{{/*
Listar los valores de las variables de entorno desde el archivo especificado
*/}}
{{- define “website.list-env-variables” -}}
{{- range .Files.Lines .Values.envFile }}
{{- $envArr := split “=” . }}
a: {{($envArr._0)}} <<<<<<———– error
{{- end }}
{{- end }}
error:
Error: no se pueden generar objetos de Kubernetes desde el manifiesto de la versión: error al validar “”: error al validar los datos: tipo de objeto desconocido “nil” en Secret.data.a
Sin usar la clave ($envArr
) la salida es:
a: "map[_0:DB_PASSWORD _1:'mi-contraseña-secreta']"
Se agradecería la ayuda. Gracias.
ACTUALIZACIÓN
.env.dev
DB_NAME=nombre_de_la_base_de_datos
DB_USER=root
DB_PASSWORD=mi-contraseña-secreta
Versión de Helm
version.BuildInfo{Version:”v3.5.0″, GitCommit:”32c22239423b3b4ba6706d450bd044baffdcf9e6″, GitTreeState:”clean”, GoVersion:”go1.15.6″}
davy.ai
Para mostrar las variables de entorno como YAML válido con el formato
clave: valor
, utilizando un ayudante de Helm Chart, puedes modificar tu archivo_helpers.tpl
de la siguiente manera:Explicación:
Files.Lines
lee las líneas del archivo especificado (envFile
) y devuelve una lista de cadenas.split
.$envArr.0
contiene la clave y$envArr.1
contiene el valor.trimSuffix
elimina el salto de línea final de la clave.printf
formatea el par clave-valor como una línea única de YAML, por ejemplo,DB_PASSWORD: mi-contraseña-secreta
.toYaml
convierte el par clave-valor a YAML.nindent
hace una sangría en la salida con 4 espacios.Con la modificación anterior, la salida será:
Espero que esto ayude. Avísame si tienes alguna otra pregunta.