You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Helm循环生成多KafkaConnector模板问题:无法遍历多配置节点

Helm模板生成多个KafkaConnector资源问题解决

问题背景

需要通过Helm从values.yaml的特定映射结构生成多个KafkaConnector资源,现有模板仅能遍历单个节点,需通过两层循环实现完整遍历。

values.yaml配置示例

Definition:
  Information:
    - db.user:
        name: aaa
        key: bbb
    - db.secret:
        name: aaa
        key: ccc
    - db.host: hosntame
    - db.port: 1234
  Information1:
    - db.user:
        name: zzz
        key: yyy
    - db.secret:
        name: zzz
        key: vvv
    - db.host: hosntame1
    - db.port: 1235

修正后的Helm模板(connector.yaml)

通过两层range循环实现遍历:第一层处理Definition下的每个连接器条目,第二层解析每个条目的配置项。

{{- range $connName, $configList := .Values.Definition }}
---
apiVersion: {{ $.Values.apiVersion }}
kind: KafkaConnector
metadata:
  name: {{ include "common.names.fullname" $ }}-{{ $connName }}    
spec:
  class: need
  config: 
  {{- range $item := $configList }}
    {{- $k := (keys $item) | first }}
    {{- $v := index $item $k }}
    {{- if eq $k "db.secret" }}
    {{ $k }}: ${secrets:{{ $v.name }}/{{ $v.key }}}
    {{- else if kindIs "map" $v }}
    {{ $k }}: {{ $v.key }}
    {{- else }}
    {{ $k }}: {{ $v }}
    {{- end }}
  {{- end }}
{{- end }}

模板关键逻辑说明

  • 第一层循环range $connName, $configList := .Values.Definition:遍历Definition下的所有键值对,$connName是连接器名称(如Information、Information1),$configList是对应的配置数组。
  • 第二层循环range $item := $configList:遍历单个连接器的配置数组,每个数组项是单键映射,通过(keys $item) | first提取配置键名,index $item $k获取对应值。
  • 配置值处理:针对db.secret生成特定的${secrets:name/key}格式;对于db.user这类映射型配置,提取key字段值;普通字符串配置直接输出。

期望输出结果

apiVersion: apps/v1
kind: KafkaConnector
metadata:
  name: connect-Information
spec:
  class: need
  config:
    db.user: bbb
    db.secret: ${secrets:aaa/ccc}
    db.host: hosntame
    db.port: 1234

---
apiVersion: apps/v1
kind: KafkaConnector
metadata:
  name: connect-Information1
spec:
  class: need
  config:
    db.user: yyy
    db.secret: ${secrets:zzz/vvv}
    db.host: hosntame1
    db.port: 1235

内容的提问来源于stack exchange,提问作者esefe sgrgrz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 09:35:02