es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Helmfile: sobrescribiendo valores de un valor de gráfico padre mediante Helmfile.

Estoy intentando hacer una configuración sencilla de Helm utilizando helmfile pero sin éxito. Como se menciona aquí (anulación-de-valores-de-un-chart-padre), me gustaría proporcionar una configuración principal y anular el valor de lanzamiento. Esta es una configmap de lanzamiento.

charts/microservice-a/templates/configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
   labels: {{- include "microservice-a.labels" . | nindent 4 }}
   name: {{ include "microservice-a.fullname" . }}-config
   namespace: {{ .Release.Namespace }}
data:
   MODEL.EN: {{ .Values.model.en }}

este es mi helmfile.yaml

releases:
   - name: microservice-a
     chart: ../charts/microservice-a
     values:
       - "./environments/{{ .Environment.Name }}/values.yaml"

y este es mi environments/default/values.yaml

microservice-a:
  model:
    en: "model-en-1.0.mdl"

Encontré que {{ .Values.model.en }} en la configmap no puede resolverse. ¿Qué estoy haciendo mal?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, parece que el problema puede estar en la sintaxis utilizada en el archivo values.yaml.

    En el archivo values.yaml, el valor para model.en se define utilizando un anclaje YAML (&) y un alias (*), lo que le permite ser reutilizado en otras partes del archivo. Sin embargo, al hacer referencia a este valor en el archivo configmap.yaml con {{ .Values.model.en }}, Helm puede que no pueda resolver correctamente el valor.

    Para solucionar este problema, intenta usar un valor de cadena simple para model.en en el archivo values.yaml en lugar de un anclaje/alias, así:

    microservice-a:
      model:
        en: model-en-1.0.mdl
    

    Luego, en el archivo configmap.yaml, haz referencia al valor utilizando {{ .Values.microservice-a.model.en }}, así:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      labels: {{- include "microservice-a.labels" . | nindent 4 }}
      name: {{ include "microservice-a.fullname" . }}-config
      namespace: {{ .Release.Namespace }}
    data:
      MODEL.EN: {{ .Values.microservice-a.model.en }}
    

    Esto debería permitir que Helm resuelva correctamente el valor y cree el ConfigMap con el valor deseado.

Comments are closed.