【问题标题】:Can't parse long numeric string as value with Helm无法使用 Helm 将长数字字符串解析为值
【发布时间】:2018-07-10 01:27:39
【问题描述】:

我想使用--set 从外部设置 docker 映像存储库和标记值。在我的部署清单 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

为什么不能正确暂停图片标签?

【问题讨论】:

  • 标签被解释为整数,可能是--set image.awesomeapp.tag="20180131010101"?

标签: image docker tags repository kubernetes-helm


【解决方案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

【讨论】:

    猜你喜欢
    • 2018-03-08
    • 1970-01-01
    • 2012-10-21
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    相关资源
    最近更新 更多