当你运行helm create mychart
它时,它的 imagePullSecrets 定义如下:
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }
在默认值文件中,它看起来像是在传递一个空白数组:
imagePullSecrets: []
我已经有一堆使用此默认模板构建的具有此设置的图表。以前我不需要使用 imagePullSecrets 所以我只是保持原样,但现在我有一些情况我想在部署时通过 cli 设置它。
Helm 现在支持数组,但这似乎不起作用:
--set "mychart.imagePullSecrets[0].name={reg-creds}"
回报:
Error: UPGRADE FAILED: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.imagePullSecrets[0].name): invalid type for io.k8s.api.core.v1.LocalObjectReference.name: got "array", expected "string"
然后我尝试传递一个字符串:
--set "mychart.imagePullSecrets='- name: reg-creds'"
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.imagePullSecrets): invalid type for io.k8s.api.core.v1.PodSpec.imagePullSecrets: got "string", expected "array"
这些错误信息令人愤怒。是否可以设置这个值,--set
这样我就可以避免重构我的所有图表?