簡體   English   中英

使用 Helm 和 kubernetes 機密的數據庫連接字符串問題

[英]Issue with database connection string using Helm and kubernetes secrets

我正在嘗試將格式化的 Postgres 連接字符串放入 Kubernetes 機密中。 我正在使用 Helm 將應用程序部署到 AKS 群集,部署后,查看 Azure 門戶中的機密值,我發現了一些奇怪的東西。

secrets.yaml中的連接字符串聲明方式如下:

DatabaseConnectionString: "{{ (printf "Server=%s;Port=%s;Database=%s;User Id=%s;Password=%s" .Values.database.host .Values.database.port .Values.database.name .Values.database.user .Values.database.password) | b64enc }}"

查看 Azure 門戶中的值,我得到以下結果:

Server=****;Port=%!s(int64=5432);Database=postgres;User Id=***;Password=***

Port的值有一個奇怪的值,而其他值是正確的。

我做錯了什么?

在格式字符串中,使用%d作為(整數)端口號。

{{ with .Values.database }}
DatabaseConnectionString: "{{ printf "Server=%s;Port=%d;..." .host .port | b64enc }}"
{{ end }}

這來自Go fmt !%s(int64=...)是它報告錯誤的方式: %s特別需要一個字符串,但它得到了一個整數值。

您還可以在字符串中的任何位置使用%v來獲取字符串和數字的默認格式。 (請注意,該格式不能用作列表和地圖的 YAML。)

暫無
暫無

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

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