我是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.yaml映射中的最后一个键:值对:
# 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
我犯的错误在哪里?提前感谢:(
因为你一次又一次地覆盖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 }}