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

标签 image docker tags repository kubernetes-helm

我想设置docker image存储库并使用--set从外部标记值。在我的部署 list 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

为什么无法正确暂停图像标签?

最佳答案

这是一个掌 Helm bug:

helm install --set tag=20161216 ends up in scientific notation in the template and that's because {{ typeOf .Value.tag }} yields float64.



它已经修复,并且Adding --set-string flag to force string values pull请求已合并。因此,新的标记--set-string将在一段时间后添加到helm中。

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

1. 部署 list 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

关于image - 无法使用Helm将长数字字符串解析为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48533657/

相关文章:

Docker 官方注册中心 (Docker Hub) URL

php - docker compose 的最佳部署策略(LAMP 堆栈)

php - 从数据库中提取每个标签的图标

html - 有人熟悉 <center> 吗?

Javascript,仅加载存在的图像

php - 如何在不使用 ImageMagick 的情况下获取 PDF/EPS 文件的高度和宽度?

css - Flash 加载缓慢问题

image - Swift2 从 Firebase 检索图像

docker - dnu 发布后的 ASP.Net VNext 在 linux 机器上不起作用

string - 调用fmt.Printf(“%+ v”,obj)时如何自定义结构的特定文件的文本