如何通过Helm的--set命令传入默认模板定义的imagePullSecrets参数
可以直接通过--set命令设置该参数,无需重构任何已有Chart,问题源于传参语法不符合Helm的--set规则,修正写法即可正常使用。
错误原因说明
- 第一次报错是因为
name字段值外包裹了{},Helm的--set语法中{}会被识别为列表类型,导致Kubernetes预期为字符串的name字段被赋值为数组,触发类型校验错误。 - 第二次报错是因为直接传入了YAML格式字符串,模板逻辑要求
imagePullSecrets为数组结构,字符串类型与预期类型不匹配触发错误。
正确传参写法
单镜像拉取秘钥场景
直接指定数组下标和对应的name字段值即可:
--set mychart.imagePullSecrets[0].name=reg-creds
多镜像拉取秘钥场景
按顺序追加不同下标的参数即可:
--set mychart.imagePullSecrets[0].name=reg-creds,mychart.imagePullSecrets[1].name=internal-reg-creds
单对象批量写法
也可以通过对象包裹的语法传入单个数组元素:
--set 'mychart.imagePullSecrets[0]={name: reg-creds}'
以上写法完全兼容helm create生成的默认模板逻辑,不需要修改任何Chart内的模板或Values配置。
内容的提问来源于stack exchange,提问作者red888
相关产品推荐
相关产品推荐

