Hola,
Tengo un problema cuando intento implementar un mapa de configuración usando helm. El problema se explica a continuación.
Supongamos que tengo un gráfico de timón que tiene la estructura de carpetas de la siguiente manera.
├── gráficos
├── Chart.yaml
├── conf
│ └── tee.xml
├── plantillas
│ └── ConfigMap.yaml
└── valores.yaml
tee.xml se muestra a continuación.
<note>
<to>Tove</to>
<from>${name}</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
ConfigMap.yaml se muestra a continuación.
apiVersion: v1
kind: ConfigMap
metadata:
name: mytest-var
xml:
{{ .Values.from }}
data:
{{- $file := .Files }}
{{- $var := .Values.from }}
{{- range $path, $byte := .Files.Glob "conf/*" }}
{{- $list := $path | splitList "/"}}
{{- $length := len $list }}
{{- $last := add $length -1 }}
{{ index $list $last }}: |-
{{- range $file.Lines $path }}
{{ . }}
{{- end }}
{{- end }}
parte de los valores .yaml se muestra a continuación.
from: Shashi
Cuando ejecuto el comando helm install, quiero reemplazar el valor ${name}
que se encuentra en el archivo tee.xml ( <from>${name}</from>
) de un valor que se establece en values.yaml. ¿Es esto posible usando helm y, si es posible, puede ayudarme a hacer los cambios relevantes?
Hola,
Pude encontrar la solución al problema anterior usando "reemplazar". He adjuntado los archivos de timón correspondientes a continuación.
ConfigMap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mytest-var
xml:
{{ .Values.from }}
data:
{{- $file := .Files }}
{{- $var := .Values.from }}
{{- range $path, $byte := .Files.Glob "conf/*" }}
{{- $list := $path | splitList "/"}}
{{- $length := len $list }}
{{- $last := add $length -1 }}
{{ index $list $last }}: |-
{{- range $line := $file.Lines $path }}
{{ $line | replace "John" $var }}
{{- end }}
{{- end }}
tee.xml
<note>
<to>Tove</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Parte de values.yaml
from: Cigra
Al ejecutar helm install podemos crear el mapa de configuración que se reemplaza con la clave "
Por favor dime que esta es la forma correcta.
Si funciona, funciona. Usar replace
para reemplazar cada instancia de una subcadena dentro de una cadena dada me suena sensato.
Estoy de acuerdo: usar replace
parece una opción bastante buena en este caso.
@KavinduZoysa dado que esta solución funciona, permítanme seguir adelante y cerrar este problema. No dude en volver a abrir si esto no funcionó como se esperaba o si tiene alguna otra pregunta relacionada. ¡Gracias!
Comentario más útil
Hola,
Pude encontrar la solución al problema anterior usando "reemplazar". He adjuntado los archivos de timón correspondientes a continuación.
ConfigMap.yaml
tee.xml
Parte de values.yaml
from: Cigra
Al ejecutar helm install podemos crear el mapa de configuración que se reemplaza con la clave "John "de la palabra" Cigra "
Por favor dime que esta es la forma correcta.