【问题标题】:Why Helm take only the last value of the map in range为什么 Helm 只取范围内地图的最后一个值
【发布时间】:2020-07-17 15:50:00
【问题描述】:

我是 Helm 的新手,如果我不清楚,或者我使用了错误的术语,非常抱歉。

我正在尝试遍历 IP 列表,将它们提供给一个范围并为无头服务创建一个 ip 数组。

这是我的模板:

kind: Endpoints
apiVersion: v1
metadata:
 name: backend-modbile-db-service
 namespace: {{ .Release.Namespace }}
subsets:
 - addresses:
     {{- range $key, $val := .Values.DatabaseEndpoints }}
      - {{ $key }}: {{ $val }}
     {{- end }}
   ports:
     - port: {{ .Values.DatabasePort| default 5984 }}
       name: backend-mobile-db-service

与论文IP相关的Value.yaml是这样的:

#backend-mobile-db-service

DatabasePort: 5984
DatabaseEndpoints:
  ip: 192.168.0.50
  ip: 192.168.0.51
  ip: 192.168.0.52
  ip: 192.168.0.55
  ip: 192.168.0.56
  ip: 192.168.0.57

我希望模板会采用 value 和 index 并将它们放入我的 service 的数组中,但它只采用 Value.yaml 映射中的最后一个 key:value 对:

# Source: backend-mobile/templates/backend-mobile-db-service.yaml
kind: Endpoints
apiVersion: v1
metadata:
 name: backend-modbile-db-service
 namespace: default
subsets:
 - addresses:
      - ip: 192.168.0.57
   ports:
     - port: 5984
       name: backend-modbile-db-service

然而,我期望这样的输出:

# Source: backend-mobile/templates/backend-mobile-db-service.yaml
kind: Endpoints
apiVersion: v1
metadata:
 name: backend-modbile-db-service
 namespace: default
subsets:
 - addresses:
      - ip: 192.168.0.50
      - ip: 192.168.0.51
       [...]
      - ip: 192.168.0.52
   ports:
     - port: 5984
       name: backend-modbile-db-service

我犯的错误在哪里? 在此先感谢:)

【问题讨论】:

    标签: kubernetes kubernetes-helm go-templates


    【解决方案1】:

    因为你一次又一次地覆盖ip,所以你只看到最后一个。如果你想声明一个ip数组,你应该这样做:

    DatabaseEndpoints:
      ip:
      - 192.168.0.50
      - 192.168.0.51
      - 192.168.0.52
      - 192.168.0.55
      - 192.168.0.56
      - 192.168.0.57
    

    因此您的模板应更改为如下所示:

    subsets:
     - addresses:
         {{- range .Values.DatabaseEndpoints.ip }}
          - ip: {{ . }}
         {{- end }}
    

    【讨论】:

      猜你喜欢
      • 2013-06-24
      • 2017-02-26
      • 1970-01-01
      • 2020-02-07
      • 2019-03-18
      • 2017-09-13
      • 2014-05-30
      • 1970-01-01
      相关资源
      最近更新 更多