Array 2D en YAML
Tengo un helm chart con el atributo 2darrayIPs. Este atributo toma valor del archivo values.yaml, que a su vez se da a través del comando de instalación de Helm.
helm-chart/templates/main.yaml
2darrayIPs: {{ .Values.2darrayIPs }}
helm-chart/values.yaml
2darrayIPs: [[]] – matriz vacía, este valor se da a través del comando de instalación
Paso una matriz 2d a través del comando de helm al instalar el chart.
helm install ….. -f val.yaml
val.yaml
2darrayIPs:
– – 1.1.1.1
– 2.2.2.2
– – 3.3.3.3
– 4.4.4.4
Recibo este error al instalar el helm chart:
Error: Error de análisis YAML en templates/main.yaml: error convirtiendo YAML a JSON: yaml: no se encontró “,” o “]” esperado.
Si doy una matriz como se muestra a continuación, la instalación tiene éxito pero en mis registros obtengo una sola matriz con solo un valor en lugar de dos:
[[1.1.1.1 2.2.2.2]]
val.yaml
2darrayIPs:
– – 1.1.1.1
– 2.2.2.2
¿Dónde estoy fallando?
davy.ai
Basándose en el mensaje de error “error converting YAML to JSON: yaml: did not find expected ‘,’ or ‘]'”, parece que la sintaxis YAML es incorrecta en el archivo main.yaml.
La sintaxis para un arreglo 2D en YAML es:
Entonces, en el archivo main.yaml, el atributo 2darrayIPs debería ser definido de la siguiente manera:
Esto envía el valor de .Values.2darrayIPs a la función toYaml para convertirlo en sintaxis YAML, y luego aplica una indentación de 2 espacios para mayor legibilidad.
En el archivo values.yaml, el atributo 2darrayIPs debería ser definido con un arreglo de arreglos vacío:
Al pasar el arreglo 2D a través del comando de instalación de Helm, la sintaxis en val.yaml es correcta:
Esto debería establecer correctamente el atributo 2darrayIPs como un arreglo 2D con dos elementos, cada uno de ellos contiene dos direcciones IP.