[英]Kubernetes Python client returns pod's JSON HTTP response from proxy verb as string with single quotes instead of double quotes
[英]Kustomize patch with string literal: Double quotes replaced with single quotes
向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
中的補丁有雙引號?
由於我有數百個 kustomization 文件需要使用 ArgoCD 同步波的注釋進行更新,因此我通過使用commonAnnotations
解決了這個問題(我相信這也是正確的做法)。 因此,我沒有添加補丁,而是執行了以下操作:
kustomize edit add annotation argocd.argoproj.io/sync-wave:$wave --force
這會將注釋添加到所有對象。 其中$wave
是波號,如果文件中已經存在注釋,則--force
會覆蓋注釋。
在我的情況下,注釋不是一個選項,所以我必須提供序列化為操作數組的補丁定義:
kustomize edit add patch --patch '[{"op": "replace", "path": "/spec/template/spec/containers/0/ports/0/containerPort", "value": 8080}]' --kind Deployment
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.