kubernetes 客户化错误:json:无法将数字解组到Go结构字段Image.images.newTag中,类型为string

55ooxyrt  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(127)

我已经在我的CI/CD管道中定义了一个kustomization.yaml,当一个新的构建完成时,它将被jenkins更新。更新涉及构建并推送到注册表的图像的图像标记。它工作得很好,除非图像标记以值中的数字开头。
在这种情况下(图像标记值中的起始数字),kustomize工具会生成一个错误:

kubectl kustomize ./
error: invalid Kustomization: json: cannot unmarshal number into Go struct field Image.images.newTag of type string

错误示例我的kustomization.yaml在这种情况下包含:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base/

replicas:
- name: demo-backend
  count: 1

images:
  - name: my-registry.domain.com/playground/demo-backend
    newTag: 839548e8

如果newTag变量以字符开头,则工作正常。

工作示例在这种情况下,我的kustomization.yaml包含:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base/

replicas:
- name: demo-backend
  count: 1

images:
  - name: my-registry.domain.com/playground/demo-backend
    newTag: e8395488

我可以做些什么来避免这个问题?

我试图成功地重现错误。发现,开始的值是问题(数字或字符)

bmp9r5qi

bmp9r5qi1#

这是一个经常性的“问题”,并不特定于Kustomize,甚至Yaml或Go:839548e8实际上是一个数字。这是839548 X 10^8的符号。
您需要强制将其视为Kustomize的字符串。要做到这一点,请用引号括起来:

newTag: '839548e8'

相关问题