簡體   English   中英

如何防止 helm upgrade 將字符串視為布爾值?

[英]How to prevent helm upgrade from treating string as bool?

我正在運行helm upgrade命令來安裝某個圖表。 我需要設置的值之一是這樣的:

helm upgrade --install someService someChart `
             --set coredns.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-internal"="true"

我已經成功地將它與其他圖表一起使用,但在這個特定的圖表上我得到了錯誤

Error: unable to build kubernetes objects from release manifest: unable to decode "": json: cannot unmarshal bool into Go struct field ObjectMeta.metadata.annotations of type string

所以看起來 helm 會自動將true轉換為 bool。 我已經嘗試使用="\"true\""但這也沒有幫助。

有什么想法可以告訴 helm 不要將其轉換為 bool 嗎? (我無法控制舵圖)

您可以使用helm upgrade --set-string強制 Helm 將值解釋為字符串。

helm upgrade --install someService someChart \
             --set-string coredns...=true

注意helm install --set有一些不尋常的語法和引用規則; 您已經看到需要在值名稱中轉義句點。 您可能會發現編寫安裝特定值的 YAML(或 JSON)文件並使用helm install -f選項傳遞它更清晰。

coredns:
  service:
    annotations:
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
helm upgrade --install someService someChart \
             -f local-values.yaml

這是一個獨立於圖表一部分的values.yaml文件的文件,它的值與圖表的值合並,本地值優先。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM