我想使用--set
从外部设置docker image repository和tag值。在我的部署清单yaml文件中,我写道:
image: "{{ .Values.image.awesomeapp.repository }}:{{ .Values.image.awesomeapp.tag | quote }}"
以这种方式运行Helm
:
helm install charts/awesomeapp \
--set image.awesomeapp.repository=1234567890.dkr.ecr.ap-northeast-1.amazonaws.com/awesomeapp \
--set image.awesomeapp.tag=20180131010101
但失败了:
Failed to apply default image tag "1234567890.dkr.ecr.ap-northeast-1.amazonaws.com/awesomeapp:\"2.01801310101013e+13\"": couldn't parse image reference "1234567890.dkr.ecr.ap-northeast-1.amazonaws.com/orange-battle:\"2.01801310101013e+13\"": invalid reference format
为什么它无法正确暂停图片标记?
答案 0 :(得分:1)
掌舵bug:
helm install --set tag=20161216
以科学记数结束 因为{{ typeOf .Value.tag }}
会产生模板和那个模板float64
。
它已经修复,并且Adding --set-string flag to force string values拉取请求已合并。因此,新标记--set-string
将在稍后的某个时间添加到helm
。
如果您必须使用旧版本helm
,则可能存在以下解决方法:
1。部署清单yaml文件应更改为:
image: {{ .Values.image.awesomeapp.repository }}:{{ .Values.image.awesomeapp.tag | replace ":" "" }}
2。我们需要在:
的值之前定义此额外符号--set
:
helm install charts/awesomeapp \
--set image.awesomeapp.repository=1234567890.dkr.ecr.ap-northeast-1.amazonaws.com/awesomeapp \
--set image.awesomeapp.tag=:20180131010101