【发布时间】:2022-06-20 22:24:16
【问题描述】:
将 kustomize 补丁添加到 kustomization.yaml 时,双引号会被单引号替换,从而导致错误
我正在使用以下内容:
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 中的补丁包含双引号?
【问题讨论】:
-
为什么重要?
-
我添加了错误。我现在已经解决了这个问题。
-
我怀疑如果您将补丁指定为 JSON 字符串,它不需要嵌入换行符,那么在命令行上传递会更容易(我也不会这样做:我会自己编辑
kustomization.yaml,而不是依赖kustomize edit add)。 -
我刚刚改用
kustomize edit add annotations。有 100 多个自定义文件,所以手动添加它们有点痛苦,我试图避免。 -
@mbbce 您可以将此作为答案发布,以便其他人看到。
标签: kubernetes kubectl kustomize