首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用字符串文字修改补丁:用单引号替换双引号

用字符串文字修改补丁:用单引号替换双引号
EN

Stack Overflow用户
提问于 2022-02-28 17:02:07
回答 2查看 1.8K关注 0票数 1

当向kustomization.yaml添加kustomize修补程序时,双引号将被替换为导致错误的单引号。

我使用的方法如下:

代码语言:javascript
复制
kustomize edit add patch --patch "- op: add\n  path: /metadata/annotations/argocd.argoproj.io~1sync-wave\n. value: 1" --kind Deployment

被转换为

代码语言:javascript
复制
- patch: '- op: add\n  path: /metadata/annotations/argocd.argoproj.io~1sync-wave\n value: 1'
  target:
    kind: Deployment

kustomization.yaml

这将导致执行kustomize build时出现以下错误

代码语言:javascript
复制
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中的修补程序有双引号?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-02 20:39:05

由于我有数百个需要用ArgoCD同步波注解更新的库口化文件,所以我使用commonAnnotations来解决这个问题(我相信这也是正确的方法)。因此,我没有添加修补程序,而是执行了以下操作:

代码语言:javascript
复制
kustomize edit add annotation argocd.argoproj.io/sync-wave:$wave --force

这将将注释添加到所有对象。其中,$wave是波形号,如果注释已经存在于文件中,则--force将覆盖它。

票数 1
EN

Stack Overflow用户

发布于 2022-06-20 14:24:16

在我的例子中,注释不是一个选项,所以我必须提供序列化为一个操作系统数组的修补程序定义:

代码语言:javascript
复制
kustomize edit add patch --patch '[{"op": "replace", "path": "/spec/template/spec/containers/0/ports/0/containerPort", "value": 8080}]' --kind Deployment
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71298495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档