usando la terraformación del proveedor Helm 0.13.2, tengo un gráfico con un subgráfico anidado:
├── charts │ └── postgres │ ├── Chart.yaml │ ├── templates │ │ ├── deployment.yaml │ │ ├── env.yaml │ │ └── service.yaml │ └── values.yaml ├── Chart.yaml ├── templates │ ├── configmap.yaml │ ├── deployment.yaml │ ├── env.yaml │ ├── ingress.yaml │ └── service.yaml └── values.yamlNecesito usar desde deployment.yml del subgráfico de postgres, los valores del gráfico principal. ¿Cómo puedo configurar el mapa de configuración del subgráfico para obtener los valores del gráfico principal? Mi mapa de configuración actual es así:
apiVersion: v1 kind: ConfigMap metadata: name: {{ .Release.Name }}-postgres-env namespace: {{ .Release.Namespace }} data: {{- range $key, $val := .Values.environment }} {{ $key }}: {{ $val | quote }} {{- end }}Gracias por adelantado.
No puedes hacer esto directamente. Al analizar el alcance, las dependencias y los valores , la documentación de Helm señala (con un ejemplo motivador):
Los gráficos de un nivel superior tienen acceso a todas las variables definidas a continuación. Entonces el gráfico de WordPress puede acceder a [
.Values.child.setting]. Pero los gráficos de nivel inferior no pueden acceder a las cosas en los gráficos principales, por lo que [el hijo] no podrá acceder a la propiedad [de un padre]. Tampoco, en realidad, puede acceder a [configuración de subgráfico hermano].
Tienes dos opciones. Si mueve la configuración debajo de una tecla global:
global: environment: keys: values entonces el padre y todos los subgráficos podrán acceder a .Values.global.environment . O bien, si mueve la configuración a una clave específica del suborganigrama
postgres: environment: keys: values luego, el subgráfico verá .Values.environment , y el padre puede hacer referencia .Values.postgres.environment .
(Si no puede usar un gráfico de PostgreSQL preempaquetado, no es necesariamente incorrecto aplanar estas partes en un solo gráfico, dejando claro a partir de los nombres de archivo que algo es statefulset-postgres.yml o svc-postgres.yml . Entonces las plantillas ser capaz de usar los .Values individuales.)