首页 > 解决方案 > 如何将“范围”与存储在我的 Helm 图表的 configMap 中的数组一起使用

问题描述

我正在尝试将我的配置存储在 configMap 中:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-{{ .Chart.Name }}-config
  namespace: {{ .Values.global.config.namespace }}
data:
  QueryInterval: {{ .Values.queryEngineServiceOptions.queryInterval | quote }}
  AllowedSymbols: {{ .Values.queryEngineServiceOptions.allowedSymbols }}

我的 configMap 中的数据成功来自我的值文件:

queryengine:
  queryEngineServiceOptions:
    queryInterval: 15000
    allowedSymbols:
      0: pi
      1: upsilon
      2: gamma
      3: beta

在我的deployment.yaml清单文件中,我试图转换此部分,以便它不使用值文件,而是使用 configMap:

env:
{{- range $k, $v := .Values.queryEngineServiceOptions.allowedSymbols }}
- name: {{ printf "QueryEngineServiceOptions__AllowedSymbolsList__%s" $k }}
value: {{ $v | upper -}}
{{ end }} 

如果您不处理数组,并且可能正在尝试提取单个值,则可以使用 valueFrom 执行此操作:

env:
- name: QueryIntervalSetting
  valueFrom:
    configMapKeyRef:
      name: {{ .Release.Name }}-{{ .Chart.Name }}-config
      key: QueryInterval

有没有办法将来自 configMap 数组/映射(可能使用 valueFrom?)的值与范围操作结合起来?

目前,我的所有单值设置都来自我的 configMap,而我的数组/映射值来自值文件。理想情况下,我希望我的所有配置都存储在我的 configMap 中。

标签: kubernetes-helmgo-templates

解决方案


推荐阅读