我已经在我的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
我可以做些什么来避免这个问题?
我试图成功地重现错误。发现,开始的值是问题(数字或字符)
1条答案
按热度按时间bmp9r5qi1#
这是一个经常性的“问题”,并不特定于Kustomize,甚至Yaml或Go:
839548e8
实际上是一个数字。这是839548 X 10^8
的符号。您需要强制将其视为Kustomize的字符串。要做到这一点,请用引号括起来: