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

onl*_*ine 3 tags image repository docker kubernetes-helm

我想从外部设置 docker 映像存储库和标记值--set。在我的部署清单 yaml 文件中,我写道:

\n\n
image: "{{ .Values.image.awesomeapp.repository }}:{{ .Values.image.awesomeapp.tag | quote }}"\n
Run Code Online (Sandbox Code Playgroud)\n\n

Helm这样运行:

\n\n
helm install charts/awesomeapp \\\n    --set image.awesomeapp.repository=1234567890.dkr.ecr.ap-northeast-1.amazonaws.com/awesomeapp \\\n    --set image.awesomeapp.tag=20180131010101\n
Run Code Online (Sandbox Code Playgroud)\n\n

但失败了:

\n\n
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\n
Run Code Online (Sandbox Code Playgroud)\n\n

为什么\xe2\x80\x99不能正确暂停图像标签?

\n

Nic*_*lay 7

这是一个舵错误

helm install --set tag=20161216最终在模板中以科学记数法表示,这是因为{{ typeOf .Value.tag }}Yields float64

它已经修复,并且添加 --set-string 标志以强制字符串值拉取请求已合并。因此,新的标志--set-string将在一段时间后添加helm

如果您必须使用旧版本helm,可能有以下解决方法:

1.部署清单yaml文件应更改为:

image: {{ .Values.image.awesomeapp.repository }}:{{ .Values.image.awesomeapp.tag | replace ":" "" }}
Run Code Online (Sandbox Code Playgroud)

2.我们需要:在值之前定义这个额外的符号--set

helm install charts/awesomeapp \
    --set image.awesomeapp.repository=1234567890.dkr.ecr.ap-northeast-1.amazonaws.com/awesomeapp \
    --set image.awesomeapp.tag=:20180131010101
Run Code Online (Sandbox Code Playgroud)