无法使用Helm将长数字字符串解析为值

时间:2018-01-31 02:43:27

标签: image docker tags repository kubernetes-helm

我想使用--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

为什么它无法正确暂停图片标记?

1 个答案:

答案 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