在聊天中,我询问了通过--set
定义这样一个对象的能力,并遗憾地面临着事实:
env:
- name: ROUTER
value: cake
- name: PASSWORD
value: derp
我喜欢在values.yaml
使用这些节来定义特定容器规范的整个 env 变量需求,因此在规范中我只需要:
env:
{{ toYaml .Values.env | indent 10 }}
这有很多有用的原因:
deployment
对象这样的东西,因为我想将一些其他变量传递给主进程。遗憾的是,目前不支持传递这些类型的对象。 现在以最好的方式在我的模板中使用 if 语句来解决这个问题,但是在values.yaml
定义关于我的应用程序的大量潜在动态信息会很棒
我实际上只是通过观察kube-lego
找到了另一种方法来做到这一点:
{{- range $key, $value := .Values.config }}
- name: "{{ $key }}"
value: "{{ $value }}"
{{- end }}
我的问题是类似的。
我们想在以下位置使用图表 aws-cluster-autoscaler:
https://github.com/kubernetes/charts/tree/master/stable/aws-cluster-autoscaler
我们想通过命令行传递 autoscalingGroups[].name,使用--set
,并通过文件 params.yaml 传递其他信息:
autoscalingGroups:
- minSize: 2
maxSize: 8
awsRegion: eu-west-1
当我们尝试使用以下方法设置自动缩放组名称时:
$ helm upgrade cluster-autoscaler stable/aws-cluster-autoscaler -f params.yaml --set "autoscalingGroups[].name"="nodes.k8s.test.eu-west-1.aws.redacted.net"
但这不起作用。
阅读文档,这是众所周知的,但能够做到这一点仍然很好。
最有用的评论
现在可以使用以下语法:
这在此处记录。