【发布时间】:2021-05-30 06:52:33
【问题描述】:
我正在尝试安装具有此类模板部分的a Helm chart
{{- if not .Values.persistence.data.claimName }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
...
spec:
...
{{- if .Values.persistence.data.storageClass }}
storageClassName: {{ .Values.persistence.data.storageClass | quote }}
{{- end }}
---
{{- end }}
注意.Values.persistence.data.storageClass。
我已通过将此文件通过管道传送到 helm(使用 -f -)在命令行上提供了这些值:
$ cat /tmp/values.yaml
claimToken: claim-GscEQwRPBmXSsYBjwyUD
image.repository: linuxserver/plex
image.tag: arm64v8-latest
ingress.enabled: true
nodeSelector:
beta.kubernetes.io/arch: arm64
persistence.config.storageClass: rook-cephfs
persistence.data.storageClass: rook-cephfs
persistence.transcode.storageClass: rook-cephfs
service.type: LoadBalancer
在命令行上将它们传递给 Helm install 似乎不起作用,我们最终得到了两个不同的键:
$ cat /tmp/values.yaml | helm upgrade --debug --dry-run -i kube-plex -f - ../kube-plex/charts/kube-plex/
COMPUTED VALUES:
...
persistence:
...
data:
accessMode: ReadWriteMany
size: 40Gi
storageClass: ""
...
...
persistence.data.storageClass: rook-cephfs
...
注意persistence.data.storageClass 是如何作为“平面”键和嵌套字典出现的。嵌套的 dict 值不会被覆盖。
将--set persistence.data.storageClass=rook-cephfs 作为命令行标志传递确实有效。
如何通过提供文件来覆盖命令行中的嵌套值?
【问题讨论】:
标签: kubernetes-helm