Kubernetes Helm Chart:通过CLI传入SecretName与域名至values.yaml
解决Helm CLI修改ingress.tls嵌套结构参数的问题
我之前调试Helm Chart时刚好碰到过一模一样的需求,要通过--set修改这种嵌套数组里的字段其实不难,Helm的--set支持用索引下标定位数组元素,针对你的场景可以这么操作:
1. 修改tls条目里的secretName
ingress.tls是一个数组(YAML里用-开头的列表),第一个元素的索引是[0],要修改它的secretName可以用:
--set ingress.tls[0].secretName="your-new-secret-name"
2. 修改对应hosts列表里的域名
同理,tls[0].hosts也是数组,第一个域名的索引是[0],修改命令如下:
--set ingress.tls[0].hosts[0]="new-kubernetes-miq.yourdomain.com"
3. 组合多个修改的完整命令
你可以把这两个修改合并到同一个Helm安装/升级命令里,两种写法都可行:
方式一:多个--set参数(可读性更好)
helm upgrade --install miqp-release ./miqp-ui-dep \ --set replicaCount=2 \ --set ingress.tls[0].secretName="my-custom-tls-secret" \ --set ingress.tls[0].hosts[0]="new-kubernetes-miq.xxxxxx.com"
方式二:单个--set用逗号分隔
helm upgrade --install miqp-release ./miqp-ui-dep \ --set replicaCount=2,ingress.tls[0].secretName="my-custom-tls-secret",ingress.tls[0].hosts[0]="new-kubernetes-miq.xxxxxx.com"
验证修改是否生效
执行命令后,用以下命令查看实际生效的values,确认修改是否成功:
helm get values miqp-release
补充说明
如果你的ingress.tls里有多个条目(比如多个secret对应不同域名),只需要把索引[0]换成对应的序号(比如[1]、[2]),就能修改对应条目的字段。
内容的提问来源于stack exchange,提问作者Nikit Swaraj
相关产品推荐
相关产品推荐

