当向kustomization.yaml添加kustomize修补程序时,双引号将被替换为导致错误的单引号。
我使用的方法如下:
kustomize edit add patch --patch "- op: add\n path: /metadata/annotations/argocd.argoproj.io~1sync-wave\n. value: 1" --kind Deployment被转换为
- patch: '- op: add\n path: /metadata/annotations/argocd.argoproj.io~1sync-wave\n value: 1'
target:
kind: Deployment在kustomization.yaml中
这将导致执行kustomize build时出现以下错误
Error: trouble configuring builtin PatchTransformer with config: `
patch: ‘- op: add\n path: /metadata/annotations/argocd.argoproj.io~1sync-wave\n value:
1’
target:
kind: Deployment
`: unable to parse SM or JSON patch from [- op: add\n path: /metadata/annotations/argocd.argoproj.io~1sync-wave\n value: 1]如何确保kustomization.yaml中的修补程序有双引号?
发布于 2022-03-02 20:39:05
由于我有数百个需要用ArgoCD同步波注解更新的库口化文件,所以我使用commonAnnotations来解决这个问题(我相信这也是正确的方法)。因此,我没有添加修补程序,而是执行了以下操作:
kustomize edit add annotation argocd.argoproj.io/sync-wave:$wave --force这将将注释添加到所有对象。其中,$wave是波形号,如果注释已经存在于文件中,则--force将覆盖它。
发布于 2022-06-20 14:24:16
在我的例子中,注释不是一个选项,所以我必须提供序列化为一个操作系统数组的修补程序定义:
kustomize edit add patch --patch '[{"op": "replace", "path": "/spec/template/spec/containers/0/ports/0/containerPort", "value": 8080}]' --kind Deploymenthttps://stackoverflow.com/questions/71298495
复制相似问题