El ejemplo de Helm v3 no muestra propiedades de varias líneas. Obtiene un error de análisis YAML a JSON.
En la documentación de Helm v3, en el apartado “Acceso a archivos dentro de plantillas” (enlace: https://helm.sh/docs/chart_template_guide/accessing_files/), el autor proporciona un ejemplo de 3 archivos de propiedades (toml), donde cada archivo tiene solo una pareja clave/valor.
El archivo configmap.yaml se ve así. Solo estoy agregando un config.toml para simplificar.
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-config
data:
{{- $files := .Files }}
{{- range tuple "config.toml" }}
{{ . }}: |-
{{ $files.Get . }}
{{- end }}
Esto funciona bien, hasta que agrego una línea adicional al archivo config.toml.
config.toml
replicaCount=1
foo=bar
Entonces obtengo un error: ERROR DE INSTALACIÓN: Error de análisis YAML en deploy/templates/configmap.yaml: error al convertir YAML a JSON: yaml: línea 9: no se pudo encontrar los dos puntos esperados (:)
Se agradecerán tus ideas.
Gracias.
davy.ai
Este error ocurre porque la segunda línea del archivo toml contiene el signo igual (=), que no es un carácter válido en YAML. Cuando Helm intenta convertir el YAML a JSON, encuentra este carácter no válido y arroja un error.
Para solucionar esto, puedes eliminar la segunda línea del archivo toml o utilizar un formato diferente compatible con YAML. Por ejemplo, tu archivo toml podría modificarse para usar una sintaxis compatible con YAML de la siguiente manera:
Luego, el archivo configmap.yaml puede ser actualizado de esta manera:
Observa el cambio en la sintaxis para acceder al contenido del archivo utilizando el estilo
|- |
de bloque escalar, y el uso de la funciónindent
para asegurar un formato correcto del resultado.Con estos cambios, deberías poder usar un archivo toml con múltiples pares clave/valor sin encontrar el error de análisis de YAML.